Apa mekanisme penguncian layar di bawah KDE?

14

Saya menginstal desktop KDE di Ubuntu saya:

root@DESKTOP:/var/log# dpkg -l|fgrep -i kde-plasma-desktop
ii  kde-plasma-desktop                      5:63ubuntu16                               the KDE Plasma Desktop and minimal set of applications
root@DESKTOP:/var/log# lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 11.04
Release:    11.04
Codename:   natty
root@DESKTOP:/var/log# 

Saya hanya ingin tahu bahwa jika saya menekan "CTRL + ALT + L" lalu apa proses / aplikasi yang mengunci layar? di bawah GNOME itu gnome-screensaver. Apa yang ada di bawah KDE?

LanceBaynes
sumber
Saya berkomentar karena saya tidak menggunakan KDE tapi saya melihat modul yang disebut kscreensavermungkin Anda harus ps auxbahwa
sagarchalise

Jawaban:

27

Untuk sistem yang menjalankan KDE 4.x itu

qdbus org.freedesktop.ScreenSaver /ScreenSaver Lock

Untuk Ubuntu / Gnome: qdbus org.gnome.ScreenSaver /ScreenSaver Lock

Qdbus seperti yang ditulis di atas, hanya mengirim pesan pada bus pesan, yang diterima oleh pengunci layar. Namun perintah akan mengunci layar. qdbus hanya bertanya dengan baik, "maukah seseorang mengunci layar?" Keuntungan menggunakan qdbus, adalah didukung pada platform lain selain KDE. Teks di bawah ini hanya berfungsi untuk KDE4.

Sekarang perhatikan dan pelajari: o)

Untuk mengetahuinya dengan sedikit lebih detail, diperlukan sedikit tipu daya bash:

  • daftar semua proses saat tidak terkunci ps -ef;
  • mengunci layar qdbus ..........;
  • tunggu sebentar untuk mengunci layar sleep 1
  • kemudian daftarkan proses saat terkunci ps -ef
  • temukan perbedaan antara output dari kedua perintah diff <( cmd1 ) <( cmd2 )

Baris perintah:

diff <( ps -ef ) <( qdbus org.freedesktop.ScreenSaver /ScreenSaver Lock; sleep 1; ps -ef )

0a1
> 
242d242
< jhendrix 17088 16352  0 21:11 pts/4    00:00:00 /bin/bash
245,246c245,247
< jhendrix 17091 17088  0 21:11 pts/4    00:00:00 ps -ef
< jhendrix 17092 17089  0 21:11 pts/4    00:00:00 qdbus org.freedesktop.ScreenSaver /ScreenSaver Lock
---
> jhendrix 17093  2801 11 21:11 ?        00:00:00 /usr/lib/kde4/libexec/kscreenlocker --forcelock
> jhendrix 17095 17093 11 21:11 ?        00:00:00 kblankscrn.kss -root
> jhendrix 17099 17089  0 21:11 pts/4    00:00:00 ps -ef

Ini mempersempit daftar perintah potensial untuk mengunci layar, bukan? Sekarang jawaban untuk pertanyaan Anda sederhana: Untuk mengunci layar dari penggunaan commandline: /usr/lib/kde4/libexec/kscreenlocker --forcelockblankscrn.kss adalah proses anak dari kscreenlocker, jadi kscreenlocker adalah yang harus dijalankan.

Untuk melihat sintaks perintah: /usr/lib/kde4/libexec/kscreenlocker --help

Apa itu? Ini pada dasarnya menggambar jendela hitam besar yang menutupi seluruh layar dan memaksa untuk berada di atas segalanya. Ini menangkap semua penekanan tombol dan muncul dialog login.

Akhirnya paket mana yang masuk (kde-workspace-bin)?

$ dpkg -S /usr/lib/kde4/libexec/kscreenlocker

kde-workspace-bin: /usr/lib/kde4/libexec/kscreenlocker

jippie
sumber
Itu <()trik yang rapi!
Martin Ueding
qdbus tampaknya rusak di bawah Saucy , tetapi berfungsi jika Anda menginstal paket qdbus-qt5.
Siput mekanik
Suka teknik beda pengolah! Saya menggunakan hal yang sama, tetapi secara manual memilih kunci dari menu ketika sedang tidur (yaitudiff <( ps -ef ) <( sleep 3; ps -ef )
Matthew Wilcoxson
Alih-alih menulis skrip, Anda cukup mengganti TTY dengan ctrl + alt + F # saat layar terkunci dan proses grep ada. Tapi skrip itu keren!
Duka