Как сделать Capslock Control без xmodmap/XKBOPTIONS?

xmodmap амортизируется и не работает с gsettingsДелая это здесь отключает мой xmodmap так далее sudo vi /etc/default/keyboard > XKBOPTIONS="ctrl:nocaps" а также sudo setxkbmap dvorak '' ctrl:nocaps

gsettings set org.gnome.desktop.input-sources xkb-options "['compose:ralt']"

Я хотел бы сделать изменение capslock на Ctrl с помощью gsettings, Однако я не нахожу такой возможности в настройках. Я думаю, что это изменение может быть достигнуто Keyboard > Shortcuts > Custom Shortcuts > + но я не уверен, как это можно сделать с помощью гнома.


Как вы можете изменить capslock на Ctrl с помощью gnome-settings?

1 ответ

Решение

Добавлять 'caps:ctrl_modifier' к стоимости org.gnome.desktop.input-sources xkb-options в gsettings, например

 gsettings set org.gnome.desktop.input-sources xkb-options "['compose:ralt', 'caps:ctrl_modifier']"

Ты можешь использовать

gsettings set org.gnome.desktop.input-sources xkb-options "$(gsettings get org.gnome.desktop.input-sources xkb-options | sed "s/]/, 'caps:ctrl_modifier']/")"

добавить к текущей стоимости xkb-options, Вы можете найти более возможную опцию в разделе "ОПЦИИ" на странице руководства xkeyboard-config.

Чтобы изменить раскладку клавиатуры, вам нужно установить значение org.gnome.desktop.input-sources sources например,

gsettings set org.gnome.desktop.input-sources sources "[('xkb', 'us+dvorak')]"

если вы хотите использовать только Дворжак или

gsettings set org.gnome.desktop.input-sources sources "[('xkb', 'us+dvorak'), ('xkb', 'us')]"

если вы хотите иметь возможность переключаться между двораком и стандартной раскладкой.

Обратитесь к разделу " LAYOUTS" справочной страницы xkeyboard-config для получения дополнительных макетов. Вы должны заменить родителей так, чтобы, например, us(dvorak) становится us+dvorak,

Настройки XKB из gsettings загружаются GNOME при запуске и перезаписывают все предыдущие настройки. Использовать setxkbmap Вы должны убедиться, что ваш setxkbmap запускаются после применения настроек GNOME. Я не знаю, как это сделать.

Ответ @florian-diesch отличный, но я подумал, что стоит добавить версию, которая также будет работать в случае, если у пользователя пустая конфигурация:

# Map Caps Lock to Ctrl.
XKB_OPTIONS="$(gsettings get org.gnome.desktop.input-sources xkb-options)"
[ "$(echo ${XKB_OPTIONS} | grep -v '\[\]')" ] && gsettings set org.gnome.desktop.input-sources xkb-options "$(echo ${XKB_OPTIONS} | sed "s/\[\]/['caps:ctrl_modifier']/")"
[ "$(echo ${XKB_OPTIONS} | grep -v 'caps:ctrl_modifier')" ] && gsettings set org.gnome.desktop.input-sources xkb-options "$(echo ${XKB_OPTIONS} | sed "s/\]/, 'caps:ctrl_modifier']/")"
Другие вопросы по тегам