Quel est le mécanisme de verrouillage d'écran sous KDE?


14

J'ai installé le bureau KDE sur mon 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# 

Je voulais juste savoir que si j'appuie sur "CTRL + ALT + L", alors quel est le processus / l'application qui verrouille l'écran? sous GNOME c'est gnome-screensaver. Qu'est-ce que c'est sous KDE?


Je commentais parce que je ne l' utilise KDE mais je vois un module appelé kscreensaverpeut être vous devriez ps auxque
sagarchalise

Réponses:


27

Pour les systèmes exécutant KDE 4.x qui seront

qdbus org.freedesktop.ScreenSaver /ScreenSaver Lock

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

Qdbus comme écrit ci-dessus, envoie simplement un message sur le bus de messages, que le casier d'écran reçoit. La commande verrouillera cependant l'écran. qdbus demande simplement "est-ce que quelqu'un verrouillera l'écran s'il vous plaît?" L'avantage d'utiliser qdbus est qu'il est pris en charge sur d'autres plates-formes que KDE. Le texte ci-dessous fonctionne uniquement pour KDE4.

Maintenant, regardez et apprenez: o)

Pour comprendre cela un peu plus en détail, un peu de ruse bash est nécessaire:

  • répertorier tous les processus déverrouillés ps -ef;
  • verrouiller l'écran qdbus ..........;
  • attendez un moment pour verrouiller l'écran sleep 1
  • puis répertoriez les processus verrouillés ps -ef
  • trouver les différences entre la sortie des deux commandes diff <( cmd1 ) <( cmd2 )

La ligne de commande:

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

Cela réduit la liste des commandes potentielles pour verrouiller l'écran, n'est-ce pas? Maintenant, la réponse à votre question est simple: Pour verrouiller l'écran à partir de la ligne de commande, utilisez: /usr/lib/kde4/libexec/kscreenlocker --forcelockle blankscrn.kss est un processus enfant de kscreenlocker, donc kscreenlocker est celui à exécuter.

Pour afficher la syntaxe de commande: /usr/lib/kde4/libexec/kscreenlocker --help

Ce qu'il fait? Il dessine essentiellement une grande fenêtre noire qui couvre tout l'écran et le force à être au-dessus de tout. Il intercepte toutes les frappes et affiche une boîte de dialogue de connexion.

Enfin dans quel paquet vient-il (kde-workspace-bin)?

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

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


C'est <()une astuce intéressante!
Martin Ueding

qdbus semble être cassé sous Saucy , mais cela fonctionne si vous installez le package qdbus-qt5.
Escargot mécanique

J'adore la technique des processeurs de diff! J'ai utilisé une chose similaire, mais j'ai sélectionné manuellement le verrou dans le menu pendant qu'il dormait (c'estdiff <( ps -ef ) <( sleep 3; ps -ef )
Matthew Wilcoxson

Au lieu d'écrire le script, vous pouvez simplement basculer TTY avec ctrl + alt + F # pendant que l'écran est verrouillé et que les processus grep s'y trouvent. Mais le script est cool!
Grief
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.