Wie kann ich die Befehlszeile so anhalten, dass der Bildschirm gesperrt ist?

10

Ich benutze Xubuntu 12.04. Im Power Manager habe ich beim Anhalten / Ruhezustand den Bildschirm Erweitert -> Sperren aktiviert. Wenn ich das Hauptmenü / Panel 1 anhalte, ist der Bildschirm gesperrt. Wenn ich jedoch verwende dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Suspend(siehe Wie kann ich den Befehl über die Befehlszeile anhalten / in den Ruhezustand versetzen? Ich verwende diesen Befehl über eine Tastenkombination), ist der Bildschirm nicht gesperrt. Wie kann ich (1) das System anhalten (2) den Bildschirm gleichzeitig sperren lassen (3) dafür keine Root-Rechte benötigen [da ich möchte, dass der Befehl einer Tastenkombination zugewiesen wird].

Marius Hofert
quelle

Antworten:

10

Sie können dies folgendermaßen tun:

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

In einer Tastenkombination müssen Sie das sh -c "<command>"Ersetzen <command>durch den obigen Befehl wie folgt einfügen :

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

Wenn der obige Befehl nicht funktioniert, können Sie auch versuchen, eine Shell-Skriptdatei zu verwenden (zum Beispiel suspend_lockscreen.sh). Erstellen Sie zuerst die Datei und rufen Sie die folgenden Befehle in einer Konsole auf:

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

Dadurch wird eine Datei mit dem Namen suspend_lockscreen.sh im Benutzer-Home-Ordner erstellt. Dann rufen Sie in der Verknüpfung einfach auf : ./suspend_lockscreen.sh.

Hinweis: gnome-screensaver-commandKann ersetzt werden durch xscreensaver-command, wie in einem Kommentar ausgeführt.

Amfcosta
quelle
Nein, es sperrt nur den Bildschirm und vergisst, ihn gemäß einem Kommentar in der Antwort, die ich gemacht habe,
auszusetzen
1
Ahh gut. Ich habe gerade festgestellt, dass gnome-screensaver-commanddies auch durch ersetzt werden kann, xscreensaver-commandsodass keine zusätzliche Installation erforderlich ist. Ohne das && dbus-send...Teil bekommt man einfach ein Schloss (ohne Suspend); damit bekommt man eine Suspendierung mit Sperre beim Aufwachen. Perfekt.
Marius Hofert
Leider funktioniert der Befehl vom Terminal aus, aber nicht von der von mir definierten Tastenkombination :-( Wissen Sie, was das Problem sein könnte?
Marius Hofert
@MariusHofert Ich habe die Antwort mit der Verwendung der Befehle von einem Tastatur-Shurtcut aktualisiert. Überprüfen Sie, ob es nach Bedarf funktioniert. (Ich habe in Ubuntu 12.04 getestet und es hat funktioniert).
Amfcosta
Immer noch das gleiche Problem: Sperren funktioniert; Aussetzen nicht (Xubuntu 12.04)
Marius Hofert
2

Ich habe den Befehl dbus von amfcosta verwendet, um die Befehlszeile anzuhalten. Bei der Wiederaufnahme war eth0 jedoch nicht verfügbar.

Ich habe dann diesen Befehl gefunden:

xfce4-session-logout --suspend

Dieser Befehl deaktiviert das Netzwerk, unterbricht das Netzwerk und aktiviert es dann wieder, wenn der Computer aufwacht.

xfce4-session-logoutist xfce-spezifisch, aber andere Desktop-Umgebungen haben möglicherweise ähnliche *-session-logoutBefehle.

Ich verwende Xubuntu 14.04.

Update: Dies wirkt sich möglicherweise nicht auf andere aus, aber es stellt sich heraus, dass bei meinem Asus EEE 900 die kabelgebundene Ethernet-Verbindung nur jedes zweite Mal funktioniert, wenn das EEE aufwacht. Dies ist natürlich sehr ärgerlich und bedeutet, dass Suspend unbrauchbar ist.

mpb
quelle
1

Mit Ubuntu 15.10 funktioniert dies auch:

gnome-screensaver-command --lock && systemctl -i suspend
iGEL
quelle
0

Hinweis: Die xscreensaver-commandOption funktioniert nur mit -lock(mit 1 Bindestrich, nicht doppelt wie mit gnome-screensaver-command). Der Befehl funktioniert jedoch nur, wenn der Bildschirmschoner ausgeführt wird, was nicht sehr nützlich ist.

LinuxRev
quelle