Bagaimana cara mengatur Ubuntu untuk secara otomatis mengaktifkan NumLock ketika keyboard eksternal terpasang dan mati ketika tidak?


12

Mengaktifkan NumLock nyaman ketika menggunakan keyboard eksternal berukuran penuh (memiliki keypad) dan sangat merepotkan saat menggunakan keyboard bawaan laptop (yang menempatkan digit alih-alih huruf pada sisi kanan keyboard kecuali Fn ditekan).

Jadi saya harus menyalakan NumLock setiap kali saya memasang keyboard eksternal (atau boot dengan itu terpasang) dan mematikan setiap kali saya melepaskan keyboard eksternal (atau boot dengan itu terlepas). Dan saya sering melakukan ini karena saya lebih suka menggunakan keyboard eksternal berukuran penuh, tetapi tidak cukup (hanya 3) port USB untuk plug-in bersama dengan mouse, modem 3G dan drive hard / flash eksternal.

Bisakah saya mengotomatiskan ini? Tampaknya tugas yang sangat formal, sederhana logis: jika ada keyboard USB terpasang (beberapa perangkat di / dev hadir?) - NumLock aktif, jika tidak - NumLock tidak aktif. Keyboard bawaan laptop saya adalah PS / 2-terpasang, eksternal adalah USB.

Mungkin saya harus mengkodekannya sendiri, tetapi di mana memasukkannya ke dalam case ini?

Saya menggunakan Ubuntu 10.10.

Jawaban:


14

Pertama, instal numlockx ( klik di sini untuk menginstal numlockx ). Pada dasarnya ini memungkinkan Anda untuk menulis skrip untuk mengatur status Num Lock - lihat halaman manual numlockx untuk detailnya.

Selanjutnya kita perlu mulai menggali kesenangan dari aturan udev. Pertama, kita perlu mencari tahu bagaimana keyboard diidentifikasi. Anda dapat melakukannya dengan

ls /dev/input/by-id/

Ini akan memberi Anda beberapa nama file yang dapat dibaca manusia (yang merupakan tautan lunak ke nama sebenarnya yang tidak dapat dibaca). Keyboard saya adalah

/dev/input/by-id/usb-KINESIS_FREESTYLE_KB700_KB700_Kinesis_Freestyle-event-kbd

Jadi kita perlu mencari tahu semua info tentang keyboard. aku melakukannya

udevadm info -a -p $(udevadm info -q path -n /dev/input/by-id/usb-KINESIS_FREESTYLE_KB700_KB700_Kinesis_Freestyle-event-kbd)

Tapi masukkan jalur Anda sendiri di sana tentunya. Anda akan mendapatkan banyak info, tetapi Anda ingin melihat pada blok pertama yang memberi nama keyboard dan miliki SUBSYSTEMS=="usb". (Daripada pengontrol USB atau apa pun). Dalam kasus saya itu adalah:

  looking at parent device '/devices/pci0000:00/0000:00:1a.0/usb3/3-2/3-2.3':
    KERNELS=="3-2.3"
    SUBSYSTEMS=="usb"
    DRIVERS=="usb"
    ATTRS{configuration}==""
    ATTRS{bNumInterfaces}==" 2"
    ATTRS{bConfigurationValue}=="1"
    ATTRS{bmAttributes}=="a0"
    ATTRS{bMaxPower}==" 50mA"
    ATTRS{urbnum}=="6284"
    ATTRS{idVendor}=="058f"
    ATTRS{idProduct}=="9410"
    ATTRS{bcdDevice}=="0122"
    ATTRS{bDeviceClass}=="00"
    ATTRS{bDeviceSubClass}=="00"
    ATTRS{bDeviceProtocol}=="00"
    ATTRS{bNumConfigurations}=="1"
    ATTRS{bMaxPacketSize0}=="8"
    ATTRS{speed}=="1.5"
    ATTRS{busnum}=="3"
    ATTRS{devnum}=="3"
    ATTRS{devpath}=="2.3"
    ATTRS{version}==" 1.10"
    ATTRS{maxchild}=="0"
    ATTRS{quirks}=="0x0"
    ATTRS{avoid_reset_quirk}=="0"
    ATTRS{authorized}=="1"
    ATTRS{manufacturer}=="KINESIS FREESTYLE KB700"
    ATTRS{product}=="KB700 Kinesis Freestyle"

Jadi sekarang kami memiliki informasi yang cukup untuk menulis beberapa aturan. Gunakan editor favorit Anda untuk membuat /etc/udev/rules.d/10-local.rulesdan memasukkan:

BUS=="usb",ATTRS{product}=="KB700 Kinesis Freestyle",ACTION=="add",RUN+="/usr/bin/numlockx on"
BUS=="usb",ATTRS{product}=="KB700 Kinesis Freestyle",ACTION=="remove",RUN+="/usr/bin/numlockx off"

Sekali lagi, masukkan nama keyboard Anda di sini, dan ATTRS jika berbeda. Maka seharusnya bekerja :)

Catatan saya belum dapat menguji ini, meskipun saya telah menjalankan semua perintah sampai membuat file aturan. Dan sumber jika Anda perlu melakukan penyelidikan lebih lanjut adalah:


Terima kasih banyak, bagus sekali. Sejujurnya, saya tidak berharap mendapat jawaban sedekat itu dengan informatif. Saya berharap saya bisa memberikannya lebih dari sekadar memperbaiki dan memberi +1. Saya harap semua yang telah membintangi dan memberikan suara untuk pertanyaan saya juga akan memberi Anda penghargaan.
Ivan


0

Saya tidak yakin apa yang saya lakukan berbeda, karena numlock saya pada keyboard ini secara default menjadi aktif (Ini adalah keyboard Mac Pro Aluminium). Ada beberapa instruksi di sini yang harus melakukan trik.

Semoga ini membantu!


0

Jika Anda menggunakan gnome-shell, maka Anda dapat menginstal status Numlock & Capslock pada ekstensi panel "Kunci Kunci". Tolong, temukan di sini

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.