Keyboard-Layout
使用 setxkbmap 交換 Left Shift 和 Left Control
是否可以使用而不是交換左鍵
Shift
和左鍵?CTRL``setxkbmap``xmodmap
編輯
我已經切換到Fcitx,在我的鍵盤佈局和自定義鍵盤映射方面,它在各個方面都比 IBus 好得多。我強烈推薦它。
xmodmap
已過時;所以確實應該用xkb
工具來完成。預設情況下,您想要的交換似乎不包含在 X11 文件中;所以你必須自己寫。
該頁面https://web.archive.org/web/20170825051821/http://madduck.net/docs/extending-xkb/幫助我理解並找到了一種方法來做到這一點。
創建一個
~/.xkb/keymap/mykbd
放置輸出的文件setxkbmap
,它將是您的基本鍵盤定義;例如:setxkbmap -print > ~/.xkb/keymap/mykbd
然後,創建一個符號文件來定義您的密鑰交換,例如將其放在
~/.xkb/symbols/myswap
在那裡,輸入以下幾行:
partial modifier_keys xkb_symbols "swap_l_shift_ctrl" { replace key <LCTL> { [ Shift_L ] }; replace key <LFSH> { [ Control_L ] }; };
然後,編輯
~/.xkb/keymap/mykbd
文件,並更改xkb_symbols
要添加的行+myswap(swap_l_shift_ctrl)
最後,您可以載入它
xkbcomp -I$HOME/.xkb ~/.xkb/keymap/mykbd $DISPLAY
(參數不能使用“~”-I
)。它可能會針對某些稀有鍵發出很多關於未定義符號的警告,但您可以忽略它們(例如,將錯誤重定向到 dave:
2> /dev/null
)。如果您希望能夠在正常和倒置 ctrl/shift 之間輕鬆切換;只需在
~/.xkb/keymap/
另一個文件下創建,沒有額外的“myswap”選項,然後使用xkbcomp
. 您可以製作兩個小腳本來載入它們。