
我曾經使用過這裡建議的方法回答在 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