
使用 setxkbmap 交換 Left Shift 和 Left Control描述如何與 xkbcomp 交換一些修飾鍵。但是,我只想添加自訂 setxkbmap 選項,而不是使用具有完整佈局定義的 xkbcomp。與 類似setxkbmap -option local:swap_lwin_lctrl
,我想交換右 win 和右控制,而不修改 /usr/share/X11/xkb 中的現有檔案(這將在軟體包升級時被覆蓋)。
答案1
我有同樣的問題。從文件中,人們可以猜測正確的語法是這樣的:
$ setxkbmap -I$HOME/.config/xkb -option mine:accent
注意:~
不適用於該-I
選項
和
〜/.config/xkb/symbols/azerty_altgr
partial default
xkb_symbols "accent" {
include "level3(ralt_switch)"
key <AE02> { [ NoSymbol, NoSymbol, eacute, NoSymbol ] };
key <AE07> { [ NoSymbol, NoSymbol, egrave, NoSymbol ] };
key <AE09> { [ NoSymbol, NoSymbol, asciicircum, NoSymbol ] };
key <AE10> { [ NoSymbol, NoSymbol, agrave, NoSymbol ] };
};
或您擁有的任何符號文件
〜/.config/xkb/rules/evdev
! option = symbols
mine:accent = +azerty_altgr(accent)
不幸的是,它不起作用。
我找到的唯一解決方案如下:使用上述相同的文件。使用設定所有本機選項setxkbmap -option caps:swapescape,whatever
。然後 :
$ setxkbmap -print > tempfile.txt
並編輯tempfile.txt
以在行中添加您的自訂選項xkb_symbols
:
xkb_keymap {
xkb_keycodes { include "evdev+aliases(qwerty)" };
xkb_types { include "complete" };
xkb_compat { include "complete" };
xkb_symbols { include "pc+us+fr:2+inet(evdev)+capslock(swapescape)+azerty_altgr(accent)" };
xkb_geometry { include "pc(pc104)" };
};
最後:
xkbcomp -I$HOME/.config/xkb tempfile.txt $DISPLAY
它可以推廣到任意數量的選項。根據以下規定,該解決方案已被棄用Archlinux 維基。