XkbXKB 配置中的
XKB 配置中的 us:2
模組
這是我的 XKB 配置:
$ setxkbmap -print xkb_keymap { xkb_keycodes { include "evdev+aliases(qwerty)" }; xkb_types { include "complete" }; xkb_compat { include "complete" }; xkb_symbols { include "pc+gb(custom)+us:2+inet(evdev)" }; xkb_geometry { include "pc(pc105)" }; };
是什麼意思
us:2
?
這意味著您已經定義了兩個佈局,一個
gb
是custom
變體,us
一個是預設佈局(即文件中定義的第一個/usr/share/X11/xkb/symbols/us
)。第一個佈局沒有用 a 標記
:1
,只有第二個用 a標記:2
,第三個用標記:3
,依此類推。您的配置沒有定義在佈局之間切換的任何鍵,因此它們可能只能通過 GUI 切換。
例如,您可以定義三種佈局(美國/基本、德語和俄語/語音),可通過
Menu
鍵切換:$ setxkbmap -layout us,de,ru -variant basic,,phonetic -option grp:menu_toggle $ setxkbmap -print xkb_keymap { xkb_keycodes { include "evdev+aliases(qwerty)" }; xkb_types { include "complete" }; xkb_compat { include "complete" }; xkb_symbols { include "pc+us(basic)+de:2+ru(phonetic):3+inet(evdev)+group(menu_toggle)+ctrl(nocaps)" }; xkb_geometry { include "pc(pc105)" }; };
如果你想查看完整的擴展 xkb 配置,你可以這樣做:
xkbcomp $DISPLAY - | less
這將顯示合併後的三個佈局,例如。對於
\
關鍵:xkb_symbols "pc+us(basic)+de:2+ru(phonetic):3+inet(evdev)+group(menu_toggle)+ctrl(nocaps)" { name[group1]="English (US)"; name[group2]="German"; name[group3]="Russian (phonetic)"; ... key <BKSL> { type[group2]= "FOUR_LEVEL", type[group3]= "ALPHABETIC", symbols[Group1]= [ backslash, bar ], symbols[Group2]= [ numbersign, apostrophe, rightsinglequotemark, dead_breve ], symbols[Group3]= [ Cyrillic_e, Cyrillic_E ] };
可以使用相同的
xkbcomp
工具來載入自定義配置,而不必是 root 並在裡面弄亂系統文件和目錄/usr/share
:xkbcomp $DISPLAY ~/.xkb_conf # modify ~/.xkb_conf # then load it: xkbcomp ~/.xkb_conf $DISPLAY
添加最後一行
~/.xsession
可能會或可能不會與“現代”桌面環境一起使用,這些環境會強制載入具有 C 等效項的固定鍵盤設置,setxkbmap
並且不容易被說服不礙事。