Lancer commande démarrage session

bonjour,
ayant une touche clavier C qui est HS je la permute avec la touche Dollar
J’ai créé le fichier de mappage .xmodmap-eee qui va bien
si je lance la commande xmodmap ~/.xmodmap-eee dans un terminal tout va bien
Par contre impossible de la lancer en début de session
/home/utilisateur/.config/autostart/xmodmap.desktop
avec dans xmodmap.desktop

[Desktop Entry]
Type=Application
Name=xmodmap
Comment=remplacer touche c
Exec=xmodmap ~/.xmodmap-eee

La commande ne s’execute pas.

yo , je sais pas si j’ai bon , mais il me semble que la commande « Crontab » peut te servir pour le lancement de X programmes au démarrage de Debian .
https://openclassrooms.com/fr/courses/43538-reprenez-le-controle-a-laide-de-linux/41155-executer-un-programme-a-une-heure-differee

Cordialement , Morphe-uSe .

Bonjour,

Pas sûr d’être d’une grande aide, mais comme une idée me vient…

Exec=xmodmap ~/.xmodmap-eee

Et si tu essayes avec le chemin complet de l’exécutable? Tu peux l’obtenir comme ceci :

which xmodmap 

Sinon, avec un service systemd.

Les tâches planifiées (cron) ne sont pas faites pour ça, toutefois on peut utiliser la planification @reboot pour lancer quelque chose au redémarrage. Par contre, aucune idée de si ça se lance à un simple démarrage.

Un exemple à compléter avec ce que vous voulez :wink:

[Unit]
Description=Xmonad window manager

[Service]
ExecStart=/usr/bin/xmonad
 
[Install]
Alias=wm.service

merci de vos réponses
ce n’est pas une histoire de chemin complet de la commande xmodmap
j’ai essayé avec systemd mais pas plus de succès …

Yo , ok je pensais que cron s’utiliser avec pas mal de cmd , (en plus des cmd bash basique ) merci Sk4 :slight_smile:

La solution de @Clochette est bien ce qu’il y a de plus propre, à mon avis, par contre avec un squelette comme ça :

[Unit]
Description=Xmonad window manager for %I
ConditionFileIsExecutable=/usr/bin/xmonad
ConditionFileNotEmpty=/home/%I/.xmodmap-eee

[Service]
User=%I
ExecStart=/usr/bin/xmonad /home/%I/.xmodmap-eee

[Install]
WantedBy=multi-user.target
  • Ecrire le squelette: nano /etc/systemd/system/xmodmap@tonUser.service (modifier tonUserpar ton nom d’utilisateur)
  • Activer le service: systemctl enable xmodmap@tonUser.service
  • Démarrer le service: systemctl start xmodmap@tonUser.service
  • Vérifier que ça s’est bien passé: systemctl status xmodmap@tonUser.service

Beaucoup critique systemd, mais personnellement, je le trouve nettement plus simple pour la création de service.

Bonjour

On peut utiliser un fichier de type .desktop
qui aura été créé dans le répertoire ~/.config/autostart/

mais pour que la commande xmodmap puisse reconfigurer le clavier,
j’ai fait lancer cette commande par un shell
en la faisant précéder d’une petite temporisation (sleep 3).

=======
Ci-dessous, le contenu du fichier
~/.config/autostart/xmodmap-touche-c.desktop
que je viens de tester avec succès
sur un système debian avec un Environnement de Bureau XFCE :

[Desktop Entry]
Type=Application
Name=xmodmap-touche-c
Comment=remplacer touche c
Exec=sh -c "sleep 3 && xmodmap ~/.xmodmap-eee"