Microsoft Natural Ergonomic Keyboard 4000のズームスライダー(およびその他のボタン)を機能させる方法は?


21

Ubuntu 10.10でMicrosoft Natural Ergonomic Keyboard 4000を使用しています。マルチメディアキー(ボリューム、再生/一時停止)、メールボタン、電卓ボタンも機能します。

ズームスライダーを使用したいのですが、可能であればページスクロールを使用したいと思います。それを有効にする方法はありますか?


2
askubuntu.com/questions/471802/…を参照してください。ここでの以前の回答は時代遅れかもしれません。
マット14

回答:


18

/etc/udev/rules.d/98-ms-ergo.rules次の内容のファイルを作成します。

ACTION=="remove", GOTO="keyboard_end"
KERNEL!="event*", GOTO="keyboard_end"
ENV{ID_INPUT_KEY}=="", GOTO="keyboard_end"
SUBSYSTEMS!="usb", GOTO="keyboard_end"

SUBSYSTEMS=="usb", IMPORT{builtin}="usb_id"

ENV{ID_VENDOR}=="Microsoft", ENV{ID_MODEL_ID}=="00db", RUN+="keymap $name 0xc022d pageup 0xc022e pagedown"

GOTO="keyboard_end"

これにより、にインストールされているファイルを変更せずにズームキーがページアップ/ページダウンにマップされます/lib/udev

追加したら、キーボードを取り外して再接続するだけで機能します。


これは、Fedora 19を使用して完璧に私のために働いた
ルーベンスMariuzzo

Microsoft Ergonomic 7000の場合、モデルは00dbではなく071d(lsusbで取得)のように見えます。したがって、7000でこれを試みる場合は、おそらく上記のファイルの00dbを071dに置き換える必要があります。とにかく私の場合(Ubuntu 14.04)、それは機能しません。おそらくevtest、人間工学に基づいた7000キーボードの他のほとんどのキーとは異なり、ズームスライダーがイベントをトリガーしないという事実に関連しているのかもしれません。Web / Homeボタンはevtestどちらにも出力を表示しないため、Ubuntu それを取得ますが、それについてはわかりません。
マット14

1
4000を14.04で動作させることもできません。でイベントが表示されませんxev
マイケル14年

14.10でこれを試しましたが、動作しませんでした。
ルーベンスマリウッゾ

@Cocoabean xevも私には機能しません。とは何ですかevtest /dev/input/event3event3このキーに反応がない場合は、他のイベントでテストします(event[0..9])。
ニコラス

9

Xubuntu 13.10(おそらくUbuntu 13.10でも)では、次のように同じことができます。

のキーマッピングを編集します/lib/udev/hwdb.d/60-keyboard.hwdb

###########################################################
# Microsoft
###########################################################

# Microsoft Natural Ergonomic Keyboard 4000
keyboard:usb:v045Ep00DB*
 KEYBOARD_KEY_c022d=pageup
 KEYBOARD_KEY_c022e=pagedown

走る sudo udevadm hwdb --update

リブート。


1
私のために14.04に取り組んだ
アミールユーヴァル14年

60-keyboard.hwdbには、キーボード:usb:b0003v045Ep00DB *のMNEK4Kの既存のエントリがありました。アクションの変更は機能しませんでした。これらのアクションで新しいエントリを追加しても機能しました。
Alrekr

16.04でチャームのように機能しました。Webページを閲覧する際にスクロールをスムーズにするために、「up」と「down」を使用しました(「pageup」と「pagedown」の代わりに)。どうもありがとう!
ピエール

あなたはにマッピングすることができるkatakanakatakanahiragana(からまたは他の未使用のキーコードhal.freedesktop.org/quirk/quirk-keymap-list.txtではなく、エイリアス既存のキーに)。このようにして、キーを修飾子と組み合わせて認識および使用し、ボリューム、言語、サイズなどを切り替えることができます(2つの新しいスーパーキーを使用するようにウィンドウマネージャーを構成します)。
dmitry_romanov

4

設定するためには、マイクロソフト人間工学に基づいたキーボード4000を、私たちは、キーボードの宣言とキーをマッピングするためのレコードを含む設定ファイルを作成する必要があります。

そのためには、次の3種類の情報を決定する必要があります。

  • キーボードタイプ
  • キーscancodeキーボード上の実際のキーであります
  • キーname選択されたキーに所望の機能を割り当てます

最初にキーボードの種類を見つけます:

ターミナルで次のコマンドを実行します。

lsusb 

出力によってキーボードのタイプが決まります。

...
Bus 004 Device 022: ID 045e:00db Microsoft Corp. Natural Ergonomic Keyboard 4000 V1.0
...    

後に表示されIDます。この場合は045e:00db

次に、スキャンコードとキーの名前を見つけます。

それらを決定するにはevtest、端末上の特定のデバイスのイベント情報をログアウトするプログラムを使用します。

evtest

プログラムがない場合は、次のコマンドを実行してインストールします。

sudo apt-get install evtest

evtestプログラムを実行すると、次の出力が得られます。

No device specified, trying to scan all of /dev/input/event* Available devices: 
/dev/input/event0:    Power Button     
/dev/input/event1:    Power Button     
/dev/input/event2:    PixArt USB Optical Mouse   
/dev/input/event3:    Microsoft Natural® Ergonomic Keyboard 4000   
/dev/input/event4:    Microsoft Natural® Ergonomic Keyboard 4000   
/dev/input/event5:    HDA Intel Front Headphone     
/dev/input/event6:    HDA Intel Line Out     
/dev/input/event7:    HDA Intel Line   
/dev/input/event8:    HDA Intel Rear Mic     
/dev/input/event9:    HDA Intel Front Mic     
/dev/input/event10:   HDA ATI HDMI HDMI/DP,pcm=3
Select the device event number [0-10]:

出力はほぼ自明であり、キーボードに適切な番号を挿入します。ここに番号があり3、Enter キーを押します。

これを行うと、端末に多くの情報が出力され、次の行で終了します。

... 

Testing ... (interrupt to exit)
Event: time 1472203902.240594, type 17 (EV_LED), code 0 (LED_NUML), value 0
Event: time 1472203902.240594, -------------- SYN_REPORT ------------
Event: time 1472203902.281456, type 4 (EV_MSC), code 4 (MSC_SCAN), value 70058
Event: time 1472203902.281456, type 1 (EV_KEY), code 96 (KEY_KPENTER), value 0
Event: time 1472203902.281456, -------------- SYN_REPORT ------------

キーボードのキーを押すたびに、キー情報がダンプされます。たとえば、右シフトの横にあるスラッシュキーは次を示します。

Event: time 1472205062.294078, type 4 (EV_MSC), code 4 (MSC_SCAN), value 70038
Event: time 1472205062.294078, type 1 (EV_KEY), code 12 (KEY_SLASH), value 0
Event: time 1472205062.294078, -------------- SYN_REPORT ------------

ログの最初の行には、値の後に来るなど、キーボード上の実際のキーに関する情報が含まれてscancodeいます。この場合は70038です

2行目には、キーの名前などの割り当てられた機能情報が含まれます。この場合、SLASHです。他のキーを調べて、適切な名前を見つけます。

簡単に言えば:

  • キーボードの種類は045e:00dbです
  • スラッシュキーのスキャンコードは70038です。
  • 割り当てるキーの名前はSLASHです

必要な情報を収集した後、構成ファイルを作成します。

sudoedit /etc/udev/hwdb.d/61-keyboard-local.hwdb

ヒットiして挿入モードをアクティブにし、次を入力します。

keyboard:usb:v045Ep00DB*
 KEYBOARD_KEY_70038=minus      

を押してescape入力し:wq、Enter キーを押して保存して終了します。

次に、構成を有効にするために次の2つのコマンドを実行します。

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

最後にキーボードのプラグを抜き、再度差し込みます。

構成ファイルに関する注意事項:

  • ファイルの形式は示されているとおりである必要があります。レコードをマッピングする前のスペースは重要です。
  • sudoedit他のテキストエディタを使用する代わりに、上記のファイルの正確な形式に従うことを忘れないでください。
  • キーボードの種類を追加した2つの文字がありますvし、pどのベンダーと製品のために立っています。それらも重要です。
  • キーボードの種類は、構成ファイルに大文字で書き込まれます。キーボードタイプは045e:00dbでしたが、構成にv045Ep00DB *を挿入します
  • キーのスキャンコードはすぐ後に来ます KEYBOARD_KEY_
  • 構成ファイルではキー名が小文字で表示されます
  • このチュートリアルに従って、キーボードのほとんどすべてのキーをカスタマイズできます。

3

問題は、ということです> evdevのドライバーがキーコードを無視する255
ソリューションは、Marco Chiapperoに感謝します

1)必要なすべての再マッピングを(次の形式で定義する必要があります) 
「キーコードをスキャンコード」リスト)、「/ lib / udev / keymaps /」の下のファイルに配置します 
(たとえば、そこにlogitech-lx710-cordlessを作成しました)。あなたが見つけることができます
evtestを使用したスキャンコード( "sudo evtest / dev / input / eventX"、Xは 
キーボードデバイス。注意してください、これらの余分なキーは時々公開されます
別のデバイスまたはマウスインターフェース:例 event3-> kbd、event4->
マウスと追加のキー)。ここにいくつかのサンプル出力:

イベント:時間1294153475.909379、タイプ4(Misc)、コード4(ScanCode)、値c1028
「c1028」は、キーマップファイルに配置するスキャンコード値です。 
前述のようにinput.hから数値を取得し、それを 
16進数。次に、説明的なファイルを使用して、ファイルにリマップペアを書き込みます
次のようなコメント:

0xC1028 0x9a#回転ボタン

255を超えるキーごとに繰り返します。

2)遭遇するたびにこのリマッピングファイルを適用するようにudevに指示する必要があります 
キーボード、「/ lib / udev / rules.d / 95-keymap.rules」ファイルを編集して追加します 
HWに一致するudevルール。ルールを定義するように頼まないでください
君は。 
注:自分で入力してキーマップファイルをすぐに適用できます 
「sudo / lib / udev / keymap / dev / input / eventX / lib / udev / keymaps / $ YOUR_FILE」および 
evtestでもう一度確認してください。

これで、Gnomeショートカットエディターを使用して、キーが 
X内で使用でき、新しいショートカットを作成します。ただし、
keysymはそのキーコードに割り当てられます(したがって、XF86Fooではなく0xXYが表示されます)。 
xmodmap -pkeを使用して現在のマッピングを確認し、出力を 
ファイルし、必要に応じて編集します(完全なキーシムコードリストは、
「/ usr / lib / X11 / XKeysymDB」)。
再マップしたキーにキーシムを追加したら、このファイルを保存できます
〜/ .Xmodmapとして(またはすべてのユーザーに適用したい場合は/ etc / X11 / Xmodmapとして)。

欲しいボタンはc022dとc022eであることがわかりましたが、input.hが見つかりません。
マーティンUeding

私が理解しているように(ただし、このハードウェアがないためテストできません)、input.hは本当に必要ありません/lib/udev/rules.d/95-keymap.rules。このファイルを編集するだけです。(launchpadで同じハードウェアを持っている人を見つけることができます。したがって、bugs.launchpad.net / ubuntu / + source / xorg-server / + bug / 313514を支援することができます )。上記のファイルを編集しましたか?
デスグア

1
これはあまりにも技術的であり、ほとんどの人にとって解答が乱れています。いくつかの重大なギャップ:適切な/ dev / input / eventXを決定する助けがなく、コンテキスト情報が混ざった不明確な手順と、キーマップを作成するための指示を求めないように要求します。
アランオディア

1
evtestはデフォルトでインストールされていないため、さらに悪化します。
アランオディア

試行錯誤の結果、キーボードが/ dev / input / event3であり、evtestがズームスライダーからイベントを取得しないことがわかりました。
アランオディア

0

私のマシンでは、追加のキー(HomePage、Search、Calcなど)とズーム入力が/ dev / input / event5を介して送信され、通常のキーは/ dev / input / event4を介して送信されました。ズームキーの値はキューオーバーフローの値と一致します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.