web-dev-qa-db-fra.com

Comment faire du contrôle Capslock sans xmodmap / XKBOPTIONS?

xmodmap est amorti et ne fonctionne pas avec gsettings, ceci ici désactive ma xmodmap etc Sudo vi /etc/default/keyboard> XKBOPTIONS="ctrl:nocaps" et Sudo setxkbmap dvorak '' ctrl:nocaps

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

Je voudrais faire le changement de majuscule à Ctrl par gsettings. Cependant, je ne trouve pas une telle possibilité dans les paramètres. Je pense que ce changement peut être atteint par Keyboard> Shortcuts> Custom Shortcuts> + mais je ne sais pas comment cela pourrait être fait avec gnome.


Comment changer de capslock en Ctrl avec gnome-settings?

Ajoutez 'caps:ctrl_modifier' à la valeur de org.gnome.desktop.input-sources xkb-options dans les paramètres, par exemple

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

Vous pouvez utiliser

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

à ajouter à la valeur actuelle de xkb-options. Vous pouvez trouver plus d’options possibles dans la section "OPTIONS" de la page de manuel xkeyboard-config

Pour modifier la disposition de votre clavier, vous devez définir la valeur de org.gnome.desktop.input-sources sources, par exemple.

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

si vous voulez utiliser uniquement Dvorak ou

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

si vous voulez pouvoir basculer entre Dvorak et la disposition standard.

Voir la section "LAYOUTS" de la page de manuel xkeyboard-config pour plus de mises en page. Vous devez remplacer les parents afin que, par exemple, us(dvorak) devient us+dvorak.

Les paramètres XKB de gsettings sont chargés par GNOME au démarrage et écrasent les paramètres précédents. Pour utiliser setxkbmap, vous devez vous assurer que vos setxkbmap sont exécutés une fois les paramètres GNOME appliqués. Je ne sais pas comment faire ça.

3
Florian Diesch

La réponse de @ florian-diesch est excellente, mais j’ai pensé qu’il serait intéressant d’ajouter une version qui fonctionnerait également dans le cas où l’utilisateur aurait une configuration vide:

# 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']/")"
0
ryanpcmcquen