Trước hết, cài đặt numlockx ( bấm vào đây để cài đặt numlockx ). Về cơ bản, điều này cho phép bạn viết các tập lệnh để đặt trạng thái Num Lock - xem trang man numlockx để biết chi tiết.
Tiếp theo chúng ta cần bắt đầu đi sâu vào niềm vui của các quy tắc udev. Đầu tiên chúng ta cần tìm hiểu cách xác định bàn phím. Bạn có thể làm điều này bằng cách
ls /dev/input/by-id/
Điều này sẽ cung cấp cho bạn một số tên tệp có thể đọc được của con người (đó là các liên kết mềm đến tên thật không thể đọc được). Bàn phím của tôi là
/dev/input/by-id/usb-KINESIS_FREESTYLE_KB700_KB700_Kinesis_Freestyle-event-kbd
Vì vậy, sau đó chúng ta cần tìm hiểu tất cả các thông tin về bàn phím. tôi đã làm
udevadm info -a -p $(udevadm info -q path -n /dev/input/by-id/usb-KINESIS_FREESTYLE_KB700_KB700_Kinesis_Freestyle-event-kbd)
Nhưng chèn con đường của riêng bạn ở đó tất nhiên. Bạn sẽ nhận được rất nhiều thông tin, nhưng bạn muốn xem khối đầu tiên đặt tên cho bàn phím và có SUBSYSTEMS=="usb"
. (Thay vì bộ điều khiển USB hoặc bất cứ điều gì). Trong trường hợp của tôi đó là:
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"
Vì vậy, bây giờ chúng tôi có đủ thông tin để viết một số quy tắc. Sử dụng trình chỉnh sửa yêu thích của bạn để tạo /etc/udev/rules.d/10-local.rules
và đưa vào:
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"
Một lần nữa, đặt tên bàn phím của bạn ở đây và ATTRS nếu nó khác. Sau đó, nó sẽ làm việc :)
Lưu ý Tôi chưa thể kiểm tra điều này, mặc dù tôi đã chạy tất cả các lệnh cho đến khi tạo tệp quy tắc. Và các nguồn trong trường hợp bạn cần thực hiện thêm một số điều tra là: