我曾经使用过这里建议的方法回答在 Ubuntu 16 上交换减号和下划线,即:
xmodmap -e "keycode 20 = underscore minus underscore minus"
这在 Debian 11 上对我来说不起作用。还有其他可行的方法吗?
$ lsb_release -a
No LSB modules are available.
Distributor ID: Debian
Description: Debian GNU/Linux 11 (bullseye)
Release: 11
Codename: bullseye
$ echo $XDG_CURRENT_DESKTOP
GNOME
答案1
您在问题中提到的方法对我而言在 Ubuntu 20.04 上有效。
但是,您可以尝试keysyms
在命令中指定“减号”和“下划线”,看看是否有效:
xmodmap -e "keycode 20 = 0x5f 0x2d"
0x2d
应该是“减号”的键符,并且0x5f
应该是“下划线”。您可以使用以下命令检查您的系统上是否正确xev
。
命令中的第一个键符告诉系统当按下键码 20 时要执行哪个键,第二个键符告诉系统当同时按下键码 20 和 Shift 时要执行什么键。
答案2
选项1:直接编辑 中的文件/usr/share/X11/xkb/symbols/
以适应您的布局。例如,它是/usr/share/X11/xkb/symbols/us
。搜索减,找到:
key <AE11> {[ minus, underscore, quotedbl, plusminus ]}; // - _ " ±
将其替换为:
key <AE11> {[ underscore, minus, quotedbl, plusminus ]}; // - _ " ±
注销,登录。
选项2:使用 xkb
(根据这unix.stackexchange 上的答案来自 Pablo Saratxaga)
使用以下方式创建文件
~/.xkb/keymap/mykbd
:
setxkbmap -print > ~/.xkb/keymap/mykbd
创建一个
~/.xkb/symbols/myswap
包含以下内容的文件(再次假设您需要编辑 AE11):
hidden partial alphanumeric_keys
xkb_symbols "swap_minus_undersco" {
key <AE11> {[ underscore, minus, quotedbl, plusminus ]};
};
编辑
~/.xkb/keymap/mykbd
文件,并更改行xkb_symbols
以添加:
+myswap(swap_minus_undersco)
加载它:
xkbcomp -I$HOME/.xkb ~/.xkb/keymap/mykbd $DISPLAY