将 Caps Lock 重新映射到 Control 和 Escape(非常规方式)

将 Caps Lock 重新映射到 Control 和 Escape(非常规方式)

我知道如何使用 xmodmap 重新映射 Caps Lock 键,使其充当 Control 键或 Esc 键。我想将这两个功能组合起来,如下所示:

当我按下 Caps Lock 键然后松开时,它会发送 Escape 键。当我按住 Caps Lock 键并按下另一个键(例如 A 键)时,它会发送 Control-A 键。

xkb、xmodmap 和其他东西的某种组合是否可以使 Caps Lock 在 X 中以这种方式运行?

我在 Macbook Air 3,1 上使用 Ubuntu Precise。

答案1

我在 Mac 上安装了这个程序,并尝试为 Ubuntu 找到方法,但没有成功。

嗯,现在它可以工作了。感谢 tungd 推荐我xcape。我做的确实很简单、直接。

  1. 在下面系统偏好设置键盘布局选项...Ctrl 键位置, 我检查了Caps Lock 键用作 Ctrl 键

  2. 在终端运行:

    xcape -e 'Control_L=Escape' 
    

完成,像修饰键一样使用时和单独按下时一样Caps Lock工作(有几百毫秒的轻微延迟,如README 文件中所述,因此它仍然不如使用 KeyRemap4MacBook 的 Mac 解决方案那么理想。)CtrlEscxcape

答案2

安装xcape

sudo apt-get install xcape

在您的~/.profile

/usr/bin/setxkbmap -option 'caps:ctrl_modifier'⏎
/usr/bin/xcape -e 'Caps_Lock=Escape' -t 100

注意该部分-t 100,如果您不设置它,您可能会注意到Esc使用 vim 时会出现延迟。

答案3

我也在找这个。一周前,我找到了一个部分解决方案,使用xmodmap

add Control = Caps_Lock
remove Lock = Caps_Lock
keysym Caps_Lock = Escape

这当然不是完美的,当我按下 CapsLock 时,它会同时有效地发送 Escape 和 Ctrl,但我对此很满意。

最后我发现了这个小工具https://github.com/alols/xcape。所以现在我可以简单地将 CapsLock 重新映射到 Ctrl 并让 xcape 完成其工作。

答案4

我专门用 C 语言编写了一个工具来解决这个问题xcape/xmodmap 解决方案的许多问题

相关内容