Windows上のLenovoIdeaPad Yoga 2 Proには、利用可能な機能があります Fn+F6 それはタッチパッドのオンとオフを切り替える必要があります(正しいキーを ここのaskubuntuのスクリプト にマップしたいと思います)。
しかし、Linuxでは機能しません。
この組み合わせを押したときに出力されるイベントキーコードを確認するにはどうすればよいですか?
私は試した showkey -a
、showkey -k
とxev
はどちらも押すとほとんどのキーコードを表示しますが、 Fn+F6 彼らは静かなままです。他の Fn+F1-F5 出力のみを表示 F6 Windowsでは動作しますが、動作しません。 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 へのリンク付き この記事
多分誰かがアイデアを持っていますか?
https://wiki.ubuntu.com/Hotkeys/Troubleshooting このようなキーボードの問題をトラブルシューティングするためのヒントがいくつかあります。
インストール
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
xev
またはshowkey
のいずれかを実行すると、次のキーコードを取得できます。 Fn+F6。
showkey -k
を使用すると、ThinkpadT410ラップトップで次のようになります。
$ 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...
このArchLinuxwikiの記事「 LenovoIdeapad Yoga 2 Pro 」を見つけました。これは、このキーが直接マッピングされていないことを示しているようです。掘り下げていきますが、ここにもこの情報を追加したいと思いました。
抜粋
キーボード専用キー
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
LinLapWikiで次のタイトルのページを見つけました: Lenovo IdeaPad Yoga 2 Pro 。この記事では、ideapad_laptop
モジュールのパッチが適用されたバージョンについて説明しています。これにより、特定のキーが機能しないという問題が解決される可能性があります。
抜粋
ブラックリスト
ideapad_laptop
を機能させるには、ブラックリストideapad_laptopを/etc/modprobe.d/blacklist.conf
に追加します。パッチが適用されたideapad_laptop
モジュールは、yoga_laptopディレクトリの https://github.com/pfps/yoga-laptop から入手でき、ワイヤレスが正しく機能し、機内モードキーも処理します。
このパッチが適用されたモジュールのREADME
には、F6
キーについても次のように書かれています。
タッチパッドを無効にする(F6)は、認識されないスキャンコードを生成します。これは、
Sudo setkeycodes e03f 191
を手動で修正してからXF86TouchPadToggle
を設定して、タッチパッドの状態を切り替えるスクリプトをトリガーすることで修正できます。一時停止と中断は同じキャラクターを生成します。これはSudo setkeycodes e046 194; xmodmap -e "keycode 202 = Break"
で修正できます。これを行うためのより良い方法は、udevルールを使用することです。詳細については、yoga_laptop/READMEを参照してください。
私のボックス(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
はメッセージを表示しなくなりましたが、キーを押してもタッチパッドのオン/オフは切り替わりませんでした。
もう1つの興味深い事実:画面を「タブレットモード」に切り替えると、dmesg
で同じメッセージが表示されるため、BIOSがFnF6を押すのと同じイベントを送信しているように見えます。残念ながら、これは画面を完全に反転させた後でのみ発生し、190º程度を超えた後では発生しません。
これは少し古いですが、私はラップトップで同様の問題を抱えていました(モードを切り替えるのではなく、マップされていないのも同様です)。 「Fn」キーを押すたびに、6fがマップされていないことが報告されます。私はついに「Fn」キーのマッピングが https://github.com/torvalds/linux/blob/master/include/uapi/linux/input-event-codes)から464(0x1D0)であることがわかりました。 h ...次に、次を使用できます。
setkeycodes 6f 464
そして、代わりに「KEY_FN」として表示されるようになりました。しかし、それを永続的にするために、私はスタートアップスクリプトを作成することになりました。あなたの場合、それがトグルで機能しなかった場合、より良い別のキーコードがあるかもしれませんか?しかし、「fn + f6」がbfを生成することを確認するには、(誰かがすでに指摘したように)evtestが本当に必要です。 「e0xx」を言ったように使ったときはうまくいかなかったので、dmesgの言うことには賛成しません。あなたのものは次のようになります:
setkeycodes bf 530