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 --forcelock
blankscrn.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
kscreensaver
może być powinieneśps aux
to