web-dev-qa-db-fra.com

Changer maj-lock pour contrôler dans la console virtuelle sur Ubuntu 17

J'aimerais modifier le comportement de verrouillage des majuscules dans les terminaux virtuels (tty, par exemple). CtrlAltF3) donc il agit comme un modificateur de contrôle. Idéalement, j'aimerais également qu'il agisse comme une évasion lorsque vous êtes pressé seul, mais il est difficile d'obtenir le comportement de contrôle.

Je suis sous Ubuntu 17.04. J'ai lu et essayé de nombreuses approches pour effectuer ce changement, mais aucune ne semble s'appliquer à mon système tel qu'il est décrit. J'ai l'impression que systemd joue un rôle dans tout cela, mais les détails ne sont pas clairs.

J'ai écrit un fichier, caps_control.kmap, qui mappe les majuscules au contrôle,

keymaps 0-255
keycode  58 = Control

Si je lance loadkeys caps_control.kmap à partir d'une console virtuelle, cela fonctionne. Maintenant, j'aimerais le charger automatiquement au démarrage/à la connexion/peu importe ...

J'ai trouvé des références à l'utilisation de /etc/rc.local pour le faire, mais mon système ne possède aucun fichier de ce type, bien qu'il ait plusieurs répertoires tels que /etc/rc0.d/, /etc/rc1.d/, ...

Il semble que depuis Ubuntu 17 utilise sytemd, je devrais utiliser localectl pour gérer ce genre de choses, mais je ne sais pas comment faire. Par exemple,

$ localectl status
   System Locale: LANG=en_US.UTF-8
       VC Keymap: n/a
      X11 Layout: us
       X11 Model: pc105
$ localectl list-keymaps
Couldn't find any console keymaps.

La page de manuel relative à localectl mentionne /etc/locale.conf et /etc/vconsole.conf, qui n'existent ni l'un ni l'autre sur mon système.

Je suis totalement désemparé. Est-ce que quelqu'un peut-il me montrer la bonne direction?

8
ivan

Pour transformer le verrouillage des majuscules en modificateur Ctrl supplémentaire, qui est également efficace dans les consoles tty, ouvrez /etc/default/keyboard pour le modifier et définissez:

XKBOPTIONS=ctrl:nocaps

Si vous avez déjà défini XKBOPTIONS, ajoutez ctrl:nocaps à sa valeur existante en utilisant une virgule comme séparateur, par exemple:

XKBOPTIONS="terminate:ctrl_alt_bksp,ctrl:nocaps"

Devrait entrer en vigueur après le prochain redémarrage ou l'émission de la commande setupcon.

L'option doit être présente lors de l'exécution de localectl status:

$ localectl status | grep caps
     X11 Options: ctrl:nocaps

Et dans la session X, un autre moyen de vérifier qu’il est défini est:

$ gsettings get org.gnome.desktop.input-sources xkb-options
['ctrl:nocaps']
7
Gunnar Hjalmarsson