我有一台华硕 Zephyrus S 笔记本电脑 (GX502GW),我知道由于它有较新的硬件,支持不会很好。目前,我在 Win 10 旁边安装了 Kubuntu 20.04,并将其设置为我的工作站。Windows 上不存在此问题。
我注意到大约一半的 fn 键被系统完全忽略。我使用showkey
TTY 控制台来识别这些键不执行任何操作:
- 风扇转速
- 屏幕关闭
- 降低亮度
- 亮度调高
- KB亮度降低
- KB 亮度提高
- KB 配置文件上一个(用于背光配置文件)
- KB Profile Next(用于背光配置文件)
- 触摸板禁用/启用
- 睡觉
- 飞行模式
- 麦克风静音
- 自定义华硕 ROG 密钥(我知道 ROG 软件仅适用于 Windows。我想手动绑定它。)
每当我按下其中一个键时,我都能看到它显示 showkey。对于无响应的背光键或睡眠/触摸板/飞行模式键,我在 showkey 中看不到任何内容。
我尝试用不同的供应商启动配置文件修改我的 grub 文件,但似乎都没有用。
我该如何正确映射按键?我熟悉 Windows 上的键盘子系统,但不太熟悉 Linux。我不介意手动添加此设备缺少的按键并提供到 Ubuntu 的映射。
答案1
许多/大多数多媒体按键默认情况下不设置执行任何操作。有许多帖子有助于解释几种不同的方法来识别和设置按下这些键时要执行的命令或脚本。
我发现xbindkeys_config
,的 GUI xbindkeys
,是绑定键的最简单方法之一。要从xbindkeys
桌面管理器开始,请将其添加xbindkeys
到您的~/.xinitrc
文件中。可以找到更详细的说明这里。
如果这些键未显示为键码,您可以使用udev
或evtest
查找扫描码,并将其映射到正确的键码。您可以为 udev 创建自定义 hwdb 条目来纠正此问题。 将扫描码映射到键码。
wiki 描述了创建.hwdb
文件和重新启动udev
:
$ cat /etc/udev/hwdb.d/10-my-modifiers.hwdb
evdev:input:b0003v05AFp8277* # was tested on Kensington Slim Type USB (with old ABI)
KEYBOARD_KEY_70039=leftalt # bind capslock to leftalt
KEYBOARD_KEY_700e2=leftctrl # bind leftalt to leftctrl
evdev:atkbd:dmi:* # built-in keyboard: match all AT keyboards for now
KEYBOARD_KEY_3a=leftalt # bind capslock to leftalt
KEYBOARD_KEY_38=leftctrl # bind leftalt to leftctrl
$ sudo systemd-hwdb update
这个问题和这些细节在这Unix & Linux 的精彩答案。当我添加新的 HID/扫描代码时,这些详细信息对于使用完全可编程键盘的我非常有用,否则它们将无法被正确检测到。
还有一种方法可以重新查询设备以获取这些详细信息,当它正常工作时会更容易,但我不知道关于这个主题的笔记在哪里。