Fab*_*ius 5 linux keyboard xmodmap
我在使用xmodmap时遇到了奇怪的行为。我想重新映射Caps_Lock,使其充当Escape,Shift+Caps_Lock因此它充当Caps_Lock。在我的例子中,~/.Xmodmap我尝试了以下命令的所有可能的组合,总是得到相同的结果:
clear Lock
remove Lock = Caps_Lock
keycode 66 =
keycode 66 = Escape Caps_Lock
keysym Caps_Lock = Escape Caps_Lock
Run Code Online (Sandbox Code Playgroud)
被Caps_Lock正确地重新映射到Escape
$ xmodmap -pke | grep Caps
keycode 66 = Escape Caps_Lock Escape Caps_Lock
Run Code Online (Sandbox Code Playgroud)
但重启后它仍然会锁定大写字母。所以它同时充当Escape和Caps_Lock。运行xev我可以看到在和state之间切换。虽然按预期工作(如)。如果我登录后在终端中运行,我会像以前一样得到:0x100x12Shift+Caps_LockCaps_Lockxmodmap ~/.Xmodmap
$ xmodmap -pke | grep Caps
keycode 66 = Escape Caps_Lock Escape Caps_Lock
Run Code Online (Sandbox Code Playgroud)
BUT Caps_Lock开始按预期运行,只是Escape并且不再锁定大写字母。
我真的不明白我做错了什么。
终于找到了一种方法来完成这项工作。我发现X 键盘扩展还提供了一个选项。通过查看/usr/share/X11/xkb/rules/base.lst我发现了以下行:
caps:escape_shifted_capslock Make unmodified Caps Lock an additional Esc, but Shift + Caps Lock behaves like regular Caps Lock
Run Code Online (Sandbox Code Playgroud)
所以我只需要添加caps:escape_shifted_capslock到XkbOptions里面/etc/X11/xorg.conf.d/00-keyboard.conf这样:
Option "XkbOptions" "terminate:ctrl_alt_bksp,caps:escape_shifted_capslock"
Run Code Online (Sandbox Code Playgroud)
重新启动后Caps_Lock,Shift+Caps_Lock其行为完全符合我想要的方式。
| 归档时间: |
|
| 查看次数: |
3971 次 |
| 最近记录: |