如何让其余热键(电子表格、锁定桌面)发挥作用?

如何让其余热键(电子表格、锁定桌面)发挥作用?

联想“增强性能”USB 键盘的顶行有一些有用的快速启动热键。奇怪的是,在我使用 XFCE 的 Fedora 26 系统上,其中一些键可以工作,但另一些则不能——没有任何明显的逻辑。

以下是哪些键有效、哪些键无效的情况:

Fedora XFCE:联想键盘上的某些热键可以使用,有些则不能

如何让其余热键(电子表格、锁定桌面)发挥作用?

原则上,可以在两个位置配置热键:使用xfwm4-settingsxfce4-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_WORDPROCESSORKEY_SPREADSHEET)重写为键 prog2 和 prog3,它们在 X11 允许的范围内。

然后运行

udevadm hwdb --update
udevadm trigger --sysname-match="event*"

并使用 evtest 验证这两个密钥现在是否可以工作。

现在可以使用 XFCE 键盘设置将程序分配给这些键。

奖励:如果应用程序已经在运行,请关注其最近使用的窗口

对我来说,热键所需的行为是切换回应用程序最近使用的窗口(如果它已经在运行),或者启动新的应用程序并专注于它。使用 shell 脚本很容易做到这一点这个答案

相关内容