В продолжение моего вопроса о настройке сопоставлений клавиш в Wayland я обнаружил, что xmodmap
это явно устарело, но xkb «должен работать» в Wayland. К сожалению, xkb намного сложнее и, соответственно, хуже документирован. Я сумел выработать строфы , мне нужно на основе информации от вопроса об обмене CmdиCtrl , еще колпачки блокировки вопроса , чтении некоторых ссылок в ответах и из моих системных файлов, но я не знаю , как их применять таким образом, что это может быть автоматизировано и не конфликтовать с GNOME.
Это те строфы, которые я разработал и успешно протестировал xkbcomp
.
partial alphanumeric_keys
xkb_symbols "pound" {
// Put sterling on RAlt-3 and numbersign on Shift-3.
key <AE03> { [ 3, numbersign, sterling, threesuperior ] };
};
// Make right cmd key act as ctrl
partial modifier_keys
xkb_symbols "rcmdctrl" {
key <RWIN> { [ Control_R ] };
modifier_map Control { <LCTL>, <RWIN> };
modifier_map Mod4 { <LWIN> };
};
partial modifier_keys
xkb_symbols "shiftcaps" {
key <CAPS> {
type[Group1] = "TWO_LEVEL",
symbols[Group1] = [ VoidSymbol, Caps_Lock ],
actions[Group1] = [ NoAction(), LockMods(modifiers=Lock) ]
};
};
Я помещаю первые два /usr/share/X11/xkb/symbols/macbook
и третий в один и shiftcaps
тот же каталог, и xkbcomp
они и т.д. работают, когда загружаются поверх стандартной gb(mac)
компоновки.
Я редактирую это, чтобы сделать обновление и уточнить мой ответ. Моя настройка фунта недавно перестала работать, поэтому я проверил, что изменилось в gb (mac), и понял, что мне нужно добавить , threesuperior
в key <AE03>
строку.
Я думаю, что evdev.xml
используется gnome-tweak-tool, чтобы сделать эти опции доступными в GUI. Вот что я добавил:
<group allowMultipleSelection="true">
<configItem>
<name>macbook</name>
<description>Macbook customisations</description>
</configItem>
<option>
<configItem>
<name>macbook:pound</name>
<description>Hash on Shift-3, Sterling on AltGr-3</description>
</configItem>
</option>
<option>
<configItem>
<name>macbook:rcmdctrl</name>
<description>Right Cmd key acts as Ctrl</description>
</configItem>
</option>
</group>
<group allowMultipleSelection="false">
<configItem>
<name>shiftcaps</name>
<description>Caps Lock with Shift</description>
</configItem>
<option>
<configItem>
<name>shiftcaps:shiftcaps</name>
<description>Caps Lock requires Shift to toggle</description>
</configItem>
</option>
</group>
dconf
значения ключей вorg.gnome.desktop.input-sources
) при условии, что вы добавите их к правилам xkb, которые использует ваша система, то есть к нужным файлам, см. мой пост здесь/usr/share/X11/xkb/rules/evdev.xml
. Я не уверен, для чего это; приложение настроек GNOME зависнет при открытии параметров клавиатуры, если я допустил синтаксическую ошибку в нем, но на самом деле я не могу найти параметры в графическом интерфейсе. Я добавил соответствующие строки после строки, содержащей<optionList>
. Я не могу опубликовать их здесь из-за ограничений на комментарии.Ответы:
Ответ don_crissti на другой вопрос предоставил недостающую часть головоломки. Я определил параметры в файлах evdev, как описано, и добавил их в
org.gnome.desktop.input-sources.xkb-options
gsetting. Работает отлично.источник