Gnome Shell: exécuter un script shell après le début de la session?

9

Je suis un utilisateur de longue date de KDE, je n'ai jamais vu GNOME car il peut s'agir de Mandrake Linux 10. Hier, j'ai jeté un œil à GNOME Shell sur Youtube et j'ai pensé que ça valait le coup.

Cela en vaut la peine, mais je ne peux pas comprendre un instant.

J'ai un script shell qui fonctionnait sur mes installations d'ordinateur portable KDE depuis des lustres:

synclient |grep -E 'TapT|RightB|EdgeScr'|awk '{print $1}'|while read item; do synclient $item=0; done
synclient VertScrollDelta=-111
synclient HorizScrollDelta=1
synclient RightEdge=999999999
synclient TopEdge=0
synclient CircularScrolling=0
synclient BottomEdge=999999999
synclient RightButtonAreaLeft=9999999
synclient ClickFinger3=2
synclient HorizScrollDelta=0
synclient HorizTwoFingerScroll=0 

Cela désactive le clic droit, tous les tapotements, inverse les directions de défilement, désactive le défilement horizontal et autres. Le menu du pavé tactile ni dans KDE ni dans gnome ne permet ce type de configuration. (TBH, seul Mac de tous les systèmes d'exploitation a l'interface graphique pour configurer le pavé tactile exactement comme ça :)).

Je ne peux pas comprendre, comment puis-je exécuter cela après le démarrage de la session shell gnome? J'ai déjà essayé cela sans résultat:

[1] % cat /home/neko/.config/autostart/script.desktop 
[Desktop Entry]
Name="Auto stuff"
GenericName="Auto startup stuff"
Comment="Synclient mostly"
Exec=/home/neko/bin/auto_stuff.sh
Terminal=false
Type=Application
X-Gnome-Autostart=true

D'autres suggestions, s'il vous plaît? Je vous remercie.

Mikhail Krutov
la source
1
Ce .desktopfichier est-il exécutable?
muru
Je n'avais aucune idée que les fichiers .desktop devraient avoir des autorisations exécutables. :)
Mikhail Krutov
3
Les lanceurs locaux (utilisateurs), oui, ils doivent l'être +x. Ouvrez ~/.config/autostartdans Nautilus et double-cliquez sur votre script.desktop, vous serez invité à "marquer comme approuvé" (ce qui équivaut à chmod +x).
don_crissti

Réponses:

7

Vous pouvez utiliser le programme gnome-session-properties. Exécutez-le simplement à partir de votre invite shell (gnome-terminal):

$ gnome-session-properties

Cela ouvrira une interface graphique dans laquelle vous pouvez configurer (c'est-à-dire ajouter, modifier, supprimer, activer et désactiver) les programmes de démarrage.

Agréable et facile. Prendre plaisir.

Mise à jour: Comme indiqué par don_crissti (merci) dans les commentaires ci-dessous, la fonctionnalité des programmes de démarrage de gnome-session-properties a migré gnome-tweak-tooldepuis Gnome 3.12 (auquel btw est un excellent outil, mais un peu plus compliqué car il concentre tout simplement trop de fonctions). Donc, pour les versions 3.12 et supérieures, c'est le nouvel endroit à regarder.

OBS: Et btw, en utilisant cette méthode, vous n'avez pas besoin de créer un .desktopfichier, vous pouvez simplement spécifier la ligne de commande du /home/neko/bin/auto_stuff.shscript que vous avez créé (ou tout autre script ou commande que vous voulez).

Marcelo
la source
Il convient de noter que le gnome-session-propertiesbinaire n'est plus présent dans les versions récentes de Gnome 3 (supprimé à partir de l' 3.12IIRC). Sa fonctionnalité a été incluse dans gnome-tweak-tool.
don_crissti
Intéressant ... J'utilise Fedora 20 (avec Gnome 3.10), qui l'a toujours. Triste que l'équipe Gnome paralyse (ou façonne) continuellement le logiciel contre le goût des utilisateurs. Au moins, ils ont gardé la fonctionnalité dans gnome-tweak-tool, alors voici le nouvel endroit où chercher ...
Marcelo
gnome-tweak-tools ne vous permet pas d'ajouter des scripts à un emplacement spécifique. Vous devez sauter à travers des cercles avec des fichiers de bureau.
RichieHH
Cependant, gnome-session-properties fonctionne toujours au moins dans ubuntu gnome 17.04; il suffit de le démarrer à partir d'un shell.
Tim Richardson
3
Salut @Marcelo pour moi, (Ubuntu 17.04) Je n'ai trouvé aucun élément d'interface utilisateur dans gnome-tweak-tool qui me permette d'entrer des scripts de ligne de commande ou même de les rechercher. Peut-être que Gnome sur Ubuntu est un peu en retard, même s'il s'agit principalement de 3.24. Cela pourrait être la raison pour laquelle gnome-session-properties est toujours disponible. Je suis nouveau sur gnome, migrant depuis xfce. D'après ce que je peux voir, gnome-tweak-tool n'a rien à voir avec la fonctionnalité de gnome-session-properties en ce qui concerne les scripts de démarrage et il est étrange de voir à quel point cela semble difficile.
Tim Richardson
2

Dans les .desktopdossiers, le cas est significatif . Le modèle suivant fonctionne sous Fedora 27 avec le shell GNOME (c'est-à-dire que la Exec=valeur est exécutée au démarrage de la session):

[Desktop Entry]
Encoding=UTF-8
Exec=/path/to/myscript arg1
Name=myscript
Comment=script some stuff
Terminal=false
OnlyShowIn=GNOME
Type=Application
StartupNotify=false
X-GNOME-Autostart-enabled=true

(à stocker sous $HOME/.config/autostart/myscript.desktop)

La principale différence: vous avez utilisé la clé X-Gnome-Autostart=dans votre exemple.

Vérifiez si votre script /path/to/myscriptest exécutable, c'est-à-dire s'il a le ou les bits d'autorisation e x ecutable.

Le OnlyShowIn=n'est peut-être pas significatif pour la fonctionnalité de démarrage automatique, mais je ne l'ai pas testé sans. Vous pouvez répertorier plusieurs environnements de bureau comme celui-ci: OnlyShowIn=GNOME;LXDE;Unity;Consultez la XDG_CURRENT_DESKTOPvariable d'environnement pour vérifier les valeurs correctes.

Si vous voulez vérifier si votre script imprime des messages d'erreur, vous pouvez vérifier journalctl --user, c'est-à-dire le journal de session.

maxschlepzig
la source
Cela a fonctionné pour moi mais j'ai dû utiliser chmod +x myscript.desktop /path/to/myscript.shcomme suggéré dans un commentaire. Sinon, journalctl --user donnerait l'erreur Could not parse desktop file myscript.desktop or it references a not found TryExec binary.
sergio
@sergio, bien sûr, l' /path/to/myscript.shexécutable que vous souhaitez exécuter doit être exécutable. Mais myscript.desktopn'a pas besoin d'avoir des autorisations exécutables.
maxschlepzig