KDEの画面ロックメカニズムとは何ですか?


14

UbuntuにKDEデスクトップをインストールしました。

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-screensaverです。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)

これをもう少し詳しく理解するには、ちょっとしたbashトリックが必要です。

  • ロック解除中にすべてのプロセスをリストします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 --forcelockは、blankscrn.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


それ<()はきちんとしたトリックです!
マーティンUeding

qdbus Saucyでは壊れているようですが、パッケージをインストールすれば動作しますqdbus-qt5
機械式カタツムリ

差分プロセッサのテクニックが大好きです!それはすなわち(寝ている間、私は同じようなことを使用しますが、メニューから手動で選択されたロックdiff <( ps -ef ) <( sleep 3; ps -ef )
マシューWilcoxson

スクリプトを記述する代わりに、ctrl + alt + F#でTTYを切り替えることができます。画面がロックされ、そこでgrepが処理されます。しかし、スクリプトはクールです!
悲しみ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.