Comment définir Xmodmap lors de la connexion?

37

Comme la disposition de mon clavier ne me convient pas, je lance xmodmap à la connexion. Le script s'appelle .profile et fonctionne correctement, mais il interrompt l'interface Unity.

Je veux savoir où mettre la ligne xmodmap de sorte qu'elle s'exécute sur mes identifiants et ne casse rien.

J'ai déjà essayé de le mettre dans les fichiers .bash_login et .bash_profile , sans succès ( xmodmap ne définissant pas mon clavier).

Quelles sont mes options?

    
posée Thiago Moraes 22.07.2011 - 19:55
la source

5 réponses

25

Le bon endroit pour mettre xmodmap ~/.Xmodmap (afin que vos modifications soient lues au démarrage) est dans ~/.xinitrc (voir l'explication ci-dessous), bien que vous puissiez alternativement placer la commande xmodmap comme élément de démarrage ( /usr/bin/xmodmap /home/user/.Xmodmap ). Je peux dire que pour 12.04 (et probablement 12.10) que ces deux alternatives fonctionnent vraiment, comme elles sont lues de toute façon après vous vous connectez avec lightdm . (J'ai changé Retour en Right Shift , et la modification n’a pris effet qu’après avoir entré mon mot de passe et ouvert une session).

Remarque: si vous utilisez Xfce, vous le trouverez sur la FAQ Xfce officielle vous devrez peut-être créer un élément de démarrage au lieu d'utiliser ~/.xinitrc et que vous devrez peut-être retarder l'exécution pour que les modifications xmodmap ne soient pas remplacées par setxkbmap . Vous pouvez utiliser un délai pour y parvenir dans votre entrée de démarrage:

/bin/bash -c "sleep 20; /usr/bin/xmodmap /home/$USER/.Xmodmap"

(Pour l’entrée de démarrage, il est nécessaire de spécifier des chemins absolus)

Chaque fois que setxkbmap est exécuté pour modifier la disposition du clavier, vous devrez exécuter xmodmap ~/.Xmodmap à nouveau dans le terminal.

Création de ~/.xinitrc

Créez un fichier dans votre dossier personnel appelé .xinitrc avec

touch .xinitrc

et placez-y:

xmodmap ~/.Xmodmap

Votre fichier Xmodmap devrait ne pas comporter des entrées dans le style xmodmap -e " " , car il est utilisé dans le terminal pour définir temporairement les valeurs. Il doit avoir des entrées dans ce format:

keycode 65 = Tab
keycode 23 = Space

Il est souvent déroutant de savoir lequel des différents fichiers X (tels que .xprofile , .xinitrc , etc.) est lu au démarrage, mais .xinitrc semble être toujours lu sous 12.04, tandis que .Xmodmap ou .xinputrc ne sont pas lus par eux-mêmes.

    
réponse donnée user76204 03.11.2012 - 18:34
la source
4

J'utilise ElementaryOS (avec son gestionnaire de fenêtres basé sur GNOME) et j'ai trouvé une solution en utilisant les scripts de démarrage automatique de xdg . De nombreux gestionnaires de fenêtres utilisent xdg, donc je suppose que cette approche fonctionnera également dans d'autres environnements. Au moins, cela devrait fonctionner avec GNOME.

xdg exécute des scripts dans ~/.config/autostart lors de la connexion à une session X. Pour charger la configuration de xmodmap lors de la connexion, ajoutez le script suivant à ~/.config/autostart/xmodmap.desktop :

[Desktop Entry]
Name[en_US]=Xmodmap
Comment[en_US]=xmodmap ~/.Xmodmap
Exec=/usr/bin/xmodmap .Xmodmap
Icon=application-default-icon
X-GNOME-Autostart-enabled=true
Type=Application

Déconnectez-vous et reconnectez-vous, et votre configuration Xmodmap devrait être chargée.

Si cela ne fonctionne pas, essayez d’exécuter xmodmap dans le terminal pour voir si xmodmap se plaint:

$ xmodmap ~/.Xmodmap

Si vous n'obtenez aucune erreur, exécutez la commande suivante pour déboguer:

$ sudo cat /var/log/syslog | grep -B 5 -A 5 xmodmap
    
réponse donnée kontrollanten 22.09.2017 - 23:18
la source
2

Je ne dispose pas de l’unité de l’unité en ce moment, mais essayez de cliquer sur le bouton Applications du lanceur, puis tapez start-up. Il devrait y avoir une application appelée Startup Applications (ou une application similaire). Cliquez dessus et ajoutez votre commande xmodmap (par exemple xmodmap /home/thiago/.Xmodmap ).

    
réponse donnée djeikyb 23.07.2011 - 02:28
la source
2

Mint 17/18, je peux réaliser cela avec mes scripts dans l'application de démarrage, avec un délai d'une seconde.

Comme Mint 18 est dérivé d’Ubuntu 1604, je pense que vous pouvez faire la même chose ou installer le panneau de gestion de Startup Application en premier si ce n’est pas le cas.

J'espère que ça aide.

    
réponse donnée hxpax 18.10.2016 - 09:03
la source
-1

La modification de xmodmap dans ~/.bashrc ou /etc/bash.bashrc ne rompt rien.

Le seul inconvénient est qu’il faut ouvrir un terminal après chaque démarrage pour l’activer.

    
réponse donnée Rasmus 23.07.2011 - 01:47
la source

Lire d'autres questions sur les étiquettes