dot*_*hen 10 keyboard xkb kubuntu
有什么方法可以CapsLock在Esc按下时禁用。是的,我使用 VIM!我实际上有一个替代的全大写键盘布局,Ctrl-6但我发现它很麻烦,并且更愿意让操作系统在Esc按下时禁用 CapsLock 。另外,我经常通过 SSH 连接到其他服务器几个小时,所以我在那里使用库存 VIM。
请注意,我碰巧已经交换了CapsLock和Esc键。但是,当Esc按下该键时(碰巧CapsLock
在键盘上标记并在 旁边A),我需要它同时执行Escape
和Disable-CapsLock-If-It-Is-Enabled
。
这是在 Kubuntu 12.10 上。谢谢。
在 X11(我不知道在控制台上)中,您可以通过重新定义 Escape 键的行为来实现。我查看了“shift(break_caps)”定义以了解它是如何工作的,并对其进行了调整。
有关如何/在何处放置本地修改的文件并加载它们的更多详细信息,请查看xkb上的此答案。
为了做你想做的事,你需要在本地符号文件(例如~/.xkb/symbols/mysymbols
:)中像这样的部分:
partial modifier_keys
xkb_symbols "esc_breaks_caps" {
key <ESC> {
type = "ALPHABETIC",
actions [Group1] = [
SetMods(modifiers=none),
SetMods(modifiers=Lock,clearLocks)
]
};
};
Run Code Online (Sandbox Code Playgroud)
并在本地键盘映射文件中(例如:~/.xkb/keymap/mykbd
;您可以使用 来创建它setxkbmap -print > ~/.xkb/keymap/mykbd
)将xkb_symbols
行更改为 add +mysymbols(esc_breaks_caps)
。
您现在可以加载它:xkbcomp -I$HOME/.xkb ~/.xkb/keymap/mykbd $DISPLAY
并按下Esc将删除 CapsLock 状态(实际上,效果发生在释放Esc 时;我认为只有修饰键才能立即生效;其他效果是在释放后生效。)
哦,如果你还想交换 Escape 和 CapsLock 键;然后改用它(并将“+mysymbols(esc_swap_and_breaks_caps)”放入 mykbd 文件中):
partial modifier_keys
xkb_symbols "esc_swap_and_breaks_caps" {
replace key <CAPS> {
type = "ALPHABETIC",
symbols = [ Escape, Escape ],
actions [Group1] = [
SetMods(modifiers=none),
SetMods(modifiers=Lock,clearLocks)
]
};
replace key <ESC> { [ CapsLock, CapsLock ] };
};
Run Code Online (Sandbox Code Playgroud)
注意物理键是<CAPS>
和<ESC>
; <CAPS>
(键刻CapsLock在键盘上)发送 Escape 和<ESC>
(键刻Esc)发送 CapsLock,<CAPS>
(发送 Escape)也取消设置大写锁定状态
将这些行添加到~/.Xmodmap
:
clear lock
keycode 0x42 = Escape
Run Code Online (Sandbox Code Playgroud)
然后,键入命令:
xmodmap ~/.Xmodmap
Run Code Online (Sandbox Code Playgroud)
您的Caps Lock密钥现在已重新映射到该Esc密钥。
参考网址。
另请阅读这篇有关在 Ubuntu 中将 CapsLock 映射到 Escape 的好文章,它似乎是 unix.se 用户:)