web-dev-qa-db-fra.com

Script de niveau utilisateur exécuté par lightdm

J'aimerais effectuer un remappage des touches qui n'affecte que mon utilisateur, mais partout dans mon gestionnaire de fenêtres, pas seulement dans un terminal.

Dans lightdm, je sélectionne génial comme gestionnaire de fenêtres et je me connecte. Existe-t-il des points de connexion pour la configuration par utilisateur avant le démarrage de xserver? .xinitrc et .xsession ne semblent pas être gérés par lightdm. Encore mieux serait une solution nécessitant un point d'entrée qui ferait des remappages de clés indépendamment du gestionnaire de fenêtres, mais il semble que les différents gestionnaires de fenêtres ont des conventions différentes sur la façon de se connecter.

2
Thomas

Si vous êtes juste intéressé à remapper les clés d'une manière qui fonctionne pour n'importe quel wm, je pense que j'ai un moyen pour n'importe quel X wm typique mais vous devrez probablement le configurer par wm. Par exemple, dans Awesome, j'ajoute la ligne suivante à la fin de mon rc.lua:

awful.util.spawn_with_Shell("/usr/bin/setxkbmap -option caps:swapescape -option altwin:ctrl_win")

avec mes autres éléments de démarrage automatique. Les options ci-dessus permuteront l'échappement et le verrouillage des majuscules et mapperont les touches "windows" (et les touches ctrl habituelles) à ctrl.

Quel que soit le DE ou le wm que vous utilisez, il devrait offrir un moyen de démarrer automatiquement les commandes. Le démarrage automatique de la commande setxkbmap appropriée devrait remapper vos clés. Je l'ai fait dans divers gestionnaires de fenêtres. AFAIK, c'est la manière fiable et "correcte" de remapper les clés, contrairement à xmodmap, qui semble floconneux.

Pour remapper les clés souhaitées, vous devez connaître les options appropriées et les valeurs de clé à transmettre. Vous pouvez trouver une liste dans /usr/share/X11/xkb/rules/xorg.lst

Bien sûr, vous pouvez utiliser setxkbmap dans .xinitrc également, mais comme vous l'avez souligné, lightdm ne semble pas l'utiliser lors du chargement des sessions. Étant donné que j'utilise également lightdm, je ne pense généralement pas à éditer xinitrc, mais cela m'a tout simplement frappé qu'il devrait y avoir un moyen de démarrer une session X définie par l'utilisateur via lightdm ... et j'ai trouvé - cette réponse . Cela pourrait être plus conforme à ce que vous voulez faire.

4
Chan-Ho Suh