
Я использовал метод, предложенный в этомотвечатьдля замены минуса и подчеркивания в 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
должно быть keysym для "минуса" и 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 ответ Пабло Сарачаги)
создайте файл,
~/.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