Спочатку встановіть numlockx ( натисніть тут, щоб встановити numlockx ). В основному це дозволяє писати сценарії, щоб встановити стан Num Lock - детальну інформацію див. На сторінці manlockx man .
Далі нам потрібно почати заглиблюватися у задоволення від правил udev. Спочатку нам потрібно з’ясувати, як ідентифікується клавіатура. Це можна зробити за допомогою
ls /dev/input/by-id/
Це повинно дати вам імена файлів, прочитаних людиною (це м'які посилання на не особливо читане справжнє ім’я). Моя клавіатура була
/dev/input/by-id/usb-KINESIS_FREESTYLE_KB700_KB700_Kinesis_Freestyle-event-kbd
Тоді нам потрібно з'ясувати всю інформацію про клавіатуру. я зробив
udevadm info -a -p $(udevadm info -q path -n /dev/input/by-id/usb-KINESIS_FREESTYLE_KB700_KB700_Kinesis_Freestyle-event-kbd)
Але вставте туди свій звичайний шлях. Ви отримаєте багато інформації, але ви хочете подивитися перший блок, який називає клавіатуру і має SUBSYSTEMS=="usb"
. (Замість USB-контролера чи іншого). У моєму випадку це було:
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"
Тому зараз у нас достатньо інформації, щоб написати деякі правила. Використовуйте улюблений редактор для створення /etc/udev/rules.d/10-local.rules
та розміщення:
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"
Знову сюди введіть назву вашої клавіатури та ATTRS, якщо вона інша. Тоді це має працювати :)
Примітка: Я не зміг перевірити це, хоча я запустив усі команди до створення файлу правил. А джерела у випадку, якщо вам доведеться провести ще одне дослідження: