[閒聊] Linux下解決鍵盤F1~F12失效的問題

鍵鼠

630

簡單來說

有些鍵盤在Linux下,F1~F12(F區)會發生錯誤,無法正常對應。
透過修改hid_apple可解決這個問題

詳細狀況
前幾天詢問板友後,順利入手irocks K71R,
一切都很美好,直到按下F1~F12發現沒有反應。

我的系統是openSUSE Tumbleweed,
以前的鍵盤,包括筆電鍵盤都沒問題,這是第一次遇到。

透過xev確認keycode,舉例來說:
有線模式下,F1~F10正確對應到keycode 67-76
無線模式下,F1卻跳到keycode 232、F9跳到171與音量調整相衝。

查了幾篇資料,得知與配置有關

https://wiki.archlinux.org/title/Apple_Keyboard#Function_keys_do_not_work
https://forums.opensuse.org/showthread.php/506437
https://asaba.sakuragawa.moe/2021/07/
%E4%BF%AE%E5%BE%A9-fedora-gnu-linux-%E7%B3%BB%E7%B5%B1%E4%B8%8B%E7%9A%84%E9
%8D%B5%E7%9B%A4%E5%8A%9F%E8%83%BD%E5%8D%80%EF%BC%88f-
%E5%8D%80%EF%BC%89%E6%8C%89%E9%8D%B5/
(縮址:https://reurl.cc/7elaO5

系統核心判斷為「按下後直接觸發媒體鍵」,而不是F1~F12該有的動作。
若鍵盤有Win/Mac雙模式,
切換成Mac模式也許可解決F1~F12的問題,但Alt與Meta鍵又會相反。

此時可用以下指令暫時修改
$echo 2 >> /sys/module/hid_apple/parameters/fnmode

要永久修改有兩個方法
①需要調整modprobe.d下的檔案。
 檔案位置依發行版本不同,fedora和openSUSE應該都是
 /etc/modprobe.d/50-hid_apple.conf
 並在檔案加入 options hid_apple fnmode=1

 第三篇文章提到,fedora等發行版本需更新dracut
 $echo " install_items+=/etc/modprobe.d/50-hid_apple.conf" >\
 /etc/dracut.conf.d/50-hid_apple.conf
 $dracut -vf --regenerate-all

②在GRUB2的開機選項加入parameter
 我直接在Yast圖形界面,設定開機時的kernel選項
在quite選項前加入「hid_apple.fnmode=1」即可解決

其他雜談
1.自行用Xmodmap等重新mapping可行嗎?
A:應該可用,但不建議。因為調完後我的KDE怪怪的,
而且一樣無法切換terminal (如Ctrl+Alt+F1)

2.已知問題
A:調整後Fn+F1~F12無法使用預設快捷鍵
  即便按Fn+F1,一樣是F1的動作。

  我常用的只有播放/暫停按鈕,影響不大。
可在Windows下的官方程式,重新指派不常用的按鍵套用媒體功能。
  設定後在Linux下可直接沿用。

3.irocks K71R滾輪在Linux下支援度
 我的桌面環境是KDE
 音量:完全正常(轉動調大調小/按下靜音)
 切換視窗:完全正常(轉動切換視窗/按下選擇)
 Win10轉盤:無效

 音量與切換視窗完全不用設定或安裝驅動,可直接使用。

--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 1.165.186.48 (臺灣) ※ 文章網址: https://www.ptt.cc/bbs/Key_Mou_Pad/M.1645888084.A.9FB.html
LawLombie1樓 02/27 17:54
r5e97nk632樓非主流OS用媒體鍵和特殊佈局真的抖抖的,推心得分享 02/27 20:27
r5e97nk633樓之前在Ubuntu也想改些layout,還好有Tweak,不然真的 02/27 20:32
r5e97nk634樓有點麻煩。 02/27 20:32
a58524andy5樓其實都是usb scancode,系統有提供方式給你調這些 02/27 20:37
a58524andy6樓scancode看到之後要當成甚麼鍵的話改起來都很簡單 02/27 20:38
a58524andy7樓linux udev hwdb也就一個純文字檔就解決的問題 02/27 20:38
a58524andy8樓你無聊的話dvorak鍵盤當成qwerty用也行 02/27 20:38
a58524andy9樓麻煩的反而是windows,當然有powertoys這類現成解決 02/27 20:39
a58524andy10樓方案啦 只是如果不用PT這種就要自己編驅動了 02/27 20:39
a58524andy11樓PT還有個缺點是沒有鍵位profile 更沒有方式說認鍵盤 02/27 20:41
a58524andy12樓來達成不同鍵盤使用不同mapping 02/27 20:41
a58524andy13樓以udev來說這不過vid/pid標清楚的問題 02/27 20:41
r5e97nk6314樓主鍵位好像改文字檔沒錯,但印象當時要改num pad的時 02/27 22:39
r5e97nk6315樓候好像找不太到方法QQ 02/27 22:39
本人16樓謝謝a58524andy的解說,好詳細! 02/28 23:26
JIElite17樓推,對 linux 使用者友善! 04/06 00:12