Key-Mapping

找出 Fn+F6 發出的鍵碼

  • July 28, 2019

在 Windows 上的 Lenovo IdeaPad Yoga 2 Pro 上,有一個可用的功能Fn+F6 可以打開和關閉觸摸板(我想將正確的鍵映射到askubuntu 上的腳本)。

但在 Linux 上,它不起作用。

當我按下這個組合時,如何找出它發出的事件鍵碼?

我試過了showkey -a,按下showkey -kxev兩者都顯示了大多數鍵程式碼,但在Fn+F6他們保持安靜。另一個Fn+ F1-F5show 輸出,只是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我在 Thinkpad T410 筆記型電腦上得到以下資訊。

$ 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 Ideapad 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

使用修改後的ideapad_laptop 模組?

我在 LinLap Wiki 上找到了這個標題為:Lenovo IdeaPad Yoga 2 Pro的頁面。本文討論了該ideapad_laptop模組的修補版本,該版本可能會解決某些鍵不起作用的問題。

摘抄

通過將黑名單ideapad_laptopideapad_laptop 添加到/etc/modprobe.d/blacklist.conf. Yoga_laptop 目錄中https://github.com/pfps/yoga-laptop提供的修補ideapad_laptop模組使無線工作正常並處理飛行模式鍵。

對於README這個更新檔模組也有這個關於F6關鍵的說法:

禁用觸摸板 (F6) 會生成無法辨識的掃描程式碼。這可以通過手動修復sudo setkeycodes e03f 191,然後設置 XF86TouchPadToggle觸發腳本來切換觸摸板的狀態。暫停和中斷產生相同的字元。這可以通過 修復 sudo setkeycodes e046 194; xmodmap -e "keycode 202 = Break"。更好的方法是通過 udev 規則 - 有關更多資訊,請參閱 yoga_laptop/README。

參考

引用自:https://unix.stackexchange.com/questions/125476