我可以将 Caps Lock 键更改为 Control 键,同时仍保留 Caps Lock 的开/关特性吗?我尝试过使用 xmodmap,但似乎遇到了死胡同。许多人想交换它们,但他们也想交换它们的工作方式。我宁愿将我的新 Control 键保留为 Control 的开/关开关。
答案1
除了错误之外,Linux 或 Xorg都没有对 的低级支持Ctrl Lock,因此您要么需要将 Ctrl 按下操作反馈到某个输入缓冲区以模拟锁定的软件,要么需要一个直接支持它的键盘。
答案2
正如 Ignacio 所说,使用键盘映射无法做到这一点。但可以简单地使用以下脚本绑定键和工具。
首先,使用 xmodmap 剥离 Caps Lock 的特殊功能(每次启动 X 时都必须执行此操作):
xmodmap -e 'keycode 66 = F13'
然后,添加以下绑定.xbindkeysrc
:
"xdotool keyup Control_L; xdotool keydown Control_L"
F13
"xdotool keydown Control_L; xdotool keyup Control_L"
Control + F13
这会创建一次每次按下 Caps Lock(现在为 F13)时 Ctrl 键的虚假按键(无需释放)。向上+向下顺序的存在是出于虚假事件工作方式的一些技术原因。
在此版本中,按下(左)Ctrl 键可释放锁定。这可以修改(要么两个控件都释放它,要么都不释放它),但这会稍微复杂一些(例如,可以创建另一个控制键(例如 F14)并假装按下它而不是 Control_L)。