Clavier : affecter la touche windows

Sous Linux Mint Debian 3.11.8, ma touche win gauche (appelée Meta_L dans la desciption du clavier et keycode 133 si je cherche avec exv), cette touche déclenche une recherche et ne peut servir à rien d’autre…

Je souhaite attribuer à cette touche la fonction de <Multi_key> pour pouvoir l’utiliser (avoit toutes les ligatures de l’alphabet français par exemple…)

J’ai localisé le fichier etc/X11/ keyboard (c’est OK). le répertoire etc/X11/xkb est vide. le fichier usr/share/X11/localeen-US.UTF-8/Compose est bien en place mais ne fonctionne pas (parce qu’il n’y a pas de touche Media_key attribuée, que je sache…)

J’ai trouvé dans etc/keyboard/ les fichiers config et remap. Est-ce que ce fichier remap permet de changer l’affectation de cette touche windows ??? Il doit exister ailleurs un fichier qui attribue au démarrage les fonctions des touches “libres”. Je ne trouve pas. Merci tout plein…

Je me réponds à moi-même pour dire ce que j’ai trouvé… :038 C’est long mais c’est juste parce que j’ai beaucoup bossé…
Pour changer l’affectation de la touche windows en <Media_key> :

  • j’ai lu tout ce que j’ai trouvé dans les man : dumpkeys, loadkeys, keymaps, xmodmap et d’autres. C’est pas évident de s’y retrouver… il semble toujours y avoir des tones de solutions avec des “warnings” sérieux (si vous bouleverdez votre keymaps vous ne pourrez même plus taper votre mot de passe lors du redémarrage)

  • j’ai trouvé un article sur wiki.debian-facile.org/doc:envir … multimedia mais l’article comporte des zones d’ombres… et ne va pas jusqu’au bout de la manip

  • j’ai créé un document appelé .Xmodmap (mais son nom importe peu, c’est vous qui allez l’appeler…) dans lequel j’écris “keycode 133 = Multi_key”, document placé dans mon répertoire perso.

  • ensuite je tape la commande xmodmap ~/.Xsession. Et ça marche mais il faut aussi que çan marche quand je redémarre

  • dans etc/X11, je lis (sans les tripoter…) les fichiers Xsession et Xsession.options

  • dans Xsession on trouve :

initialize variables for use by all session scripts

OPTIONFILE=/etc/X11/Xsession.options
SYSRESOURCES=/etc/X11/Xresources
USRRESOURCES=$HOME/.Xresources

SYSSESSIONDIR=/etc/X11/Xsession.d
USERXSESSION=$HOME/.xsession
USERXSESSIONRC=$HOME/.xsessionrc
ALTUSERXSESSION=$HOME/.Xsession
ERRFILE=$HOME/.xsession-errors

  • dans mon répertoire perso $HOME je crée un .Xsessionrc qui est une copie de mon .Xsession (on ne sait jamais…)

-au redémarrage ma touche windows ne fait plus rien (c’est déjà un résultat) mais je dois refaire la commande pour obtenir le résultat attendu)

Je suis presque au bout de mes peines. J’ai fait une erreur quelque part, sans doute dans le fichier .Xsession (est-ce qu’il faut le configurer comme un script bash ? pourquoi ça fonctionne quand je l’appelle et pas en démarrage de session ?) et je peux écrire “Sur ma Remington portative, j’ai écrit ton nom Lætitia” (Serge Ginsbourg) Na !

Ben dis donc, faut en avoir vraiment besoin de ta touche fenêtre pour faire tout ce boulot.
Bravo quand même pour ta persévérance.

Oui,
j’aime bien comprendre… et puis si je suis sur Linux, c’est parce qu’on peut (en principe) l’adapter à ses besoins.

Ajoute à la fin de ton fichier ~/.xsession (ou .xinitrc) la ligne suivante :
[mono]xmodmap ~/.Xmodmap[/mono]
puis relance ta session graphique.

Si ça fonctionne, ne pars pas tout de suite et prends le temps de me signaler ici les manques dans l’article du wiki debian-facile et je le compléterai. Ou mieux : tu peux tout simplement t’y créer un compte pour y effectuer les modifications nécessaires. (tu ne risques pas de casser quoi que ce soit, son système d’historique permet de restaurer facilement une version précédente de l’article en cas de gaffe)

la ligne xmodmap ~/.Xmodmap placée dans ~/.Xsession ne fonctionne pas (pour le moment)
Dès que j’ai trouvé je fais un point (et je peux en effet compléter le doc en question).
Encore un peu de patience (j’ai d’autres travaux en cours…)

Remet ton fichier .Xsession comme il était, puis crée le fichier .xsessionrc si il n’y ait pas,
met dedans

#!/bin/sh xmodmap ~/.Xmodmap
et rend le exécutable. Ça devrait fonctionner.

Las, las, las… j’ai essayé tout ce que je sais faire,
(y compris ce que tu conseilles)
vérifier le nom des fichiers,
les autorisations, l’intitulé du shabang… Rien n’y fait :
au démarrage, la touche windows est désaffectée (ce qui est déjà bien)
et mon mappage inexistant (grrrrrrr…).

Quand je tape en console xmodmap ~/.Xmodmap ça fonctionne aussitôt.
Le document .Xmodmap lui même est autorisé en lecture (il n’est pas exécuté, il n’est que lu, non ?)

Je cale un peu mais j’espère trouver…
je vais trouver !

Blood and guts, ça signifie que le xmodmap est écrasé après (ce qui est curieux), rajoute un

touch /tmp/gabeu

dans le .xsessionrc et fais une deconnexion/connexion puis regarde si /tmp/gabeu est crée. Si oui, c’est qu’il y a une carte du clavier qui est chargée après, sans doute par ton environnement de bureau. Il faut dans ce cas que tu précises quel environnement tu utilises.

Test : oui, la commande touch /tmp/gabeu crée bien un “gabeu” (merci pour ce test…)

Je suis sur Debian LMDE Mate

en chechant bien, je trouve dans /etc/mdm/ un Xsession dans lequel je peux lire les lignes suivantes :
usermodmap="$HOME/.Xmodmap"
userxkbmap="$HOME/.Xkbmap"

if [ -f “$userxkbmap” ]; then
setxkbmap cat "$userxkbmap"
XKB_IN_USE=yes
fi

# xkb and xmodmap don’t play nice together
if [ -z “$XKB_IN_USE” ]; then
if [ -f “$usermodmap” ]; then
xmodmap "$usermodmap"
fi
fi
unset XKB_IN_USE

Si la Xsession en question se charge après mon .Xmodmap, on s’approche de la solution
(ou bien j’ai complètement faux…)
Il faudrait alors créer un ~/.Xkbmap qui n’existe pas pour le moment ???