web-dev-qa-db-fra.com

Comment échanger par programme les majuscules et les touches echap?

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.

18
Jacobo de Vera

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.

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 mise en page 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 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.

22
James Henstridge