Comment échanger par programme les touches de verrouillage des majuscules et d'échappement?

18

Je suis un grand utilisateur de Vim et l'une des premières choses que je fais lorsque je commence à travailler sur une installation Ubuntu propre est d'échanger les touches de verrouillage des majuscules et d'échappement pour réduire les mouvements de la main sur le clavier.

Jusqu'à présent, je l'ai fait via la boîte de dialogue de configuration du clavier, mais j'écris maintenant un ensemble de scripts qui configureront Ubuntu comme je le souhaite et je n'ai pas été en mesure de trouver un moyen scriptable ou programmable pour modifier cet élément de configuration.

Je ne cherche pas d'options qui permutent les touches à un autre niveau que gnome lui-même, donc ce que je recherche, c'est un moyen de scripter ce changement et de le faire apparaître dans la configuration du clavier que j'utilisais, si je décide de le rétablir manuellement à l'avenir.

Jacobo de Vera
la source
bonne idée! je me plaignais tout le temps de déplacer ma main pour Esc tout en travaillant à Vim, mais maintenant c'est la solution! merci bro ;-)
sazary
1
Soyez prudent, cependant, une fois que vous vous êtes habitué à les échanger, cela devient gênant lorsque vous devez travailler sur le clavier de quelqu'un d'autre :)
Jacobo de Vera
2
Une autre option est Ctrl-C au lieu de Esc. (Fonctionne sur tous les claviers.
Eric Wilson
@FarmBoy, génial! Je ne le connaissais pas!
Jacobo de Vera

Réponses:

22

Vous pouvez le faire via l'interface graphique en ouvrant le Keyboard Preferencespanneau de configuration (sous System -> Preferences) et en sélectionnant l' Layoutonglet. Cliquez sur le Options...bouton pour ouvrir la boîte de dialogue des options de mise en page. Développez la Caps Lock key behavioursection et sélectionnez Swap ESC and Caps Lock.

Il y a plusieurs façons d'écrire ce genre de chose.

Directement via Xkb

Nous pouvons effectuer le changement directement avec les éléments suivants:

setxkbmap -option caps:swapescape

Vous pouvez désactiver toutes les options de disposition actuelles (ce qui ramènera le verrouillage des majuscules à son comportement par défaut) avec:

setxkbmap -option ''

Via GConf

Le panneau de configuration des préférences du clavier stocke sa configuration via gconf, la disposition étant effectivement appliquée par gnome-settings-daemon. Par conséquent, vous pouvez gnome-settings-daemonmodifier la disposition en mettant à jour gconf vous-même.

Le paramètre pertinent dans ce cas semble être /desktop/gnome/peripherals/keyboard/kbd/options. Vous pouvez donc définir l'option avec:

gconftool-2 --set /desktop/gnome/peripherals/keyboard/kbd/options \
    --type list --list-type string \
    '[caps<tab>caps:swapescape]'

Dans ce qui précède, <tab>devrait être un caractère de tabulation littéral plutôt que des espaces. Vous pouvez à nouveau désactiver le comportement en définissant la clé gconf sur une liste vide.

James Henstridge
la source
L'option gconf est exactement ce que je cherchais, mais votre configuration transformait le verrouillage des majuscules en touche d'échappement et la touche d'échappement en touche de tabulation. J'ai changé à nouveau le réglage manuellement et j'ai regardé la valeur dans gconf-editor, c'était en fait [caps<tab>caps:swapescape]. Tout fonctionne maintenant, j'accepte votre réponse et vous suggère de la modifier pour changer la valeur pour référence future. Merci.
Jacobo de Vera
@Jacobo À l'avenir, vous pouvez suggérer la modification vous-même - appuyez simplement sur le bouton de modification sous la réponse. Votre changement sera rapidement approuvé par quelqu'un. J'ai fait le montage pour vous (vérifiez si c'est bien). Quoi qu'il en soit, belle réponse @James! +1
Stefano Palazzo
1
@Stefano, merci, je n'avais pas remarqué l'option d'édition.
Jacobo de Vera
Existe-t-il un moyen de faire fonctionner cela dans GDM sur l'écran de connexion?
lindhe