Bagaimana saya bisa mengunci layar menggunakan layar kunci baru dari baris perintah?

19

Ubuntu 14.04 memperkenalkan layar kunci baru yang terlihat mirip dengan layar masuk.

Layar kunci baru

Saya masih dapat mengunci layar menggunakan perintah gnome-screensaver-command --lock(seperti yang selalu saya lakukan sebelumnya), yang di bawah 14,04 mengunci layar, tetapi:

  • Jika Anda menjalankannya dari desktop, itu mengunci layar menggunakan layar kunci baru.
  • Jika Anda menjalankannya dari konsol virtual atau melalui SSH, itu mengunci layar menggunakan layar kunci yang lama .

Saya juga sudah mencoba menggunakan xdg-screensaver lock, tetapi berfungsi dengan cara yang sama gnome-screensaver-command --lock(tidak hanya menggunakan layar kunci baru ketika dijalankan dari desktop).

Menjalankan light-locker-command --locktidak berfungsi, karena light-lockertidak diinstal.

Saya kira pasti ada beberapa perbedaan antara menjalankan perintah yang sama dari desktop dan menjalankannya melalui SSH / konsol virtual, tetapi saya tidak dapat menemukan perbedaan dalam variabel lingkungan.

Jadi, pertanyaan saya adalah: Bagaimana saya bisa mengunci layar menggunakan layar kunci Unity baru dan bukan layar kunci lama dari baris perintah?

Pertanyaan ini mungkin terkait karena meminta perintah baru yang perlu digunakan, jadi inilah pertanyaan lain: Mengapa menjalankan perintah kunci yang sama memberikan hasil yang berbeda?

Catatan yang gnome-screensavertidak digunakan lagi dalam 14,04, menurut laporan bug ini :

Itu bukan bug gnome-screensaver, komponen itu berhenti digunakan dengan amanah.

Léo Lam
sumber
2
Saya juga ingin tahu. Penggunaan dm-tool lockmendekati: itu mengunci layar, tetapi (tidak seperti layar kunci Unity default) juga memungkinkan Anda beralih pengguna.
Aibara
2
dm-tool lockdan dm-tool switch-to-greetersepertinya melakukan hal yang sama: membawa Anda kembali ke layar login (penyapa), yang memang terlihat sangat mirip dengan lockscreen.
Léo Lam

Jawaban:

14

Saya belum gnome-screensavermenginstal, dan satu-satunya perintah yang saya temukan yang berfungsi adalah ini:

dbus-send --type=method_call --dest=org.gnome.ScreenSaver /org/gnome/ScreenSaver org.gnome.ScreenSaver.Lock

Aibara
sumber
5
qdbus org.gnome.ScreenSaver /org/gnome/ScreenSaver org.gnome.ScreenSaver.Lock
Aquarius Power
Ini digunakan untuk bekerja, tetapi tampaknya tidak berfungsi lagi di 15.10: /
Léo Lam
@ LéoLam Apakah Anda menggunakan gambar livecd? Saya masih menggunakan 14,04, tetapi saya sudah menguji perintah saya dan Aquarius Power di 15.10 dan membuatnya bekerja. Namun, saya harus mengaktifkan layar kunci agar berfungsi melalui perintah inigsettings set org.gnome.desktop.lockdown disable-lock-screen false
Aibara
Tidak, ini pada instalasi Ubuntu nyata. gsettings get org.gnome.desktop.lockdown disable-lock-screenkembali false. Sekarang tidak ada output sama sekali saat menjalankan dbus-send. Mungkin gnome-screensaver diperlukan untuk ini berfungsi?
Léo Lam
1
Tolong lihat jawaban saya, mungkin 15.10 telah ditinggalkan menggunakan org.gnome.ScreenSaverantarmuka dbus, jadi mungkin ide yang lebih baik untuk berkomunikasi dengan antarmuka dbus Unity
Sergiy Kolodyazhnyy
3

Jawaban yang diterima memiliki ide yang tepat, kecuali bahwa lockscreen terkait dengan panel kesatuan, sementara org.gnome.ScreenSaverjelas merupakan jenis skema yang berhubungan dengan Gnome, sehingga mungkin atau mungkin tidak bekerja.

Namun ada antarmuka dbus untuk Unity, dan yang kita butuhkan adalah memanggil metode ini com.canonical.Unity.Session.Lockseperti itu

qdbus com.canonical.Unity  /com/canonical/Unity/Session com.canonical.Unity.Session.Lock

Catatan :

Bukti fakta bahwa itu terkait dengan panel kesatuan sederhana, ketika Anda memiliki layar terkunci, proses /usr/lib/unity/unity-panel-serviceakan berubah menjadi /usr/lib/unity/unity-panel-service --lock-modeseperti yang diamati dari tty1.

Sergiy Kolodyazhnyy
sumber
ini berfungsi dalam sesi grafis, tetapi gagal dalam sesi SSH bahkan ketika menetapkan $ DISPLAY secara manual. "Layanan 'com.canonical.Unity' tidak ada."
Léo Lam
Ini tidak ada hubungannya dengan DISPLAYvariabel, tetapi dengan dbus. Saya tidak mengetahui apakah over ssh Unity tidak memiliki sesi dbus atau tidak, jadi saya tidak dapat membantu Anda di bagian itu. Saya akan bertanya-tanya tetapi sejauh ini sebanyak yang bisa saya katakan.
Sergiy Kolodyazhnyy
Coba jalankan dbus-launch --exit-with-session gnome-terminalsebelum itu. serverfault.com/a/411326
Sergiy Kolodyazhnyy
Dapat juga terhubung ke sesi layar / tmux berjalan di dalam X dan menjalankan perintah dari sana. Apakah solusi terakhir saya untuk terhubung ke sesi dbus yang tepat dari vterm.
Iiridayn
2

Baru-baru ini saya menemukan bahwa itu xdg-screensaver lock juga berfungsi dan merupakan solusi yang cukup sederhana!

Paulius Šukys
sumber
Disebutkan dalam OP bahwa itu tidak berfungsi dalam semua kasus. Hanya ketika Anda menjalankannya secara lokal di terminal dari GUI.
Léo Lam
Bekerja untuk saya dari jarak jauh dalam sesi SSH menjadi mesin 18,04 LTS.
Benjamin R
1

Anda selalu dapat mengirim keystrokes: xdotool key super+l.

wieczorek1990
sumber