我有一台装有 Kubuntu 20.04 的 Thinkpad T460s,我使用 Nacodex K680T 键盘,它与功能键 F[1-12] 共享数字行。
通过点击键盘右下角的“func”键来选择功能键。
不幸的是,我无法使用 F[1-12] 键,因为每次我按下“func”和数字行中的键时,它都会启动笔记本电脑的热键:媒体键、亮度、音量等。
有人知道如何关闭热键吗?我需要 F[1-12] 而不是控制亮度。
更新:我有更多信息 - 我已经安装screenkey
并且看到 func+num 行正在触发XF86KbdBrightnessDown
等等。希望这些信息对可以告诉我如何摆脱这个问题的人有用。
我尝试从 KVM 创建 ESXi 启动 USB,但无法按 F11 来执行提示,即使在 VM 内部也是如此。因此,此时,无法通过单键刷新网页或进入 Chrome 开发工具。这给我带来了重大的可用性问题。
我将尝试检查 BIOS 以查看按键是否已被重定向,因为内部键盘也没有注册 F[1-12] - 所以这让我相信这是一个以某种方式被翻转的 BIOS 设置(不记得这样做过,但你永远不知道......)
哦,我已经尝试过 [left/right] ctrl-func、alt-func、shift--func、shift-[alt/ctrl]-func 的组合 - 它们都没有任何帮助。
左 ctrl-func 锁定 K680T 上的功能键,但它们的行为没有任何不同(除了在没有功能键按下的情况下消除数字行)。
答案1
我也有同样的键盘。您的脚本在 X11 下运行良好,但在 Wayland 下则不行,所以我花了更多时间研究这个问题。事实证明,即使在 Windows 模式下,键盘也会向系统报告为 Apple 键盘。运行 lsusb,您会看到 Apple 作为供应商。
echo 0 | sudo tee /sys/module/hid_apple/parameters/fnmode
上述命令将 K680T 功能键的行为更改为您期望的行为。当然,这也会影响真正的 Apple 键盘。
您还可以向 modprobe.d 添加一些内容,以便在启动时自动处理此问题。创建一个名为 /etc/modprobe.d/50-hid_apple.conf 的文件,其中包含以下内容:
选项 hid_apple fnmode=0
更新你的 initramfs 然后你就可以开始了。
答案2
我发现的最简单的解决方案是:
- 浏览网络
- 尝试修饰符
acpi_osi=
、acpi_osi=Windows
和acpi_osi=Linux
GRUB_CMDLINE_LINUX_DEFAULT
- 切换 BIOS 选项
enabled/disabled fn as primary function
(enabled
在我的 BIOS 中,这意味着将其视为正常的 F[1-12] 键,与联想支持参考所述的相反) - 反复试验
X11 xkb
,希望能够找出密钥func
是哪个密钥(因为它没有在中注册screenkey
,但有几个XF86
不在的密钥注册了/usr/share/X11/xkb/symbols/pc
)
当我偶然发现这个基本的xmodmap
命令脚本时:
#!/bin/bash
# Script name: fix-fkeys.sh
# fix the common F keys
xmodmap -verbose -e 'keycode 232 = F1'
xmodmap -verbose -e 'keycode 233 = F2'
xmodmap -verbose -e 'keycode 128 = F3'
xmodmap -verbose -e 'keycode 212 = F4'
xmodmap -verbose -e 'keycode 237 = F5'
xmodmap -verbose -e 'keycode 238 = F6'
xmodmap -verbose -e 'keycode 173 = F7'
xmodmap -verbose -e 'keycode 172 = F8'
xmodmap -verbose -e 'keycode 171 = F9'
xmodmap -verbose -e 'keycode 121 = F10'
xmodmap -verbose -e 'keycode 122 = F11'
xmodmap -verbose -e 'keycode 123 = F12'
xmodmap 键码与我在网上找到的任何参考资料或 中列出的代码均不对应screenkey
,xev
或者acpi_listen
但我注意到你可以打印出当前映射xmodmap -pk
- 所以我使用了:
$ xmodmap -pk | grep Brightness
找到 F1 和 F2,因为上面引用的 AskUbuntu 答案中没有它们,但分别映射到XF86BrightnessDown
和XF86BrightnessUp
。因此,这让我了解到它们是代码232
和233
,然后我填写了最后两个键。
对于使用不同键盘且键码与我的不匹配的人的配置,这可能很有用。
脚本xmodmap
的优点在于它不会修改任何过于混乱、依赖系统或难以恢复的内容,我所要做的就是调用脚本或将其设置为在登录时运行。