Gnome Shell: eseguire script di shell dopo l'avvio della sessione?


9

Sono un utente di KDE da molto tempo, non ho mai visto GNOME dal momento che potrebbe essere Mandrake Linux 10 qualcosa. Ieri ho dato un'occhiata a GNOME Shell su Youtube e ho pensato che valesse la pena dare un'occhiata.

In realtà vale la pena, ma non riesco a capire un momento.

Ho uno script di shell che era in esecuzione sulle installazioni del mio laptop KDE per anni:

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 

Questo disabilita il tasto destro del mouse, tutti i tocchi, inverte le direzioni di scorrimento, disabilita lo scorrimento orizzontale e altro. Il menu del touchpad né in KDE né in gnome non consentono questo tipo di configurazione. (TBH, solo il Mac di tutti i sistemi operativi ha la GUI per configurare il touchpad esattamente così :)).

Non riesco a capire, come posso eseguirlo dopo l'avvio della sessione di gnome shell? Ho già provato questo senza risultati:

[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

Altri suggerimenti, per favore? Grazie.


1
Quel .desktopfile è eseguibile?
Muru,

Non avevo idea che i file .desktop dovrebbero avere permessi eseguibili. :)
Mikhail Krutov l'

3
I lanciatori locali (utente), sì, devono esserlo +x. Apri ~/.config/autostartin Nautilus e fai doppio clic su script.desktop, ti verrà chiesto di "contrassegnare come attendibile" (che equivale a chmod +x).
don_crissti,

Risposte:


7

Puoi usare il programma gnome-session-properties. Basta eseguirlo dal prompt della shell (gnome-terminal):

$ gnome-session-properties

Questo aprirà una GUI in cui è possibile configurare (cioè aggiungere, modificare, rimuovere, abilitare e disabilitare) i programmi di avvio.

Bello e facile. Godere.

Aggiornamento: Come notato da don_crissti (grazie) nei commenti qui sotto, la funzionalità dei programmi di avvio di gnome-session-properties è migrata gnome-tweak-toolda Gnome 3.12 (che tra l'altro è un ottimo strumento, ma un po 'più disordinato in quanto concentra troppe funzioni). Quindi, per le versioni 3.12 e successive, questo è il nuovo posto dove cercare.

OBS: E a proposito, usando questo metodo, non è necessario creare un .desktopfile, puoi semplicemente specificare la riga di comando dello /home/neko/bin/auto_stuff.shscript che hai creato (o qualsiasi altro script o comando che desideri).


Vale la pena notare che il gnome-session-propertiesbinario non è più presente nelle recenti versioni di Gnome 3 (rimosso a partire da 3.12IIRC). La sua funzionalità è stata inclusa in gnome-tweak-tool.
don_crissti,

Interessante ... Sto usando Fedora 20 (con Gnome 3.10), che ha ancora. Triste che il team di Gnome paralizzi (o modifichi) continuamente il software secondo i gusti degli utenti. Almeno hanno mantenuto la funzionalità in gnome-tweak-tool, quindi ecco il nuovo posto dove guardare ...
Marcelo,

gnome-tweak-tools non ti consente di aggiungere script in una posizione specifica. Devi saltare attraverso i cerchi con i file desktop.
RichieHH,

Tuttavia, gnome-session-properties funziona ancora almeno in Ubuntu gnome 17.04; basta avviarlo da una shell.
Tim Richardson,

3
Ciao @Marcelo per me, (Ubuntu 17.04) Non sono riuscito a trovare alcun elemento dell'interfaccia utente in gnome-tweak-tool che mi permetta di inserire script da riga di comando o persino cercarli. Forse Gnome su Ubuntu è un po 'indietro, anche se è principalmente 3.24. Questo potrebbe essere il motivo per cui gnome-session-properties è ancora disponibile. Sono nuovo di Gnome, migrando da xfce. Da quello che posso vedere, gnome-tweak-tool non ha nulla di simile alla funzionalità di gnome-session-properties quando si tratta di script di avvio ed è strano quanto sembri difficile.
Tim Richardson,

2

Nei .desktopfile il caso è significativo . Il seguente modello funziona con Fedora 27 con shell GNOME (ovvero il Exec=valore viene eseguito all'avvio della sessione):

[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

(da conservare come $HOME/.config/autostart/myscript.desktop)

La differenza principale: hai usato la chiave X-Gnome-Autostart=nel tuo esempio.

Controlla se lo script /path/to/myscriptè eseguibile, ovvero se ha impostato i bit di autorizzazione e x ecutable.

Il OnlyShowIn=non è forse significativo per la funzionalità di avvio automatico, ma non ho provato senza di essa. È possibile elencare più ambienti desktop come questo: OnlyShowIn=GNOME;LXDE;Unity;consultare la XDG_CURRENT_DESKTOPvariabile di ambiente per verificare i valori corretti.

Se si desidera verificare se lo script stampa messaggi di errore, è possibile verificare journalctl --user, ad esempio il diario della sessione.


Questo ha funzionato per me, ma ho dovuto usare chmod +x myscript.desktop /path/to/myscript.shcome suggerito in un commento. Altrimenti journalctl --user darebbe l'errore Could not parse desktop file myscript.desktop or it references a not found TryExec binary.
sergio

@sergio, certo, il file /path/to/myscript.shche vuoi eseguire deve essere eseguibile. Ma myscript.desktopnon senza bisogno di avere i permessi eseguibili.
maxschlepzig
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.