ในการกำหนดค่าแป้นพิมพ์ตามหลักสรีรศาสตร์ของ Microsoft 4000เราต้องสร้างไฟล์กำหนดค่าที่มีการประกาศแป้นพิมพ์และบันทึกสำหรับการจับคู่คีย์
ในการทำเช่นนั้นมีข้อมูลสามประเภทที่เราต้องพิจารณา:
- ประเภทคีย์บอร์ด
- ปุ่ม
scancode
ซึ่งเป็นกุญแจจริงบนแป้นพิมพ์
- ปุ่ม
name
เพื่อกำหนดฟังก์ชั่นที่ต้องการให้กับปุ่มที่เลือก
ค้นหาประเภทแป้นพิมพ์ก่อน:
ใน terminal รันคำสั่งต่อไปนี้:
lsusb
ผลลัพธ์จะเป็นตัวกำหนดชนิดแป้นพิมพ์:
...
Bus 004 Device 022: ID 045e:00db Microsoft Corp. Natural Ergonomic Keyboard 4000 V1.0
...
ID
มันจะปรากฏขึ้นหลังจาก ในกรณีนี้มันเป็น045e:00db
สองค้นหา scancode และชื่อของคีย์
เพื่อตรวจสอบพวกเราใช้evtest
โปรแกรมที่ออกจากระบบข้อมูลเหตุการณ์ของอุปกรณ์เฉพาะใน terminal:
evtest
หากคุณไม่มีโปรแกรมให้ติดตั้งโดยใช้คำสั่งต่อไปนี้:
sudo apt-get install evtest
ด้วยการรันevtest
โปรแกรมเราจะได้ผลลัพธ์ต่อไปนี้:
No device specified, trying to scan all of /dev/input/event* Available devices:
/dev/input/event0: Power Button
/dev/input/event1: Power Button
/dev/input/event2: PixArt USB Optical Mouse
/dev/input/event3: Microsoft Natural® Ergonomic Keyboard 4000
/dev/input/event4: Microsoft Natural® Ergonomic Keyboard 4000
/dev/input/event5: HDA Intel Front Headphone
/dev/input/event6: HDA Intel Line Out
/dev/input/event7: HDA Intel Line
/dev/input/event8: HDA Intel Rear Mic
/dev/input/event9: HDA Intel Front Mic
/dev/input/event10: HDA ATI HDMI HDMI/DP,pcm=3
Select the device event number [0-10]:
เอาท์พุทเป็นคำอธิบายตัวเองสวยมากใส่หมายเลขที่เหมาะสมสำหรับแป้นพิมพ์ซึ่งนี่คือจำนวน3
แล้วกด Enter:
การทำเช่นนั้นจะส่งสัญญาณข้อมูลจำนวนมากบนเทอร์มินัลและสิ้นสุดในบรรทัดต่อไปนี้:
...
Testing ... (interrupt to exit)
Event: time 1472203902.240594, type 17 (EV_LED), code 0 (LED_NUML), value 0
Event: time 1472203902.240594, -------------- SYN_REPORT ------------
Event: time 1472203902.281456, type 4 (EV_MSC), code 4 (MSC_SCAN), value 70058
Event: time 1472203902.281456, type 1 (EV_KEY), code 96 (KEY_KPENTER), value 0
Event: time 1472203902.281456, -------------- SYN_REPORT ------------
ขณะนี้มีทุกการกดปุ่มบนแป้นพิมพ์มันทิ้งข้อมูลที่สำคัญ ตัวอย่างเช่นปุ่ม Slashถัดจากปุ่ม Shift ขวาแสดง:
Event: time 1472205062.294078, type 4 (EV_MSC), code 4 (MSC_SCAN), value 70038
Event: time 1472205062.294078, type 1 (EV_KEY), code 12 (KEY_SLASH), value 0
Event: time 1472205062.294078, -------------- SYN_REPORT ------------
บรรทัดแรกของบันทึกประกอบด้วยข้อมูลเกี่ยวกับคีย์จริงบนคีย์บอร์ดเช่นscancode
ซึ่งมาหลังค่า ในกรณีนี้คือ70038
บรรทัดที่สองมีข้อมูลฟังก์ชันการทำงานที่กำหนดเช่นชื่อของคีย์ ในกรณีนี้มันเป็นSLASH ตรวจสอบคีย์อื่น ๆ เพื่อค้นหาชื่อที่เหมาะสม
ดังนั้นสรุป:
- ประเภทแป้นพิมพ์ของเราคือ: 045e: 00db
- Scancode ของปุ่ม Slash คือ: 70038
- ชื่อของคีย์สำหรับการกำหนดคือSLASH
หลังจากรวบรวมข้อมูลที่จำเป็นแล้วเราจะสร้างไฟล์กำหนดค่า:
sudoedit /etc/udev/hwdb.d/61-keyboard-local.hwdb
กดi
เพื่อเปิดใช้งานโหมดแทรกและพิมพ์ดังต่อไปนี้:
keyboard:usb:v045Ep00DB*
KEYBOARD_KEY_70038=minus
บันทึกและออกโดยการกดescape
จากนั้นพิมพ์:wq
และกด Enter
จากนั้นรันสองคำสั่งต่อไปนี้เพื่อให้การกำหนดค่ามีผล:
sudo udevadm hwdb --update
sudo udevadm control --reload
ในที่สุดก็ถอดปลั๊กคีย์บอร์ดแล้วเสียบใหม่อีกครั้ง
หมายเหตุบางประการเกี่ยวกับไฟล์กำหนดค่า:
- รูปแบบของไฟล์ควรจะตรงตามที่แสดงพื้นที่ก่อนที่จะบันทึกการทำแผนที่เป็นสิ่งสำคัญ
- แทนที่จะ
sudoedit
ใช้ตัวแก้ไขข้อความอื่นโปรดอย่าลืมทำตามรูปแบบที่แน่นอนของไฟล์ดังที่อธิบายไว้ข้างต้น
- มีการเพิ่มตัวอักขระสองตัวลงในชนิดแป้นพิมพ์:
v
และตัวp
ใดตัวหนึ่งที่ยืนสำหรับผู้ขายและผลิตภัณฑ์ พวกเขามีความสำคัญเช่นกัน
- ชนิดแป้นพิมพ์ถูกเขียนเป็นตัวพิมพ์ใหญ่ในไฟล์กำหนดค่า ประเภทแป้นพิมพ์ของเราคือ045e: 00dbแต่ในการกำหนดค่าเราใส่v045Ep00DB *
- scancode ของคีย์มาทันที
KEYBOARD_KEY_
- ชื่อคีย์ปรากฏเป็นตัวพิมพ์เล็กในไฟล์กำหนดค่า
- คุณสามารถปรับแต่งทุก ๆ ปุ่มบนแป้นพิมพ์ของคุณตามบทช่วยสอนนี้