Добавление пользовательских параметров setxkbmap

Добавление пользовательских параметров setxkbmap

Используйте setxkbmap, чтобы поменять местами левый Shift и левый Control.описывает, как поменять местами некоторые клавиши-модификаторы с помощью xkbcomp. Однако я хотел бы просто добавить пользовательский параметр setxkbmap вместо использования xkbcomp с полным определением раскладки. Подобно setxkbmap -option local:swap_lwin_lctrl, я хотел бы поменять местами правую win и правый control, не изменяя существующие файлы в /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 вики.

Связанный контент