ทำให้ปุ่ม capslock ของคุณเป็นปุ่มเล่น / หยุดชั่วคราว
วิธีนี้จะทำการแมปรหัสของคีย์ capslock ของคุณกับรหัสที่แตกต่างกันในไดรเวอร์อินพุตเคอร์เนลในกรณีนี้เล่น / หยุดชั่วคราว
ข้อดี
- ไม่จำเป็นต้องแก้ไขไฟล์ระบบที่มีอยู่ (ต้องสร้างไฟล์ใหม่เพียงไฟล์เดียว)
- แอปพลิเคชั่นจะไม่ทราบว่ามันเป็นปุ่ม capslock จริง ๆ แต่คิดว่ามีการกดปุ่มเล่น / หยุดชั่วคราวจริง ๆ
- ไม่จำเป็นต้องปิดการใช้งาน capslock ไม่มีความเป็นไปได้ที่จะทำลาย
xkb
การกำหนดค่า
ข้อเสีย
- จะต้องทำสำหรับแต่ละคีย์บอร์ดเป็นรายบุคคล (ซึ่งขึ้นอยู่กับสถานการณ์ก็สามารถพิจารณาเป็นพิเศษ)
ข้อกำหนดเบื้องต้น
- evtest (สามารถติดตั้งผ่าน
sudo apt-get install evtest
)
ขั้นตอน
ในเทอร์มินัลเรียกใช้sudo evtest
และเลือกคีย์บอร์ดของคุณ หากไม่มีผลลัพธ์เมื่อคุณกดปุ่มกดCtrl+ Cและลองอุปกรณ์อื่น จำหมายเลขเหตุการณ์อุปกรณ์ที่คุณเลือกเราจะต้องการในภายหลัง กดปุ่ม capslock บางบรรทัดเช่นข้อความต่อไปนี้จะปรากฏขึ้น:
Event: time 1529406021.187148, -------------- SYN_REPORT ------------
Event: time 1529406021.218427, type 4 (EV_MSC), code 4 (MSC_SCAN), value 70039
Event: time 1529406021.218427, type 1 (EV_KEY), code 58 (KEY_CAPSLOCK), value 0
เราต้องการค่าจากMSC_SCAN
บรรทัดก่อนหน้าKEY_CAPSLOCK
บรรทัด ในตัวอย่างข้างต้นนี่จะเป็น 70039 แต่ scancode บนแป้นพิมพ์ของคุณอาจแตกต่างกัน
ตอนนี้รันคำสั่งต่อไปนี้ แต่แทนที่ X ด้วยหมายเลขเหตุการณ์อุปกรณ์ที่คุณใช้สำหรับevtest
คำสั่ง:
grep "" /sys/class/input/eventX/device/id/*
... ออกจะนี้bustype
, product
, vendor
และversion
ของแป้นพิมพ์
สร้างไฟล์ชื่อ65-keyboard-custom.hwdb
ใน/etc/udev/hwdb.d/
(สิทธิ์รากจำเป็น) ที่มีเนื้อหาดังต่อไปนี้:
evdev:input:b[bustype]v[vendor]p[product]e[version]*
KEYBOARD_KEY_[scancode]=playpause
... ที่
- [รถบัส], [ผู้ขาย], [ผลิตภัณฑ์] และ [เวอร์ชั่น] มีตัวอักษรและตัวอักษร 4 ตัวต้องเป็นตัวพิมพ์ใหญ่
- [scancode] ต้องเป็นตัวพิมพ์เล็ก
evdev:...
บรรทัดมีไม่มีช่องว่างก่อน
KEYBOARD_KEY...
บรรทัดมีอีกหนึ่งพื้นที่ก่อน
ตัวอย่างเช่น:
evdev:input:b0003v046DpC228e0110*
KEYBOARD_KEY_70039=playpause
ขั้นสุดท้ายให้รวบรวมการกำหนดค่าใหม่ไปยังฐานข้อมูลฮาร์ดแวร์:
sudo systemd-hwdb update
หากคุณต้องการใช้การเปลี่ยนแปลงทันทีแจ้ง udev:
sudo udevadm trigger
หากคุณต้องการคืนค่าการเปลี่ยนแปลงให้ลบไฟล์ที่คุณสร้างและรีบูต
คุณสามารถค้นหาข้อมูลรายละเอียดเพิ่มเติมในคำตอบเดิมของฉันในหัวข้อนี้
vlc --key-play-pause <key-string>
แต่ฉันไม่ได้พบสตริงที่ VLC ยอมรับเป็น CapsLock ...