Gnome Shell: Shell-Skript nach Sitzungsstart ausführen?


9

Ich bin ein langjähriger KDE-Benutzer, habe GNOME noch nie gesehen, da Mandrake Linux 10 möglicherweise etwas ist. Gestern habe ich mir GNOME Shell auf Youtube angesehen und dachte, es könnte einen Blick wert sein.

Es ist tatsächlich wert, aber ich kann keinen Moment herausfinden.

Ich habe ein Shell-Skript, das seit Ewigkeiten auf meinen KDE-Laptop-Installationen ausgeführt wird:

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 

Dies deaktiviert das Klicken mit der rechten Maustaste, alle Tippen, kehrt die Bildlaufrichtungen um, deaktiviert das horizontale Scrollen und so weiter. Das Touchpad-Menü oder in KDE, weder in Gnome noch in Gnome, erlauben diese Art der Konfiguration. (TBH, nur Mac aller Betriebssysteme hat die GUI, um das Touchpad genau so einzurichten :)).

Ich kann nicht herausfinden, wie ich dies ausführen soll, nachdem die Gnome-Shell-Sitzung gestartet wurde. Ich habe dies bereits ohne Ergebnisse versucht:

[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

Irgendwelche anderen Vorschläge bitte? Vielen Dank.


1
Ist diese .desktopDatei ausführbar?
Muru

Ich hatte keine Ahnung, dass .desktop-Dateien ausführbare Berechtigungen haben sollten. :)
Mikhail Krutov

3
Die lokalen (Benutzer-) Trägerraketen müssen es sein +x. Öffnen Sie ~/.config/autostartin Nautilus und doppelklicken Sie auf Ihre script.desktop. Sie werden aufgefordert, "als vertrauenswürdig zu markieren" (entspricht chmod +x).
don_crissti

Antworten:


7

Sie können das Programm gnome-session-properties verwenden. Führen Sie es einfach über Ihre Shell-Eingabeaufforderung (Gnome-Terminal) aus:

$ gnome-session-properties

Dadurch wird eine GUI geöffnet, in der Sie Startprogramme konfigurieren (dh hinzufügen, bearbeiten, entfernen, aktivieren und deaktivieren) können.

Schön und leicht. Genießen.

Update: Wie von don_crissti (danke) in den Kommentaren unten bemerkt, wurde die Funktionalität der Startprogramme für Gnome-Session-Eigenschaften gnome-tweak-toolseit Gnome 3.12 migriert (was übrigens ein großartiges Tool ist, aber etwas chaotischer, da es einfach zu viele Funktionen konzentriert). Für Versionen 3.12 und höher ist dies der neue Ort, an dem Sie suchen müssen.

OBS: Übrigens müssen Sie mit dieser Methode keine .desktopDatei erstellen . Sie können einfach die Befehlszeile des von /home/neko/bin/auto_stuff.shIhnen erstellten Skripts (oder eines anderen gewünschten Skripts oder Befehls) angeben .


Es ist erwähnenswert, dass die gnome-session-propertiesBinärdatei in den letzten Gnome 3-Versionen (ab 3.12IIRC entfernt) nicht mehr vorhanden ist . Seine Funktionalität wurde in aufgenommen gnome-tweak-tool.
don_crissti

Interessant ... Ich verwende Fedora 20 (mit Gnome 3.10), das es noch hat. Schade, dass das Gnome-Team die Software kontinuierlich gegen den Geschmack der Benutzer lähmt (oder formt). Zumindest haben sie die Funktionalität in Gnome-Tweak-Tool beibehalten, also hier ist der neue Ort, um zu schauen ...
Marcelo

Mit gnome-tweak-tools können Sie keine Skripte an einer bestimmten Stelle hinzufügen. Sie müssen mit Desktop-Dateien durch Rahmen springen.
RichieHH

Die Gnome-Session-Eigenschaften funktionieren jedoch immer noch, zumindest in Ubuntu Gnome 17.04. Starten Sie es einfach von einer Shell.
Tim Richardson

3
Hallo @Marcelo für mich, (Ubuntu 17.04) Ich konnte in gnome-tweak-tool kein UI-Element finden, mit dem ich Befehlszeilenskripte eingeben oder sogar danach suchen kann. Vielleicht liegt Gnome unter Ubuntu etwas zurück, obwohl es meistens 3.24 ist. Dies könnte der Grund sein, warum Gnome-Session-Eigenschaften immer noch verfügbar sind. Ich bin neu bei gnome und migriere von xfce. Soweit ich sehen kann, hat das Gnome-Tweak-Tool nicht die Funktionalität von Gnome-Session-Eigenschaften, wenn es um Startskripte geht, und es ist seltsam, wie schwer es zu sein scheint.
Tim Richardson

2

In .desktopDateien ist der Fall von Bedeutung . Die folgende Vorlage funktioniert unter Fedora 27 mit der GNOME-Shell (dh der Exec=Wert wird beim Sitzungsstart ausgeführt):

[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

(zu speichern als $HOME/.config/autostart/myscript.desktop)

Der Hauptunterschied: Sie haben den Schlüssel X-Gnome-Autostart=in Ihrem Beispiel verwendet.

Überprüfen Sie, ob Ihr Skript /path/to/myscriptausführbar ist, das heißt , wenn es die e hat x ecutable Berechtigungs - Bit (s) gesetzt.

Das OnlyShowIn=ist für die Autostart-Funktionalität vielleicht nicht von Bedeutung, aber ich habe es ohne es nicht getestet. Sie können mehrere Desktop-Umgebungen wie OnlyShowIn=GNOME;LXDE;Unity;folgt auflisten : XDG_CURRENT_DESKTOPÜberprüfen Sie die Umgebungsvariable, um die korrekten Werte zu überprüfen.

Wenn Sie überprüfen möchten, ob Ihr Skript Fehlermeldungen druckt, die Sie überprüfen können journalctl --user, z. B. das Sitzungsjournal.


Dies funktionierte für mich, aber ich musste verwenden, chmod +x myscript.desktop /path/to/myscript.shwie in einem Kommentar vorgeschlagen. Andernfalls würde journalctl --user den Fehler ausgebenCould not parse desktop file myscript.desktop or it references a not found TryExec binary .
Sergio

@sergio, sicher, das, was /path/to/myscript.shSie ausführen möchten, muss ausführbar sein. Aber myscript.desktopnicht nicht brauchen ausführbare Berechtigungen zu haben.
Maxschlepzig
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.