Jaki jest mechanizm blokowania ekranu w KDE?

14

Zainstalowałem pulpit KDE na moim Ubuntu:

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# 

Chciałem tylko wiedzieć, że jeśli naciskam „CTRL + ALT + L”, to jaki proces / aplikacja blokuje ekran? pod GNOME jest to wygaszacz ekranu gnome. Co to jest w KDE?

LanceBaynes
źródło
Komentuję, ponieważ nie używam KDE, ale widzę moduł o nazwie kscreensavermoże być powinieneś ps auxto
zrobić

Odpowiedzi:

27

Dla systemów z KDE 4.x tak będzie

qdbus org.freedesktop.ScreenSaver /ScreenSaver Lock

W przypadku Ubuntu / Gnome: qdbus org.gnome.ScreenSaver /ScreenSaver Lock

Qdbus jak napisano powyżej, po prostu wysyła komunikat na szynie komunikatów, który odbiera blokada ekranu. Polecenie zablokuje jednak ekran. qdbus ładnie pyta: „Czy ktoś może zablokować ekran?” Zaletą używania qdbus jest to, że jest obsługiwany na platformach innych niż KDE. Poniższy tekst działa tylko dla KDE4.

Teraz patrz i ucz się: o)

Aby dowiedzieć się tego bardziej szczegółowo, potrzebna jest odrobina podstępu:

  • wyświetla listę wszystkich procesów w stanie odblokowanym ps -ef;
  • zablokować ekran qdbus ..........;
  • poczekaj chwilę, aby zablokować ekran sleep 1
  • następnie wyświetl listę procesów, gdy są zablokowane ps -ef
  • znajdź różnice między wynikami obu poleceń diff <( cmd1 ) <( cmd2 )

Wiersz poleceń:

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

To zawęża listę potencjalnych poleceń do zablokowania ekranu, prawda? Teraz odpowiedź na twoje pytanie jest prosta: Aby zablokować ekran z wiersza poleceń, użyj: /usr/lib/kde4/libexec/kscreenlocker --forcelockblankscrn.kss jest procesem potomnym programu kscreenlocker, więc program kscreenlocker jest tym, który należy uruchomić.

Aby wyświetlić składnię polecenia: /usr/lib/kde4/libexec/kscreenlocker --help

Co to robi? Zasadniczo rysuje duże czarne okno, które pokrywa cały ekran i zmusza go do umieszczenia na nim wszystkiego. Łapie wszystkie naciśnięcia klawiszy i wyświetla okno logowania.

Wreszcie w jakim pakiecie się znajduje (kde-workspace-bin)?

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

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

jippie
źródło
To <()fajna sztuczka!
Martin Ueding,
qdbus wygląda na zepsuty pod Saucy , ale działa, jeśli zainstalujesz pakiet qdbus-qt5.
Ślimak mechaniczny
Uwielbiam technikę procesorów różnicowych! Użyłem podobnej rzeczy, ale ręcznie wybrałem blokadę z menu podczas snu (tj.diff <( ps -ef ) <( sleep 3; ps -ef )
Matthew Wilcoxson
Zamiast pisać skrypt, możesz po prostu przełączyć TTY za pomocą ctrl + alt + F #, gdy ekran jest zablokowany i procesy grep tam. Ale scenariusz jest fajny!
Smutek