このチュートリアル を使用して、Microsoft Natural Ergonomic Keyboard 4000でスクロールスイッチを機能させようとしました。しかし、次のエラーに直面しました。
Sudo: /lib/udev/keymap: command not found
Udevバージョン204-5ubuntu20.2
(Trustyで見つかったバージョン)があります
このバージョンにはkeymap
ツールが含まれていないことに気付きました。しかし、udev
の上位バージョン( たとえばDebianで利用可能 )にはこのツールが含まれていることに気付きました。
誰かがこの差分を説明してくれますか? =)この場合、どうすればよいですか-Debianリポジトリからパッケージをインストールしますか?
/lib/udev/rules.d/60-keyboard.rules
を見ると、すべてが台無しにされていることがわかります。これは、systemdへのudevの合併の一部に過ぎません。
すべてのハードウェアルールは、バイナリハードウェアデータベースにコンパイルされます。これらは本当に奇妙な形式に従っています。 udevに同梱されているキーボードの既存のルールは、/lib/udev/hwdb.d/60-keyboard.hwdb
にあります。それを見てください-編集しないでください(おそらく更新によって上書きされます)。
カスタムルールを追加するには、/etc/udev/hwdb.d/
を実行してsudoedit /etc/udev/hwdb.d/61-keyboard-local.hwdb
に新しいファイルを作成します。あなたがする必要があるのは、以下に貼り付けるだけです-
4000モデルを使用している場合:
keyboard:usb:v045Ep00DB*
KEYBOARD_KEY_0c022d=pageup
KEYBOARD_KEY_0c022e=pagedown
7000モデルを使用している場合:
keyboard:usb:v045Ep071D*
KEYBOARD_KEY_0c022d=pageup
KEYBOARD_KEY_0c022e=pagedown
これは投稿したチュートリアルから適応されているため、キーボードに基づいて微調整する必要があるかもしれません。 lsusb
を見て、上記のvendor:product
コード(v####p####
として)が正しいことを確認してください。それらが一致しない場合は機能しません。
編集が完了したら、udevが使用するhwdb
を再コンパイルします。
Sudo udevadm hwdb --update
そして、あなたはmight再プラグする必要があります。 PS/2キーボードの場合、再起動が必要になる場合があります。場合によっては、再起動する必要もあります。
buntu 15.1:以前の回答では成功しませんでした。
私は以前のものと同様のアプローチを成功裏に使用しました-手順は/lib/udev/hwdb.d/60-keyboard.hwdb
で言及されました。
次を含むSudo nano /etc/udev/hwdb.d/70-keyboard.hwdb
を使用して新しいhwdbファイルを作成しました。
#Microsoft Natural Ergonomic Keyboard 4000-ズームイン/アウトをページアップ/ダウンに再マップします。 .____。]
その後、私は走った
Sudo udevadm hwdb --update Sudo udevadm control --reload
キーボードを接続しなおしたところ、うまくいきました。
モデル7000の場合は、evdev:input:b003v045Ep071D*
を使用します
Oliが投稿した元のソリューションは機能しませんでしたが、キー番号"0c022d"
および"0c022e"
を"c022d"
および"c022e"
に変更した後は機能します。 4000モデルを使用しているため、7000モデルにも同じ変更が必要かどうかを確認できません。
Oliの答えを繰り返すために、私がしたことは次のとおりです。Sudo nano /etc/udev/hwdb.d/61-keyboard-local.hwdb
を実行して新しいファイルを作成します。以下の行をファイルに貼り付けます(4000モデルの場合):
keyboard:usb:v045Ep00DB*
KEYBOARD_KEY_c022d=pageup
KEYBOARD_KEY_c022e=pagedown
ファイルを編集した後、udevが使用するhwdbを再コンパイルします。
Sudo udevadm hwdb --update
次に、キーボードを再接続します。
Oliの答えに加えて、マウスのように行をスクロールしたい場合は、カスタムルールでpageup/pagedownをup/downに変更できます。好む:
keyboard:usb:v045Ep00DB*
KEYBOARD_KEY_c022d=up
KEYBOARD_KEY_c022e=down
素敵な解決策は here で、キーをそのような未使用Xキーにマップできることだけを追加できます。
$ cat /lib/udev/rules.d/95-keymap.rules
...
ENV{ID_VENDOR}=="Microsoft", ENV{ID_MODEL_ID}=="00db", RUN+="keymap $name 0xc022d katakana 0xc022e katakanahiragana
...
katakana
の代わりに使用する適切な名前は here にあります。
再起動後;-) zoomin
キーとzoomout
キーが正常にマッピングされていることをテストできます。また、OpenBox WMのrc.xml
で使用するキーの適切な名前を調べることもできます例)xev
を使用:
$ xev
...
KeyRelease event, serial 46, synthetic NO, window 0x3c00001,
root 0x291, subw 0x0, time 1492891, (-261,-61), root:(573,380),
state 0x0, keycode 101 (keysym 0xff27, Hiragana_Katakana), same_screen YES,
XLookupString gives 0 bytes:
XFilterEvent returns: False
...
これで、新しいキーを完全に任意のアクションに接続できます。 OpenBoxウィンドウマネージャーの場合、次のようなものを使用しました。
$ cat <whatever>/rc.xml
...
<keybind key="Katakana">
<action name="Execute">
<command>volume_up.sh</command>
</action>
</keybind>
<keybind key="Hiragana_Katakana">
<action name="Execute">
<command>volume_down.sh</command>
</action>
</keybind>
...