まず、numlockx をインストールします(ここをクリックしてnumlockxをインストールします)。基本的に、これによりNum Lockの状態を設定するスクリプトを作成できます-詳細については、numlockxのマニュアルページを参照してください。
次に、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を入力します。その後、動作するはずです:)
注:ルールファイルを作成するまですべてのコマンドを実行しましたが、これをテストすることはできませんでした。さらに調査を行う必要がある場合のソースは次のとおりです。