Я установил рабочий стол 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 это гном-заставка. Что это под KDE?
Для систем с KDE 4.x это будет
qdbus org.freedesktop.ScreenSaver /ScreenSaver Lock
Для Ubuntu / Gnome: qdbus org.gnome.ScreenSaver /ScreenSaver Lock
Qdbus, как написано выше, просто отправляет сообщение на шину сообщений, который получает локатор экрана. Команда, однако, заблокирует экран. Qdbus просто спрашивает: "Кто-нибудь заблокирует экран?" Преимущество использования qdbus заключается в том, что он поддерживается на других платформах, кроме KDE. Текст ниже работает только для KDE4.
Теперь смотрите и учитесь: o)
Чтобы разобраться в этом чуть подробнее, потребуется немного хитрости в bash:
[ 1131]ps -ef
; qdbus ..........
; sleep 1
ps -ef
diff <( cmd1 ) <( cmd2 )
Командная строка:
diff <( ps -ef ) <( qdbus org.freedesktop.ScreenSaver /ScreenSaver Lock; sleep 1; ps -ef )
[ 1124]
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 --forcelock
blankscrn.kss - это дочерний процесс kscreenlocker, поэтому нужно запустить kscreenlocker.
Чтобы просмотреть синтаксис команды: /usr/lib/kde4/libexec/kscreenlocker --help
Что это делает? Он в основном рисует большое черное окно, которое покрывает весь экран, и заставляет его быть поверх всего. Он перехватывает все нажатия клавиш и открывает диалоговое окно входа в систему.
Наконец, в какой пакет он входит (kde-workspace-bin)?
kde-workspace-bin: /usr/lib/kde4/libexec/kscreenlocker
$ dpkg -S /usr/lib/kde4/libexec/kscreenlocker