作者rail02000 (台中2B月台)
看板Key_Mou_Pad
标题[闲聊] Linux下解决键盘F1~F12失效的问题
时间Sat Feb 26 23:07:58 2022
简单来说
有些键盘在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://webptt.com/cn.aspx?n=bbs/Key_Mou_Pad/M.1645888084.A.9FB.html
※ 编辑: rail02000 (1.165.186.48 台湾), 02/26/2022 23:08:48
※ rail02000:转录至看板 Linux 02/26 23:09
1F:推 LawLombie: 赞 02/27 17:54
2F:推 r5e97nk63: 非主流OS用媒体键和特殊布局真的抖抖的,推心得分享 02/27 20:27
3F:推 r5e97nk63: 之前在Ubuntu也想改些layout,还好有Tweak,不然真的 02/27 20:32
4F:→ r5e97nk63: 有点麻烦。 02/27 20:32
5F:→ a58524andy: 其实都是usb scancode,系统有提供方式给你调这些 02/27 20:37
6F:→ a58524andy: scancode看到之後要当成甚麽键的话改起来都很简单 02/27 20:38
7F:→ a58524andy: linux udev hwdb也就一个纯文字档就解决的问题 02/27 20:38
8F:→ a58524andy: 你无聊的话dvorak键盘当成qwerty用也行 02/27 20:38
9F:→ a58524andy: 麻烦的反而是windows,当然有powertoys这类现成解决 02/27 20:39
10F:→ a58524andy: 方案啦 只是如果不用PT这种就要自己编驱动了 02/27 20:39
11F:→ a58524andy: PT还有个缺点是没有键位profile 更没有方式说认键盘 02/27 20:41
12F:→ a58524andy: 来达成不同键盘使用不同mapping 02/27 20:41
13F:→ a58524andy: 以udev来说这不过vid/pid标清楚的问题 02/27 20:41
14F:→ r5e97nk63: 主键位好像改文字档没错,但印象当时要改num pad的时 02/27 22:39
15F:→ r5e97nk63: 候好像找不太到方法QQ 02/27 22:39
16F:→ rail02000: 谢谢a58524andy的解说,好详细! 02/28 23:26
17F:推 JIElite: 推,对 linux 使用者友善! 04/06 00:12