如何交换 Debian 11 中的减号和下划线

如何交换 Debian 11 中的减号和下划线

我曾经使用过这里建议的方法回答在 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)

  1. 使用以下方式创建文件~/.xkb/keymap/mykbd
    setxkbmap -print > ~/.xkb/keymap/mykbd

  2. 创建一个~/.xkb/symbols/myswap包含以下内容的文件(再次假设您需要编辑 AE11):
    hidden partial alphanumeric_keys
    xkb_symbols "swap_minus_undersco" {
    key <AE11> {[ underscore, minus, quotedbl, plusminus ]};
    };

  3. 编辑~/.xkb/keymap/mykbd文件,并更改行xkb_symbols以添加:
    +myswap(swap_minus_undersco)

  4. 加载它:
    xkbcomp -I$HOME/.xkb ~/.xkb/keymap/mykbd $DISPLAY

相关内容