GNU/Linux >> Tutoriels Linux >  >> Linux

Remapper les clés sans xmodmap ni aucun outil X

Tout d'abord, la bonne nouvelle

La console système Linux possède absolument son propre ensemble de mappages de clavier, qui peuvent être gérés à l'aide des outils du kbd package, en particulier dumpkeys et showkey pour la découverte et loadkeys à charger dans un mapping personnalisé. La question SuperUser Comment changer le keymap de la console sous Linux ? a une réponse avec de bonnes informations sur la façon d'utiliser ces outils.

Maintenant, la mauvaise nouvelle

S'il est vrai que ces outils vous permettront de remapper les clés sur la console Linux, sans impliquer xmodmap ou nécessitant que X soit en cours d'exécution, ils ne feront que affecter les mappages de touches sur la console de texte virtuelle. Les modifications n'auront absolument aucun effet sur l'environnement graphique, car le système XInput/evdev de X lit directement les périphériques d'entrée et effectue son propre traitement.

Donc, si vous espériez éviter d'utiliser xmodmap en remappant simplement sur la console et en l'appliquant partout, j'ai bien peur que cela ne fonctionne pas. En fait, vous auriez besoin de remapper les deux la console (en utilisant loadkeys ) et X11 (en utilisant une méthode comme xmodmap ), pour utiliser la même disposition de clavier partout.

La solution au xmodmap la lenteur (et les bogues, puisque ses remappages sont glitchy et non persistants dans les environnements de bureau qui utilisent le changement de disposition) serait de définir un entièrement nouveau disposition du clavier basée sur la disposition que vous utilisiez auparavant, plutôt que d'appliquer des modifications d'exécution. Au démarrage de X, vous chargeriez cette nouvelle mise en page remappée au lieu de celle que vous utilisez actuellement. (Il semble que ce soit maintenant le seul moyen de modifier de manière fiable la disposition du clavier dans les Ubuntu récents - et éventuellement d'autres distributions - comme leur xmodmap n'est plus utile.)

Pour plus d'informations sur la définition et l'utilisation d'un xkb personnalisé disposition du clavier, voir :

  1. Tutoriel :définitions de disposition de clavier personnalisées dans le wiki de la communauté Ubuntu.
  2. Comment modifier la disposition d'un clavier sous Linux, article de blog de Romano Giannetti.

Les deux ont été rédigés cette année (2014), donc les informations doivent être à jour. Les informations du wiki Ubuntu devraient être applicables à n'importe quelle distribution, pour la plupart, car elles utilisent toutes le xkb système dans X.


Il existe en fait des moyens de remapper à un niveau suffisamment bas pour s'appliquer à l'ensemble du système, X11 ou non, et ils sont devenus plus importants que jamais maintenant que nous constatons l'adoption de compositeurs Wayland qui négligent d'exposer une interface utilisateur pour le remappage de libinput soutien.

Vous devez essentiellement reconfigurer la façon dont la couche d'entrée du noyau traduit les scancodes bruts en codes clés avant qu'ils n'atteignent la console ou l'API evdev sur laquelle X11 et Wayland sont assis.

Je connais deux façons de procéder :

  1. Modifier la base de données du matériel (hwdb ) entrée pour votre clavier. udev vous permet de le faire en ajoutant des fichiers de règles à /etc/udev/hwdb.d/ et déclencher une reconstruction de la base de données avec systemd-hwdb update , puis en forçant son application sans redémarrage via udevadm trigger .

    Cette page ArchiWiki contient des instructions complètes et indique explicitement que cela fonctionnera à la fois pour X11 et pour l'entrée console.

  2. Il existe un démon nommé evdevremapkeys qui a été spécifiquement écrit pour remapper les événements clés sur les appareils evdev pour prendre en charge le remappage des correctifs de singe dans les clients evdev qui ne les prennent pas en charge, comme les compositeurs Wayland.

    Il utilise essentiellement la même approche que les pilotes d'espace utilisateur comme G15Daemon qui doivent compenser les périphériques d'entrée non standard. (Ouvrez l'appareil evdev, avalez tous les événements qu'il a l'intention de remapper, afin que rien d'autre qui écoute sur l'appareil ne puisse les voir, puis émettez les événements corrigés via le uinput API pour créer des périphériques d'entrée au niveau du noyau à partir de l'espace utilisateur.)


Linux
  1. Comment copier la disposition des partitions d'un disque entier à l'aide d'outils standard ?

  2. Touches de raccourci indépendantes de la disposition du clavier ?

  3. 4 outils pour télécharger n'importe quel fichier en utilisant la ligne de commande sous Linux

  4. Comment convertir \uXXXX unicode en UTF-8 à l'aide des outils de la console dans * nix

  5. Remapper les touches Win, Ctrl et Alt sous Linux

Comment basculer entre les TTY sans utiliser les touches de fonction sous Linux

Remapper les touches du clavier personnalisées sous Linux - Tutoriel

Utiliser Ubuntu sans aucune connaissance de Linux ?

Comment ouvrir le port série sous Linux sans changer de broche ?

Cedilla sous C (ç) dans la disposition du clavier 'US international with dead keys' sous Linux

Quel outil peut prévisualiser la police de la console ?