La réponse de @Daniel m'a mis sur la bonne voie, mais j'aimerais la développer.
Cela fonctionne pour moi sur Linux Mint 17.2 et Ubuntu 16.04.
J'ai essayé toutes les torsions auxquelles je pouvais penser pour continuer à utiliser xmodmap
mais ils échouent tous lorsque le système passe en mode veille. Il en va de même pour les scripts de démarrage d'application qui utilisent setxkbmap
dans les cas où le *settings-daemon (pour moi c'est xfce4) s'exécute plus tard que le script --- et l'ordre ne peut pas vraiment être influencé.
Ce que j'ai finalement trouvé est composé des ingrédients suivants :
1) Ecrire un fichier minimal de mappage de clavier pour /usr/share/X11/xkb/symbols
. Appelons le fichier mylayout
Cela peut être aussi simple que
xkb_symbols "basic" {
name[Group1] = "My Layout";
include "us"
key <AE03> { [ 3, numbersign, sterling, sterling] };
include "level3(ralt_switch)"
}
-
basic
est juste un nom, nous le retrouverons plus tard.
- El
name[Group1]
Similaire n'est qu'un nom, semble-t-il, mais il ne jouera aucun rôle plus tard.
-
include "us"
comprend le clavier us simple. En fait, us
est un autre fichier dans le même répertoire. Il s'agit de la disposition du clavier que nous adaptons. Choisissez-en une autre si nécessaire. Note : pas de point-virgule pour terminer cette ligne.
- El
key
est une adaptation du clavier, d'autres peuvent suivre. Le site <AE03>
peuvent être trouvés dans les fichiers sous /usr/share/X11/xkb/keycodes
. Utilisez le xev
pour déterminer que la touche "3" a le code 12 et que dans le fichier des codes de touche Xfree86
il est mis en correspondance avec <AE03>
.
- Enfin un autre
include
pour activer une autre option de clavier, dans ce cas, je veux que la touche Alt de droite soit la touche shift de niveau 3, c'est-à-dire la touche qui donne accès à la fonction sterling
signe que j'ai défini ci-dessus. level3
est juste un nom de fichier dans le même dossier avec ralt_switch
une section de celui-ci. Jetez un coup d'œil et choisissez ce que vous devez inclure.
2) J'ai fait no mettre le mylayout
dans le dossier système. Je n'ai fait qu'un lien logiciel du dossier système vers un dossier de mon choix pour voir immédiatement qu'il ne s'agit pas d'un logiciel standard.
3) En outre, j'ai fait no réparer evdev.xml
pour éviter les problèmes de mise à jour. Mais il faudrait pour cela trouver mylayout dans l'éditeur de configuration du clavier (pour xfce4 c'est xfce4-keyboard-settings
). A la place, j'ai utilisé xfce4-settings-editor
et a changé keyboard-layout->XkbLayout
à mylayout
(le nom du fichier) et XkbVariant
à basic
(voir ci-dessus). Après, mylayout/basic
s'affiche également dans l'éditeur de paramètres du clavier. Une entrée dans evdev.xml
semble être uniquement nécessaire pour pouvoir sélectionner la mise en page.
De cette façon, les paramètres du clavier survivent maintenant au mode veille et au redémarrage.
Pour en savoir plus, cliquez ici : http://www.charvolant.org/~doug/xkb/html/node5.html .
Une autre approche pour résoudre le problème du mode veille (que je n'ai pas essayé moi-même), peut être trouvée ici : https://www.vinc17.net/unix/xkb.en.html .
MISE À JOUR : cela a fonctionné avec Mint 18.3 au moment même où j'ai modifié les paramètres dans xfce4-settings-editor comme décrit ci-dessus.
MISE À JOUR : Avec 18.04, gdm3 comme gestionnaire d'affichage et XFCE4 comme gestionnaire de fenêtres, il semble que ~/.Xmodmap soit relu et que les paramètres semblent pour survivre à une suspension. (J'utilise rarement la mise en veille et je ne suis jamais sûr du mode dans lequel l'ordinateur portable est alors vraiment).