使用 xkmodmap 或 xkb 时无需切换大写锁定?

使用 xkmodmap 或 xkb 时无需切换大写锁定?

有没有办法配置大写锁定按钮,使其不切换?也就是说,只有在按住时才会应用大写锁定状态,而松开时一切都会恢复正常。

背景故事:

我正在将一台 1981 年的工业键盘改装成 USB 设备。它工作正常 --- 事实上,我现在正在用它打字。

键盘

但是,Caps Lock 键(图中标记为 ALPHA LOCK)是一个硬件锁定开关,因此,如果我按一次,它就会接触,只有再次按它时才会断开。从计算机的角度来看,它是另一个 Shift 键。

但是,我还没有找到设置 X 以支持此功能的方法。Caps Lock 似乎总是通过软件切换来处理。结合硬件切换,这意味着我必须按两次按钮才能打开和关闭 Caps Lock,这并不理想。理想情况下,应该有一个 Caps Shift 修饰符可供我使用,但我在 xmodmap 中找不到,而且我对 xkb 不太熟悉。

有人知道有什么设置(无论多么隐藏)可以帮到我吗?我可以把它映射到另一个 Shift 键,但这并不能产生正确的效果。

答案1

编辑文件(使用 sudo)

/usr/share/X11/xkb/compat/basic

并改变

interpret Any+Lock {
  action= LockMods(modifiers=Lock);
};

interpret Any+Lock {
  action= SetMods(modifiers=Lock);
};

然后注销并重新登录。我确信这应该可以解决问题。但请注意,这将改变连接到系统的每个键盘上每个 Caps Lock 键的功能。可以将其限制为特定设备,但这有点超出了这个问题的范围,并且需要您对 xkb 配置文件更加熟悉。

相关内容