Comme la disposition de mon clavier ne me convient pas, je lance xmodmap
lors de la connexion. Le script s'appelle .profile
et il s'exécute correctement, mais il rompt l'interface Unity.
Je veux savoir où placer la ligne xmodmap
afin qu'elle s'exécute sur mon identifiant et ne casse rien.
J'ai déjà essayé de l'insérer dans les fichiers .bash_login
et .bash_profile
, sans succès (xmodmap
ne définit pas mon clavier).
Quelles sont mes options?
L'emplacement correct pour xmodmap ~/.Xmodmap
(afin que vos modifications soient lues au démarrage) est dans ~/.xinitrc
(voir l'explication ci-dessous), bien que vous puissiez également placer la commande xmodmap
en tant qu'élément de démarrage (/usr/bin/xmodmap /home/user/.Xmodmap
). Je peux dire que pour 12.04 (et vraisemblablement 12.10), ces deux alternatives fonctionnent vraiment, car de toute façon elles sont lues après vous vous connectez avec lightdm
. (J'ai changé Renvoyez en Décalage vers la droite , et la modification n'a pris effet qu'après la saisie de mon mot de passe et la connexion).
S'il vous plaît noter: si vous êtes sur Xfce, il est noté sur le FAQ officielle de Xfce que vous devrez peut-être créer un démarrage item au lieu d'utiliser ~/.xinitrc
et qu'il vous faudra peut-être retarder l'exécution pour que les modifications de xmodmap
ne soient pas écrasé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 réexécuter xmodmap ~/.Xmodmap
dans le terminal.
Création de ~/.xinitrc
Créez un fichier dans votre dossier personnel appelé .xinitrc
avec
touch .xinitrc
et place dedans:
xmodmap ~/.Xmodmap
Votre fichier Xmodmap
doit et non avoir des entrées dans le style xmodmap -e " "
tel qu'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 difficile de savoir lequel des différents fichiers X
(tels que .xprofile
, .xinitrc
, etc.) est lu au démarrage, mais .xinitrc
semble toujours être lu sous 12.04, alors que .Xmodmap
ou .xinputrc
ne semble pas être lu par eux-mêmes.
J'utilise ElementaryOS (avec son gestionnaire de fenêtres basé sur GNOME) et j'ai trouvé une solution à l'aide des scripts xdg
autostart. De nombreux gestionnaires de fenêtres utilisent xdg, je suppose donc 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 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
Ensuite, déconnectez-vous et reconnectez-vous, et votre configuration Xmodmap aurait dû être chargée.
Si cela ne fonctionne pas, essayez d'exécuter xmodmap dans un terminal pour voir si c'est xmodmap qui 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
Je n'ai pas l'interface de l'unité devant moi en ce moment, mais essayez de cliquer sur le bouton Applications du lanceur, puis tapez démarrage. Il devrait exister une application appelée Applications de démarrage (ou une application similaire). Cliquez dessus et ajoutez votre commande xmodmap (par exemple xmodmap /home/thiago/.Xmodmap
).
Sur Mint 17/18, je peux réaliser cela, mais mettre mes scripts dans l'application de démarrage, avec un délai de 1 seconde.
Comme Mint 18 est dérivé d’Ubuntu 1604, je pense que vous pouvez en faire de même ou installer d’abord le panneau de gestion de Startup Application s’il n’y est pas.
J'espère que ça aide.
Aucune des suggestions ci-dessus ne me réjouissait (l'option .bashrc n'était pas vraiment viable, car elle exécute xmodmap sur chaque nouveau terminal)
J'ai touché un script appelé xmodstartup.sh
dans mon dossier personnel
#!/bin/bash
sleep 1;
echo "running xmodmap"
xmodmap ~/.Xmodmap
avec cela enregistré, j’ai alors fait Sudo chmod +x xmodstartup.sh
puis j'ai simplement ajouté le fichier exécutable à la fenêtre "Préférences de l'application de démarrage" de gnome. bish bosh, mise en page anglaise y Español sur altgr
:)