Come sospendere dalla riga di comando in modo che lo schermo sia bloccato?


10

Sto usando Xubuntu 12.04. In Power Manager, ho controllato la schermata estesa -> Blocco quando si va in sospensione / ibernazione. Se scelgo di sospendere dal menu principale / Pannello 1, lo schermo è bloccato. Tuttavia, se utilizzo dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Suspend(vedi Come posso sospendere / ibernare dalla riga di comando? Uso questo comando tramite una scorciatoia da tastiera), lo schermo non è bloccato. Come posso (1) sospendere il sistema (2) allo stesso tempo bloccare lo schermo (3) non richiedere i diritti di root per farlo [poiché vorrei che il comando fosse assegnato a una scorciatoia da tastiera].

Risposte:


10

Puoi farlo usando il seguente:

gnome-screensaver-command --lock && dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Suspend

In una scorciatoia da tastiera devi mettere la sh -c "<command>"sostituzione <command>con il comando sopra, come:

sh -c "gnome-screensaver-command --lock && dbus-send --system --print-reply --dest=org.freedesktop.UPower /org/freedesktop/UPower org.freedesktop.UPower.Suspend"

Se il comando sopra non funziona, puoi anche provare a utilizzare un file di script di shell (ad esempio suspend_lockscreen.sh). Per prima cosa crea il file chiama i seguenti comandi in una console:

cd ~
echo "gnome-screensaver-command --lock" >> suspend_lockscreen.sh
echo "dbus-send --system --print-reply --dest=org.freedesktop.UPower /org/freedesktop/UPower org.freedesktop.UPower.Suspend" >> suspend_lockscreen.sh
chmod +x suspend_lockscreen.sh

Ciò creerà un file chiamato suspend_lockscreen.sh nella cartella home dell'utente. Poi, nel collegamento basta chiamare: ./suspend_lockscreen.sh.

Nota: gnome-screensaver-commandpuò essere sostituito da xscreensaver-command, come sottolineato in un commento.


No, blocca solo lo schermo e si dimentica di sospenderlo in base a un commento fatto nella risposta che ho fatto;)
Rinzwind,

1
Ah bene. Ho appena realizzato che gnome-screensaver-commandpuò anche essere sostituito da xscreensaver-commandquindi non è necessaria alcuna installazione aggiuntiva. Senza la && dbus-send...parte si ottiene semplicemente un blocco (senza sospensione); con esso, si ottiene una sospensione con blocco al risveglio. Perfetto.
Marius Hofert,

Sfortunatamente, il comando funziona dal terminale ma non dalla scorciatoia da tastiera che ho definito :-( Sai quale potrebbe essere il problema?
Marius Hofert,

@MariusHofert Ho aggiornato la risposta con come utilizzare i comandi da una scorciatoia da tastiera. Vedi se funziona come ti serve. (Ho provato su Ubuntu 12.04 e ha funzionato).
amfcosta,

Sempre lo stesso problema: il bloccaggio funziona; la sospensione no (Xubuntu 12.04)
Marius Hofert,

2

Stavo usando il comando dbus di amfcosta per sospendere dalla riga di comando. Tuttavia, al momento del riassunto, eth0 era inattivo.

Ho quindi trovato questo comando:

xfce4-session-logout --suspend

Questo comando disabilita la rete, sospende e quindi riattiva la rete quando il computer si riattiva.

xfce4-session-logoutè specifico di xfce, ma altri ambienti desktop potrebbero avere *-session-logoutcomandi simili .

Sto eseguendo Xubuntu 14.04.

Aggiornamento: questo potrebbe non influire sugli altri, ma risulta che sul mio Asus EEE 900, la connessione Ethernet cablata funziona solo ogni volta che l'EEE si riattiva. Questo è, ovviamente, molto fastidioso e significa che la sospensione è inutilizzabile.


1

Con Ubuntu 15.10 funziona anche:

gnome-screensaver-command --lock && systemctl -i suspend

0

Nota: xscreensaver-commandfunziona solo con l'opzione -lock(con 1 trattino, non un doppio come con il gnome-screensaver-command). Tuttavia, il comando funziona solo quando lo screensaver è in esecuzione, quindi non molto utile.

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.