Remappage du verrouillage des majuscules pour s'échapper et du menu pour composer sur la console Linux

9

Lors de l'exécution de XI, utilisez un .xmodmaprc pour remapper ainsi certaines clés:

! Make it so that both Caps Lock and Escape do Escape
clear Lock
keysym Caps_Lock = Escape
! Remap the menu key as Compose
keysym Menu = Multi_key

Comment puis-je accomplir les mêmes choses sur la console?

mise à jour

En plus de la solution partielle donnée dans ma réponse, j'ai appris que la console mappe CTRL- .à Compose. Je pourrai donc peut-être m'y habituer. Il n'est pas si facile de configurer la touche Menu en tant que Composer, car il existe une tonne de codes clés attribués à nul et aucun concurrent évident pour un autre nom pour Menu.

J'ai également réalisé que les liaisons de composition elles-mêmes sont beaucoup plus limitées que ce à quoi je suis habitué sous X, et que la plupart des caractères spéciaux que j'utilise fréquemment ne sont pas là. Peut-être existe-t-il un utilitaire qui traduira les liaisons de composition de syntaxe X en quelque chose qui loadkeyspeut lire?

intuition
la source
1
Traditionnellement: avec loadkeys. Je pense que de nos jours, vous pouvez demander à la console Linux de lire la configuration X, mais je ne sais pas comment cela fonctionne.
Gilles 'SO- arrête d'être méchant'

Réponses:

8

Vous devrez modifier le clavier de votre console. Sur ma console, j'ai mappé Escape à Caps Lock et Caps Lock à Escape. Voici comment ça fonctionne.

  1. Vous devez d'abord trouver votre clavier. J'utilise la disposition américaine standard. Sur mon système, il se trouve sous /usr/share/keymaps/i386/qwerty/us.map.gz.
  2. Faites une copie du fichier sous un nouveau nom, par exemple us-nocaps.map.gz.
  3. Décompressez le fichier et ouvrez-le dans un éditeur de texte: gunzip us-nocaps.map.gz && vim us-nocaps.map
  4. Modifiez les mappages dans le fichier à votre guise, par exemple, je l' keycode 58 = Caps_Lockavais changé keycode 58 = Escape.
  5. Gzip le fichier et le charger: gzip us-nocaps.map && loadkeys us-nocaps.

Une dernière chose: vous devrez probablement configurer votre distribution d'une manière ou d'une autre pour vous assurer que les nouveaux keymaps seront toujours chargés au démarrage, sinon vous devrez charger votre keymap manuellement à loadkeystout moment. La façon dont vous procédez dépend de la distribution que vous utilisez.

Cédric
la source
1
L'étape gunzip n'est pas vraiment nécessaire ici - dans la plupart des versions, vimvous devriez pouvoirvim us-nocaps.map.gz
glittershark
3

Pour les nouvelles distributions Debian, vous n'avez plus besoin de tout cela.

Le fichier clavier décrit les propriétés du clavier. Il est lu par setupcon(1)afin de configurer le clavier sur la console. Dans les systèmes Debian, la disposition du clavier par défaut est décrite dans /etc/default/keyboardet partagée entre X et la console. (clavier homme)

Dans l' /etc/default/keyboardensemble XKBOPTIONS="caps:escape", puis faites:

~$ sudo setupcon

La description de tous les modèles, dispositions, variantes et options de /usr/share/X11/xkb/rules/xorg.lstclavier disponibles est disponible en . "(Clavier homme)

Ingo
la source
1

Avec l'aide de Cedric, j'ai découvert qu'Ubuntu n'a pas installé les keymaps là où $ man loadkeysils sont censés être ( /usr/share/keymaps). Il s'agit d'une toute nouvelle installation, donc j'ai peut-être juste besoin d'installer un package pour obtenir des keymaps autres que celui que j'ai sélectionné lors de l'installation.

Au lieu de poursuivre cet angle, et dans un effort pour rendre la solution un peu plus robuste et pratique, je fais ceci:

    $ sudo dumpkeys | sed 's/CtrlL_Lock/Escape/' | sudo loadkeys

Bien que je sois un peu confus quant à la raison pour laquelle le système de Cedric utilise le Caps_Lockverrouillage des majuscules et le mien CtrlL_Lock, cela fonctionne malgré tout.

intuition
la source
C'est intéressant, je ne savais pas où les différences entre les distributions avec ces keymaps. Personnellement, j'utilise Gentoo, les keymaps proviennent du paquet sys-apps / kbd-1.15.
Cedric
2
Depuis Ubuntu 10.04, les keymaps sont dans le console-datapackage. Ils ne sont pas installés par défaut. Vous pouvez découvrir dans quel package installe les fichiers en /usr/share/keymapsexécutant apt-file search /usr/share/keymaps.
Gilles 'SO- arrête d'être méchant'