Je suis un gros utilisateur de Vim et l'une des premières choses que je fais lorsque je commence à travailler sur une installation propre d'ubuntu consiste à permuter les touches Maj et Esc pour réduire les mouvements de la main sur le clavier.
Jusqu'ici, je l'ai fait via la boîte de dialogue de configuration du clavier, mais je suis en train d'écrire un ensemble de scripts qui vont configurer Ubuntu comme je le souhaite et je n'ai pas réussi à trouver un scriptable ou programmable. moyen de changer cet élément de configuration.
Je ne cherche pas d’options permettant d’échanger les touches à un autre niveau que gnome lui-même. Ce que je recherche, c’est donc un moyen d’écrire ce changement et de l’afficher dans la configuration du clavier que j’utilisais auparavant, si je décidais de le faire. retournez-le manuellement dans le futur.
Vous pouvez le faire via l'interface graphique en ouvrant le panneau de configuration Keyboard Preferences
(sous System -> Preferences
) et en sélectionnant l'onglet Layout
. Cliquez sur le bouton Options...
pour ouvrir la boîte de dialogue des options de disposition. Développez la section Caps Lock key behaviour
et sélectionnez Swap ESC and Caps Lock
.
Il y a plusieurs façons de scripter ce genre de chose.
Nous pouvons effectuer le changement directement avec les éléments suivants:
setxkbmap -option caps:swapescape
Vous pouvez désactiver toutes les options de mise en page actuelles (ce qui ramènera le verrouillage des majuscules à son comportement par défaut) avec:
setxkbmap -option ''
Le panneau de configuration des préférences du clavier enregistre sa configuration via gconf
, la présentation étant appliquée par gnome-settings-daemon
. Par conséquent, vous pouvez faire en sorte que gnome-settings-daemon
ajuste la disposition en mettant à jour vous-même gconf.
Le réglage approprié 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 désactiver le comportement à nouveau en définissant la clé gconf sur une liste vide.