Що таке механізм блокування екрана під KDE?


14

Я встановив робочий стіл KDE на своєму 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# 

Мені просто хотілося знати, що якщо натиснути "CTRL + ALT + L", то який процес / додаток блокує екран? під GNOME це gnome-заставка. Що це під KDE?


Я коментую , тому що я не використовую KDE , але я бачу , модуль називається , kscreensaverможе бути , ви повинні ps auxщо
sagarchalise

Відповіді:


27

Для систем, що працюють з KDE 4.x, що буде

qdbus org.freedesktop.ScreenSaver /ScreenSaver Lock

Для Ubuntu / Gnome: qdbus org.gnome.ScreenSaver /ScreenSaver Lock

Як написано вище, Qdbus просто надсилає повідомлення на шині повідомлень, яке отримує скринька. Однак команда заблокує екран. qdbus просто гарно запитує: "хтось заблокує екран, будь ласка?" Перевага використання qdbus полягає в тому, що він підтримується на інших платформах, ніж KDE. Наведений нижче текст працює лише для KDE4.

Тепер дивіться і вчіться: o)

Щоб розібратися в цьому трохи детальніше, потрібно трохи хитрощів:

  • перелічити всі процеси під час розблокування ps -ef;
  • заблокувати екран qdbus ..........;
  • зачекайте хвилину, щоб заблокувати екран sleep 1
  • потім перелічіть процеси, коли вони заблоковані ps -ef
  • знайти відмінності між результатами обох команд diff <( cmd1 ) <( cmd2 )

Командний рядок:

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

Це звужує список потенційних команд для блокування екрана, чи не так? Тепер відповідь на ваше запитання простий: для блокування екрана з командного рядка використовуйте: /usr/lib/kde4/libexec/kscreenlocker --forcelockblankscrn.kss є дочірнім процесом kscreenlocker, тому kscreenlocker - це той, який запускається.

Щоб переглянути синтаксис команд: /usr/lib/kde4/libexec/kscreenlocker --help

Що це робить? В основному він малює велике чорне вікно, яке охоплює весь екран, і це змушує його бути вище всього. Він фіксує всі натискання клавіш і спливає діалогове вікно входу.

Нарешті, в який пакет він входить (kde-workspace-bin)?

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

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


Це <()акуратний трюк!
Мартін Удінг

qdbus Здається, вона зламана під Saucy , але вона працює, якщо встановити пакет qdbus-qt5.
Механічний равлик

Любіть техніку різних процесорів! Я використовував подібну річ, але вручну вибрав блокування з меню, поки він спав (тобтоdiff <( ps -ef ) <( sleep 3; ps -ef )
Меттью Вілкокссон

Замість того, щоб писати сценарій, ви можете просто переключити TTY за допомогою ctrl + alt + F #, поки екран заблокований і там виконуються функції grep. Але сценарій крутий!
горе
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.