如何使用 Xmodmap 可移植且幂等地将 Caps Lock 映射为组合键?

l0b*_*0b0 11 xmodmap

我似乎找不到一种方法可以Caps Lock正确地用作撰写键。有些方法是不可移植的,因为它们要求您xev在每个主机上使用类似的方法检测密钥号。其他方法导致 a~/.Xmodmap不能xmodmap多次传递而没有bad keysym类似错误。这使得很难测试对文件的更改。有没有办法做到这一点~/.Xmodmap

Nic*_*out 11

您遇到幂等性问题,因为您使用的keysymkeycode. 可以认为是keycode将键分配给函数,而keysym只是从函数名称到实际函数的链接。

当您使用 keysym 时,如下所示:

keysym Caps_Lock = Multi_key

你基本上删除了 name Caps_Lock。因此,下次运行xmodmapCaps_Lock在同一行中引用时,它会感到困惑。

正确的做法是直接重新分配键码,如下所示:

keycode 66 = Multi_key

例如,您可以从xev命令中获取密钥代码。