web-dev-qa-db-ja.com

14.04(Trusty)で、Microsoft Natural Ergonomic Keyboard 4000および7000のズームスライダーを上下にスクロールさせます。

このチュートリアル を使用して、Microsoft Natural Ergonomic Keyboard 4000でスクロールスイッチを機能させようとしました。しかし、次のエラーに直面しました。

Sudo: /lib/udev/keymap: command not found

Udevバージョン204-5ubuntu20.2(Trustyで見つかったバージョン)があります

このバージョンにはkeymapツールが含まれていないことに気付きました。しかし、udevの上位バージョン( たとえばDebianで利用可能 )にはこのツールが含まれていることに気付きました。

誰かがこの差分を説明してくれますか? =)この場合、どうすればよいですか-Debianリポジトリからパッケージをインストールしますか?

29

/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キーボードの場合、再起動が必要になる場合があります。場合によっては、再起動する必要もあります。

27
Oli

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*を使用します

37
Adam Chýlek

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

次に、キーボードを再接続します。

7
user261903

Oliの答えに加えて、マウスのように行をスクロールしたい場合は、カスタムルールでpageup/pagedownをup/downに変更できます。好む:

keyboard:usb:v045Ep00DB*
 KEYBOARD_KEY_c022d=up
 KEYBOARD_KEY_c022e=down
4
r11

素敵な解決策は 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>
...
1
dmitry_romanov