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


29

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

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

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

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

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


udevを使用してこの問題を解決しますか、または別の方法で問題ありませんか?パッケージ化されていないudev debianパッケージをubuntuにインストールするのは少し気が進まないでしょう。
jobin


、このヘルプは?
ジョバン

keymapとにかく、もはや出荷されていないユーティリティは何をしますか?
マット14

チュートリアル(リンク先)を更新して、以下の回答を追加しました。ありがとう:-)
テレンスエデン

回答:


27

あなたが見れば/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

これは投稿したチュートリアルから適応されているため、キーボードに基づいて微調整する必要があるかもしれません。上記lsusbvendor:productコード(v####p####)が正しいことを確認してください。それらが一致しない場合は機能しません。

編集が完了したらhwdb、udevが使用するものを再コンパイルします。

sudo udevadm hwdb --update

そして、再度プラグを差し込む必要があるかもしれません。PS / 2キーボードの場合、再起動が必要になる場合があります。場合によっては、再起動する必要もあります。


返信のThx!hwdb.ddirが、空であるrules.dだけで3つのファイルが含まれています(70-persistent-cd.rules70-persistent-net.rulesREADME)。それで、新しいファイルを作成しなければならないということですか?または、編集する必要がありますか?
ドミトリーベラベンツェフ14年

ええ、新しいファイルを作成する必要があります。既存のキーボードルールは/lib/udev/hwdb.d/60-keyboard.hwdbそのままですが、udevの更新後に編集内容は失われます。
オリ

2
残念ながら、仕事にターゲットボタンがありません
ドミトリーBelaventsev

1
@matt、ここ
-user.dz

1
プラグを抜く代わりにudevadm trigger /dev/input/by-id/usb-Microsoft-*、更新をトリガーするために使用することができます
アレクサンダーPriymak

37

Ubuntu 15.10:以前の回答では成功しませんでした。

以前のものと同様のアプローチをうまく使用しました-手順はで言及されました/lib/udev/hwdb.d/60-keyboard.hwdb

次をsudo nano /etc/udev/hwdb.d/70-keyboard.hwdb 含む新しいhwdbファイルを作成しました。

#Microsoft Natural Ergonomic Keyboard 4000-ズームイン/アウトでページを上下に再マッピング
evdev:input:b0003v045Ep00DB *
 KEYBOARD_KEY_c022d = pageup
 KEYBOARD_KEY_c022e =ページダウン

その後、私は走った

sudo udevadm hwdb --update
sudo udevadm control --reload

キーボードを接続しなおしたところ、うまくいきました。

モデル7000用 evdev:input:b003v045Ep071D*


9
これはUbuntu 16.04の正解です
グレッグダン

2
ありがとう。確かにkeyboard:、Ubuntu 1604では定義が機能しなくなったようevdev:です。/に/lib/udev/hwdb.d/60-keyboard.hwdbマップする4000モデルのデフォルトマッピングもありますが、Xはイベントを完全に無視するため(xevには何も表示されません)、このような構成の変更が必要です。zoominzoomout
12

2
b0003それのバス固有のように見える(それが唯一のいくつかのUSBポートに働くかもしれないので)。何かがb*v045Ep071D*機能する場合 、それはより良いかもしれません。
オリ

3
おかげで、Ubuntu 16.04(evdev:input:XXXではなくkeyboard:usb:YYY)で動作しています。pageup/の代わりに別のマッピングを使用することもできpagedownます。たとえば、実際のスクロールを使用scrollupscrolldownています。
マーティングリューバー

1
Kubuntuの17.10での作品だけでなく
OOPMan

7

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

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


ありがとう。奇妙なことに、私もこの変更を今すぐ実行する必要があり、また(再接続するだけでなく)再起動が必要でした。
マット

Ubuntu 15.04で私のために働いた。ありがとう!
ピエール

これはDebian Jessie 8.5でうまくいきました。
ニコラス

経済的なキーボードを購入したいのですが、16.04 LTSで動作するかどうか興味がありますか?または、このような問題はありません。
アルパドHorvathの

4

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

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

ちなみに、18.04ではUp / Downがデフォルトです。
LinuxLuigi

1

素敵な解決策はここにあり、私はあなたがそのような未使用の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見つけることができるここに

再起動後;-) キーzoominzoomoutキーが正常にマッピングされていることをテストできます。またrc.xml、次のコマンドを使用して、キーの適切な名前を見つけることができます(たとえば、OpenBox WMで使用)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>
...
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.