• [^] # Re: Facile

    Posté par . En réponse au message [RÈSOLU] Comment configurer un clavier inhabituel ?. Évalué à 5.

    Solution

    J'ai réussi à torcher une bonne configuration grâce à tes indications, tous mes remerciements ! Une description détaillée se trouve infra pour la postérité.

    xev

    J'ai commencé avec ta suggestion de xev et les caractères d’intérêt donnaient ceci :

    $ xev
    # a (Un # indique ce qui est marqué sur la touche dans le post initial.)
    ... keycode 24 (keysym 0x61, a) ...
    # z
    ... keycode 25 (keysym 0x7a, z) ...
    # q
    ... keycode 38 (keysym 0x71, q) ...
    # w
    ... keycode 52 (keysym 0x77, w) ...
    # m
    ... keycode 47 (keysym 0x6d, m) ...
    # ;
    ... keycode 58 (keysym 0x2c, comma) ...

    À partir de là, un fichier Xmodmap s'imposait, du genre

    $ cat ~/.Xmodmap
    keycode 24 = a A a A
    keycode 38 = q Q q Q
    keycode 47 = m M m M
    keycode 52 = w W w W
    keycode 58 = semicolon colon semicolon colon
    keycode 25 = z Z z W

    Alors, on change la disposition en QWERTY, re-démarre la session et laisse X faire sa magie ? Que nenni ! La machine fait tourner Wayland et tout ce détour par xev+xmodmap (voire xkbcomp pour tenter une migration automatique de xmodmap à la bonne façon de faire) était pour la gallérie car le ~/.Xmodmap sera ignoré par un système sous Wayland. À noter que la majorité des liens bien indexés sur le Web orientent vers cette façon de faire un peu caduque. L'exercice était quand même instructif.

    xkb

    Il était temps donc d’arrêter la procrastination afin de se coltiner XKB et il s'est avéré que c'est un mécanisme élégant et facile à mettre en place. Ce format :

    less /usr/share/X11/xkb/symbols/us
     key <TLDE> { [ grave, asciitilde ] };
     key <AE01> { [ 1, exclam ] };
     key <AD01> { [ q, Q ] };

    pourrait paraître abscons de loin mais il est des plus simples. Dans <...>, si on ignore la première lettre, les rangées des touches sont numérotées en A,B,C, ... en commençant par le bas (là où se trouve la touche SPACE). Donc <AE01> et <AD01> indiquent à chaque fois la première touche (01), respectivement pour les rangées E et D. Simple et élégant ! Plus besoin d'intercepter des événements à la xev à la recherche des identifiants des touches ! Ce qui est entre {}; correspond à ce que renverra une touche donnée après saisie. Alors, j'ai fait mu-muse avec ce nouveau jouet :

    # root
    cp /usr/share/X11/xkb/symbols/us /usr/share/X11/xkb/symbols/us.backup
    vi /usr/share/X11/xkb/symbols/us # pour avoir
     key <AD01> { [ a, A, agrave, acircumflex ] };
     key <AD02> { [ z, Z ] };
     key <AB02> { [ x, X, 0x10000AB, 0x10000BB ] }; // «,»
     ⋮

    Après avoir ajouté de l'Unicode partout où il y avait de la place sur les touches (oui oui, j'ai joué à fond !), il restait à activer tout le bousin via systemd. Et pour cela, c'est ta suggestion de us-qwerty/us-intl qui orientait dans le bon chemin :

    # root
    localectl set-x11-keymap us altgr-intl && systemctl reboot

    Au redémarrage, tout est nickel ... du moins tant que la session ouverte est « graphique » . Ainsi, une session dans un terminal virtuel (CTRL+ALT+F(3|4|...)) replongera le clavier dans ses travers. J'imagine qu'il y a une solution pour ça aussi, peut-être un truc à appeler dans le ~/.bashrc, mais l'état actuel des choses me satisfait, donc re-bonjour la procrastination ! Quid de SSH et d'autres types de sessions ? Aucune idée pour le moment, tout baigne, on vous dit qu'on procrastine, qu'on n'aimerait pas trop abuser du clavier de peur qu'il ne se blo