web-dev-qa-db-fra.com

Exécuter la commande à la connexion - Ubuntu 15.04

Cela a été demandé à mort, et pourtant aucune des solutions que j'ai trouvées ne semble fonctionner.

Je souhaite exécuter une commande, par exemple setxkbmap -layout us -option ctrl:nocaps, lors de la connexion. Cela ne devrait fonctionner que pour moi, et non pour quiconque se connecte.

~/.profile ne fonctionne pas. ~/.xinitrc ne fonctionne pas. ~/.xsession ne fonctionne pas. ~/.config/autostart ne fonctionne pas.

Edit: Idéalement, la solution serait également conviviale pour la sauvegarde. Les fichiers de configuration sont faciles à copier, et c'est l'un des avantages des systèmes Linux.

6
bfops

Très certainement, ~/.config/autostartfonctionne si la commande fonctionne "normalement", mais vous devez connaître deux goulots d'étranglement possibles:

  1. Le lanceur dans ~/.config/autostart est un fichier .desktop. Pour exécuter une commande compliquée à partir d'un fichier .desktop, utilisez la commande suivante:

    /bin/bash -c "setxkbmap -layout us -option ctrl:nocaps"
    
  2. Certaines commandes sont interrompues si elles sont exécutées alors que le bureau n'est pas encore complètement chargé. Dans ce cas, vous devrez ajouter une petite pause, par exemple:

    /bin/bash -c "sleep 15&&setxkbmap -layout us -option ctrl:nocaps"
    
5
Jacob Vlijm