Bagaimana cara menangguhkan dari baris perintah sehingga layar terkunci?

10

Saya menggunakan Xubuntu 12.04. Di Power Manager, saya telah memeriksa Extended -> Lock screen ketika akan menangguhkan / hibernate. Jika saya memilih untuk menangguhkan dari menu utama / Panel 1, layar terkunci. Namun, jika saya menggunakan dbus-send --system --print-reply --dest="org.freedesktop.UPower" /org/freedesktop/UPower org.freedesktop.UPower.Suspend(lihat Bagaimana saya dapat menangguhkan / hibernasi dari baris perintah?; Saya menggunakan perintah ini melalui pintasan keyboard), layar tidak terkunci. Bagaimana saya (1) menangguhkan sistem (2) membuat layar terkunci pada saat yang sama (3) tidak memerlukan hak root untuk melakukannya [karena saya ingin perintah yang akan ditetapkan untuk pintasan keyboard].

Marius Hofert
sumber

Jawaban:

10

Anda dapat melakukannya dengan menggunakan yang berikut:

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

Dalam pintasan keyboard Anda harus sh -c "<command>"mengganti <command>dengan perintah di atas, seperti:

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

Jika perintah di atas tidak berfungsi, Anda juga dapat mencoba menggunakan file skrip shell (misalnya suspend_lockscreen.sh). Pertama buat file panggilan perintah berikut di konsol:

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

Itu akan membuat file bernama suspend_lockscreen.sh di folder home user. Kemudian, di shortcut hanya hubungi: ./suspend_lockscreen.sh.

Catatan: gnome-screensaver-commanddapat diganti dengan xscreensaver-command, sebagaimana ditunjukkan dalam satu komentar.

amfcosta
sumber
Tidak hanya mengunci layar dan lupa tentang penangguhannya sesuai dengan komentar yang dibuat dalam jawaban yang saya buat;)
Rinzwind
1
Ahh bagus Saya baru sadar bahwa itu gnome-screensaver-commandjuga bisa diganti xscreensaver-commandjadi tidak diperlukan instalasi tambahan. Tanpa && dbus-send...bagian satu hanya mendapat kunci (tanpa penangguhan); dengan itu, seseorang mendapat penangguhan dengan kunci saat bangun. Sempurna.
Marius Hofert
Sayangnya, perintahnya bekerja dari terminal tetapi tidak dari pintasan keyboard yang saya tentukan :-( Apakah Anda tahu apa yang mungkin menjadi masalah?
Marius Hofert
@MariusHofert Saya sudah memperbarui jawabannya dengan cara menggunakan perintah dari keyboard shurtcut. Lihat apakah itu berfungsi sesuai kebutuhan. (Saya sudah menguji di Ubuntu 12,04 dan berhasil).
amfcosta
Masih masalah yang sama: penguncian bekerja; penangguhan tidak (Xubuntu 12.04)
Marius Hofert
2

Saya menggunakan perintah dbus amfcosta untuk menangguhkan dari baris perintah. Namun, setelah resume, eth0 turun.

Saya kemudian menemukan perintah ini:

xfce4-session-logout --suspend

Perintah ini menonaktifkan jaringan, menunda, dan kemudian mengaktifkan kembali jaringan ketika komputer bangun.

xfce4-session-logoutspesifik xfce, tetapi lingkungan desktop lain mungkin memiliki *-session-logoutperintah yang serupa .

Saya menjalankan Xubuntu 14.04.

Pembaruan: Ini mungkin tidak mempengaruhi orang lain, tetapi ternyata pada Asus EEE 900 saya, koneksi ethernet kabel hanya berfungsi setiap kali EEE terbangun. Ini, tentu saja, sangat menjengkelkan, dan berarti penangguhan tidak dapat digunakan.

mpb
sumber
1

Dengan Ubuntu 15.10, ini berfungsi juga:

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

Catatan: xscreensaver-commandsatu - satunya opsi yang berfungsi -lock(dengan 1 tanda hubung, bukan ganda seperti pada gnome-screensaver-command). Namun, perintah itu hanya berfungsi ketika screensaver sedang berjalan, jadi tidak terlalu berguna.

LinuxRev
sumber