使用 xcape 使用 esc 和 ctrl 重载大写锁定

dea*_*ost 5 xmodmap

我想要:

  1. capslock击中时关闭capslock key
  2. Escape 当击中 capslock key
  3. ctrl按下时表现得像capslock key

我有什么~/.Xmodmap

!Set Capslock to LCtrl
remove Lock = Caps_Lock
remove Control = Control_L
keycode 66 = Control_L
add Control = Control_L

!Set Escape to Capslock
keycode 9 = Caps_Lock
add Lock = Caps_Lock

!Dummy Escape Key for XCape
keycode 254 = Escape
Run Code Online (Sandbox Code Playgroud)

我在最后有什么~/.profile

$HOME/xcape/xcape -e 'Control_L=Escape' # Run xcape after login
Run Code Online (Sandbox Code Playgroud)

事情的工作大多与刚预期Xmodmap,且大多与预期Xmodmap+$HOME/xcape/xcape -e 'Control_L=Escape'时不运行.profile

当它从.profile;运行时,我会得到一些奇怪的行为;除了表现为和之外,capslock key仍会切换。我的也表现出这种确切的行为。capslockescctrlleft ctrl

也许我应该从其他地方运行它.profile

编辑:尝试$HOME/xcape/xcape -e 'Control_L=Escape'从 xubuntu 的菜单运行-> 设置管理器 -> 会话和启动 -> 应用程序自动启动,根本没有效果。

dea*_*ost 1

.Xmodmap:

clear lock
clear control
keycode 66 = Control_L
add control = Control_L Control_R
Run Code Online (Sandbox Code Playgroud)

在“设置”>“会话和启动”>“应用程序自动启动”>“添加”下:

/path/to/xcape -e 'Control_L=Escape'
Run Code Online (Sandbox Code Playgroud)

这适用于 LCtrl 的副作用,点击时也会转义。虽然并不完美,但在我使用它的这些年里,并没有让我费心去修复它。