联想“增强性能”USB 键盘的顶行有一些有用的快速启动热键。奇怪的是,在我使用 XFCE 的 Fedora 26 系统上,其中一些键可以工作,但另一些则不能——没有任何明显的逻辑。
以下是哪些键有效、哪些键无效的情况:
如何让其余热键(电子表格、锁定桌面)发挥作用?
原则上,可以在两个位置配置热键:使用xfwm4-settings
和xfce4-keyboard-settings
,具体取决于所需的功能。在那里,我可以配置为标记为绿色的键启动的应用程序 - 但不能为标记为红色的键启动(该对话框根本不注册按键)。
到目前为止的诊断
继Arch 热键文章,我验证了:
所有
evtest
热键按下均已正确注册,包括上面标记为红色的按钮仅
xev
注册标记为绿色的键。
因此,对于某些按键,在 evtest 之后和 xev 之前的按键会在堆栈中的某个位置丢失。
这个问题似乎与以下事实有关:X11不支持> 255的键码
以下是有问题的键:
Event code 421 (KEY_WORDPROCESSOR)
Event code 423 (KEY_SPREADSHEET)
我怎样才能解决这个问题?
答案1
这些键在默认配置中不起作用,因为它们映射到 > 255 的键代码。由于历史原因,X11 限制关键代码到范围 [8, 255] ,这是真的很难修复。
解决方法是将键码重新映射到 255 以下的范围这些仍然是免费的,如上面链接的答案所示。
获取 Lenovo 增强性能 USB 键盘的所有热键以在 Fedora 上使用
创建一个新文件/lib/udev/hwdb.d/61-keyboard-custom.hwdb
(名称很重要:默认键映射在文件中60-keyboard.hwdb
,我们要覆盖它),包含以下内容
evdev:input:b0003v04B3p301B*
KEYBOARD_KEY_90004=prog2
KEYBOARD_KEY_90005=prog3
这会将字处理器和电子表格键(KEY_WORDPROCESSOR
和KEY_SPREADSHEET
)重写为键 prog2 和 prog3,它们在 X11 允许的范围内。
然后运行
udevadm hwdb --update
udevadm trigger --sysname-match="event*"
并使用 evtest 验证这两个密钥现在是否可以工作。
现在可以使用 XFCE 键盘设置将程序分配给这些键。
奖励:如果应用程序已经在运行,请关注其最近使用的窗口
对我来说,热键所需的行为是切换回应用程序最近使用的窗口(如果它已经在运行),或者启动新的应用程序并专注于它。使用 shell 脚本很容易做到这一点这个答案