Composez votre propre clavier de la mort (version Linux)

Entrez dans les arcanes de xkb…

a marqué ce sujet comme résolu.

Malheureusement, ce tutoriel qui était en bêta a été supprimé par son auteur.

Tout le monde se secoue ! :D

J'ai commencé (vendredi 12 février 2016 à 20h24) la rédaction d'un tutoriel au doux nom de « Composez votre propre clavier de la mort (version Linux) » et j'ai dans l'objectif de proposer en validation un texte aux petits oignons. Je fais donc appel à votre bonté sans limite pour dénicher le moindre pépin, que ce soit à propos du fond ou de la forme. Vous pourrez consulter la bêta à votre guise à l'adresse suivante :

Merci !


L’idée de ce tutoriel m’est venue en février dernier, lors de discussions autour de la proposition de l’AFNOR de normaliser le clavier AZERTY. Cela est en outre tombé au moment où je terminais de mettre la dernière main à la charte typographique du site, laquelle explique comment taper les caractères du français qui ne sont pas usuellement disponibles sur un clavier AZERTY.

Je savais qu’il était possible de se faire sa propre disposition de clavier, et j’ai voulu savoir comment cela fonctionnait, et pourquoi pas expliquer à d’autres comment s’y prendre. Devant l’ampleur de la tâche, je me suis concentré sur mon OS, à savoir Linux : OS X, et surtout Windows, utilisent des systèmes radicalement différents, et potentiellement plus compliqués.

Quelques mois plus tard, voici ce tutoriel enfin complet. Quand vous aurez terminé de le lire, vous maîtriserez à peu près complètement le gestionnaire de clavier de Linux, et vous pourrez faire de grandes choses, et essentiellement du grand n’importe quoi.

Le texte adopte un ton pour le moins détendu, plus que ce dont je suis coutumier. J’ai fait ce choix parce que, en toute honnêteté, configurer xkb est une activité aussi attirante et gratifiante qu’éplucher suffisamment d’artichauts pour nourrir une maison de retraite. J’ai donc voulu rendre la présentation un peu moins austère qu’elle ne le serait si je m’en tenais strictement aux informations utiles.

Sur ce, bonne lecture !

+9 -0

Salut,

La première étape consiste à supprimer les versions compilées des dispositions que xkb garde en cache. Pour cela, vous devrez aller dans le dossier /var/lib/xkb, et avec les droits de super-utilisateur, supprimer tous les fichiers .xkm. Il n’est malheureusement pas possible de savoir lequel correspond à quelle disposition, alors tuez-les tous, Linus reconnaîtra les siens.

Ça me paraît un peu abusé, non ? Y a pas moyen de détecter la disposition utilisée avec lsof, fstat ou fuser ? Par ailleurs, la commande setxkbmap ne permet pas de changer de disposition clavier ?

+0 -0

Salut,

J'ai lu le tuto, et c'est très digeste vu le sujet. Bon, j'ai quand même lâché car je n'ai pas l'usage et que ça devient un peu l'horreur au bout d'un moment (pas de ta faute), mais le jour où je dois écrire mon propre clavier, je passerai par là.

Je doute très fortement qu'il existe déjà des documents de ce genre en français sur le web.

Je suis assez impressionné. ^^

+1 -0

Ça me paraît un peu abusé, non ? Y a pas moyen de détecter la disposition utilisée avec lsof, fstat ou fuser ?

Les fichiers .xkm portent des noms comme server-F04C6B24B0EFF91753FD0F7EF5D5BA6ACDF17D39.xkm. Si tu trouves un moyen de me dire quelle disposition de clavier est associée à ce fichier, je suis preneur…

Par ailleurs, la commande setxkbmap ne permet pas de changer de disposition clavier ?

Taurre

Je ne vois pas le rapport. setxkbmap ne recompile pas depuis les fichiers sources, il utilise les fichiers pré-compilés mis en cache. Si tu ne vides pas le cache (alias, supprimer les .xkm), les dernières modifications des fichiers sources ne seront pas prises en compte. :)

@Gabbro : merci. En effet, il n’y a à ma connaissance pas de document aussi complet et à jour en anglais, alors en français…

+0 -0

Les fichiers .xkm portent des noms comme server-F04C6B24B0EFF91753FD0F7EF5D5BA6ACDF17D39.xkm. Si tu trouves un moyen de me dire quelle disposition de clavier est associée à ce fichier, je suis preneur…

Dominus Carnufex

Je n'ai pas de fichier de ce type chez moi (je suis sous Debian), mais une des fonctions que j'ai cité te permet-elle de repérer les fichiers utilisés (car ouvert par un programme) ?

Je ne vois pas le rapport. setxkbmap ne recompile pas depuis les fichiers sources, il utilise les fichiers pré-compilés mis en cache. Si tu ne vides pas le cache (alias, supprimer les .xkm), les dernières modifications des fichiers sources ne seront pas prises en compte. :)

Dominus Carnufex

Et ce ne serait pas plus simple de justement compiler un nouveau fichier à l'aide de la commande xkbcomp pour ensuite le charger avec la commande setxkbmap ?

+0 -0

Après recherches, il me semble avoir trouvé une alternative :

  1. Copier un fichier existant dans le dossier /usr/share/X11/xkb/symbols et lui donner le nom de notre future disposition ;
  2. Modifier celui-ci suivant ses désitératas ;
  3. Utiliser la commande setxkbcomp -print pour obtenir la configuration actuelle et stocker la sortie dans un fichier ;
  4. Modifier la ligne xkb_symbols pour y incorporer le nom de notre nouveau fichier ;
  5. Appliquer la nouvelle disposition avec la commande xkbcomp fichier :0 (où fichier est celui comprenant la sortie modifiée de la commande setxkbmap et :0 l'écran actuel sous X).
+0 -0

OK, je viens d’essayer. Et ça semble effectivement fonctionner sans avoir besoin de vider le cache. Sauuuuuf que ça bazarde toutes les autres configurations clavier préinstallées, pour ne laisser que celle-là. Ce qui peut s’avérer problématique quand il s’agit d’une version de travail.

En outre, ça met le bordel avec l’appli du tableau de bord. En effet, il n’y a bien qu’une seule disposition installée après le passage de setxkbmap, mais l’appli, elle, se souvient qu’il y en avait d’autres et les affiche toujours dans sa liste. Et donc si tu ouvres le menu de configuration du clavier… ça rétablit le fonctionnement antérieur à ta commande setxkbmap.

Maintenant, avant que tu poursuives tes recherches pour peut-être essayer de trouver une solution, j’ai une question : c’est quoi ton problème avec ma solution ? Pourquoi tiens-tu absolument à faire autrement ? :)

+0 -0

En fait, c'est pas tant la suppression du cache qui me perturbe, mais le redémarrage du serveur graphique ou le passage par la commande udevadm. Ça me paraît étrange de devoir passer par là simplement pour changer la disposition du clavier.

+0 -0

Merci pour l'article. J'utilise fr-oss mais en rajoutant les options "caps:swapescape compose:menu" à setxkbmap, pour avoir la touche compose et échanger Esc et Caps Lock (les vimeux comprendront). Je me rappelle pas avoir vu dans le tuto une explication de comment marche le système d'options, mais je peux me tromper parce que j'ai survolé. Si ça n'est pas le cas, ça pourrait être utile de le mentionner, pour ceux qui veulent faire des dispositions avec options.

Sauf erreur de ma part, c’est assez simple de créer une option : il faut un mini-clavier de type partial, qui fait juste les changements, et rajouter un passage dans rules/evdev. Par contre, j’ignore comment rajouter l’option customisée à la liste de l’interface graphique.

Ça me ferait chier de dégainer setxkbmap juste pour ça, donc je vais creuser la question avant de voir si j’ajoute un paragraphe là-dessus.

+0 -0

Salut,
Juste une petite remarque, pour moi "Composez votre propre disposition de clavier de la mort (version Linux)" serait mieux comme titre car il s'agit de faire une disposition logique et non, par exemple, ce qui se fait dans la partie Workshop de Deskthority ( https://deskthority.net/workshop-f7/ ) où les gens fabriquent des claviers mécanique à partir d'une teensy et quelques switchs.
C'est quelque chose qu'on pourrait éventuellement trouver au coté du tutoriel Arduino, dans une catégorie DIY.

Ce sujet est verrouillé.