Windows用Lenovo IdeaPad Yoga 2 Proには利用可能な機能がありますFn。F6タッチパッドのオンとオフ(正しいキーをマッピングしたいです。スクリプトはaskubuntuにあります。)。
しかし、Linuxでは動作しません。
この組み合わせを押すと、どのイベントキーコードが放出されるかをどうやって知ることができますか?
showkey -a
試してみましたが、ほとんどのキーコードは押されたときに表示されますが、+を押すと静かにshowkey -k
なります。他の+は出力を表示しますが、Windowsでは動作しますが出力を表示しません。何か違うものがあります。xev
FnF6FnF1-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
実行すると、+のキーコードを取得できますxev
。showkey
FnF6
はい
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
、キーを押してもタッチパッドがオンまたはオフになりません。
もう一つの面白い事実:画面を「タブレットモード」に切り替えると、同じメッセージが表示されるため、dmesg
BIOSが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