Was ist der Bildschirmsperrmechanismus unter KDE?

14

Ich habe KDE Desktop auf meinem Ubuntu installiert:

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# 

Ich wollte nur wissen, dass, wenn ich "STRG + ALT + L" drücke, welcher Prozess / welche Anwendung den Bildschirm sperrt. unter GNOME ist es Gnome-Bildschirmschoner. Was ist es unter KDE?

LanceBaynes
quelle
Ich bin zu kommentieren , weil ich nicht KDE verwenden , aber ich sehe ein Modul namens kscreensaversollte sein können Sie , ps auxdass
sagarchalise

Antworten:

27

Für Systeme, auf denen KDE 4.x ausgeführt wird, ist dies der Fall

qdbus org.freedesktop.ScreenSaver /ScreenSaver Lock

Für Ubuntu / Gnome: qdbus org.gnome.ScreenSaver /ScreenSaver Lock

Qdbus sendet wie oben beschrieben lediglich eine Nachricht auf dem Nachrichtenbus, die der Screen-Locker empfängt. Der Befehl sperrt jedoch den Bildschirm. qdbus fragt nur freundlich "Wird jemand den Bildschirm bitte sperren?" Der Vorteil von qdbus ist, dass es auf anderen Plattformen als KDE unterstützt wird. Der folgende Text funktioniert nur für KDE4.

Jetzt gucken und lernen: o)

Um dies genauer herauszufinden, ist ein wenig Bash-Trick erforderlich:

  • liste alle Prozesse auf, während sie nicht gesperrt sind ps -ef;
  • sperren Sie den Bildschirm qdbus ..........;
  • Warten Sie einen Moment, bis der Bildschirm gesperrt ist sleep 1
  • Listen Sie dann die gesperrten Prozesse auf ps -ef
  • Finden Sie die Unterschiede zwischen der Ausgabe beider Befehle diff <( cmd1 ) <( cmd2 )

Die Befehlszeile:

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

Dadurch wird die Liste der möglichen Befehle zum Sperren des Bildschirms eingegrenzt, nicht wahr? Jetzt ist die Antwort auf Ihre Frage einfach: Um den Bildschirm über die /usr/lib/kde4/libexec/kscreenlocker --forcelockBefehlszeile zu sperren, verwenden Sie: Die Datei blankscrn.kss ist ein untergeordneter Prozess von kscreenlocker, daher muss kscreenlocker ausgeführt werden.

So zeigen Sie die Befehlssyntax an: /usr/lib/kde4/libexec/kscreenlocker --help

Was es macht? Es zeichnet im Grunde genommen ein großes schwarzes Fenster, das den gesamten Bildschirm abdeckt, und zwingt es, über allem zu stehen. Es fängt alle Tastenanschläge ab und öffnet einen Anmeldedialog.

Schließlich welches Paket kommt es in (kde-workspace-bin)?

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

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

jippie
quelle
Das <()ist ein toller Trick!
Martin Ueding
qdbus scheint unter Saucy kaputt zu sein , aber es funktioniert, wenn Sie das Paket installieren qdbus-qt5.
Mechanische Schnecke
Lieben Sie die Diff-Prozessortechnik! Ich habe eine ähnliche Sache, aber manuell Sperre aus dem Menü ausgewählt , während er schlief (dhdiff <( ps -ef ) <( sleep 3; ps -ef )
Matthew Wilcoxson
Anstatt das Skript zu schreiben, können Sie TTY einfach mit Strg + Alt + F # umschalten, während der Bildschirm gesperrt ist und grep dort verarbeitet. Aber Drehbuch ist cool!
Trauer