Fn+F6で発行されたキーコードを探す

Fn+F6で発行されたキーコードを探す

Windows用Lenovo IdeaPad Yoga 2 Proには利用可能な機能がありますFnF6タッチパッドのオンとオフ(正しいキーをマッピングしたいです。スクリプトはaskubuntuにあります。)。

しかし、Linuxでは動作しません。

この組み合わせを押すと、どのイベントキーコードが放出されるかをどうやって知ることができますか?

showkey -a試してみましたが、ほとんどのキーコードは押されたときに表示されますが、+を押すと静かにshowkey -kなります。他の+は出力を表示しますが、Windowsでは動作しますが出力を表示しません。何か違うものがあります。xevFnF6FnF1-F5F6代替xev到着しましたshowkeyか?

これまで私が見つけた唯一のヒントは次のとおりです。

grep TOUCHPAD /usr/include/linux/input.h

#define KEY_TOUCHPAD_TOGGLE 0x212   /* Request switch touchpad on or off */
#define KEY_TOUCHPAD_ON     0x213
#define KEY_TOUCHPAD_OFF    0x214

出典:コメント中https://askubuntu.com/a/270428/34298そしてリンクこの記事

誰かがアイデアを持っていますか?

答え1

実行すると、+のキーコードを取得できますxevshowkeyFnF6

はい

Thinkpad T410ノートブックを使用すると、showkey -k次のメッセージが表示されます。

$ sudo showkey -k 
kb mode was ?UNKNOWN?
[ if you are trying this under X, it might not work
since the X server is also reading /dev/console ]

press any key (program terminates 10s after last keypress)...
keycode  28 release
keycode 143 press                   <--- Fn press + release
keycode 143 release
^[[17~keycode  64 press             <--- F6 press + release
keycode  64 release
keycode 212 press                   <--- Fn + F6 press + release
keycode 212 release
keycode  29 press                   <--- Ctrl + C press + release
^Ccaught signal 2, cleaning up...

たぶんサポートされていませんか?

私は次のタイトルのArch Linux Wiki記事を見つけました。Lenovoアイデアパッドヨガ2プロ、これはキーが直接マッピングされていないことを示すようです。引き続き掘り下げますが、ここにもこの情報を追加しなければならないと思いました。

抜粋

キーボード特殊キー

BIOSにはFNキーの動作を変更する設定があります。

  fn+F1   XF86AudioMute
  fn+F2   XF86AudioLowerVolume
  fn+F3   XF86AudioRaiseVolume
  fn+F4   Alt_L+<F4>
  fn+F5   <F5>
  fn+F6   n/a
  fn+F7   n/a
  fn+F8   Alt_L+Tab
  fn+F9   n/a?
  fn+F10  super_L+p
  fn+F11  XF86MonBrightnessDown
  fn+F12  XF86MonBrightnessUp

修正されたideapad_laptopモジュールを使用していますか?

私は次のタイトルのページを見つけました。Lenovoアイデアパッドヨガ2プロLinLap Wikiから。この資料では、ideapad_laptop特定のキーが機能しない問題を解決するモジュールのパッチバージョンについて説明します。

抜粋

.blacklistにブラックリストideapad_laptopを追加して動作さideapad_laptopせるようにします。/etc/modprobe.d/blacklist.confパッチされたideapad_laptopモジュールは以下から入手できます。https://github.com/pfps/yoga-laptopYoga_laptop ディレクトリの内容は無線機能を動作させ、飛行機モードキーも処理します。

このパッチモジュールの場合、キーREADMEについても次のように説明しますF6

タッチパッドを無効にすると(F6)、認識できないスキャンコードが生成されます。この問題は、タッチパッドの状態を切り替えるトリガスクリプトをsudo setkeycodes e03f 191設定することで手動で解決できます。XF86TouchPadToggle一時停止と割り込みは同じ文字を生成します。この問題はで解決できます sudo setkeycodes e046 194; xmodmap -e "keycode 202 = Break"。より良いアプローチは、udevルールを使用することです。詳しくは、Yoga_laptop/READMEをご覧ください。

引用する

答え2

https://wiki.ubuntu.com/Hotkeys/トラブルシューティングこれらのキーボードの問題を解決するためのヒントがいくつかあります。

インストールする

sudo apt-get install evtest

そして走る

sudo evtest

3選択

/dev/input/event3:  AT Translated Set 2 keyboard

あなたは次のようなものを見るでしょう

Event: time 1397868878.732211, -------------- SYN_REPORT ------------
Event: time 1397868878.915728, type 4 (EV_MSC), code 4 (MSC_SCAN), value bf

答え3

マイボックス(Lenovo Yoga 900 13ISK2)でFn F6を押すたびに、次の出力が表示されますdmesg

[20468.127492] atkbd serio0: Unknown key pressed (translated set 2, code 0xbf on isa0060/serio0). [20468.127504] atkbd serio0: Use 'setkeycodes e03f <keycode>' to make it known.

私はgitソースツリーでコンパイルされた4.8カーネルを使用しています。include/uapi/linux/input-event-codes.h私が見るに:

#define KEY_TOUCHPAD_TOGGLE 0x212   /* Request switch touchpad on or off */

だから私はそうでしたsetkeycodes e03f 530。その後、そのメッセージは表示されなくなりますがdmesg、キーを押してもタッチパッドがオンまたはオフになりません。

もう一つの面白い事実:画面を「タブレットモード」に切り替えると、同じメッセージが表示されるため、dmesgBIOSがFn F6を押したときと同じイベントを送信しているようです。残念ながら、この現象は画面を完全に反転した後にのみ発生し、190°を超えると発生しません。

答え4

これは少し古いですが、私のラップトップでも同様の問題がありました(変換モードではなくマッピングされていない場合も似ていました)。 「Fn」キーを押すたびに6fがマッピングされていないことが報告されます。結局、「Fn」キーが464(0x1D0)にマッピングされていることがわかりました。https://github.com/torvalds/linux/blob/master/include/uapi/linux/input-event-codes.h...その後、次のものを使用できます。

setkeycodes 6f 464 これで「KEY_FN」と表示されます。しかし、これを永久にするために最終的に起動スクリプトを作成しました。あなたの場合、移行が機能しない場合は、他のより良いキーコードがありますか?しかし、「fn + f6」がbfを生成することを確認するには(誰かがすでに指摘したように)、evtestが必要です。 "e0xx"を使用すると、効果が機能しないとdmesgが言う内容に同意しません。あなたの場合は、次のようにする必要があります。

setkeycodes bf 530

関連情報