KDE kapsamındaki ekran kilitleme mekanizması nedir?


14

Ubuntu'uma KDE masaüstünü yükledim:

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# 

Sadece "CTRL + ALT + L" tuşlarına basarsam ekranı kilitleyen işlem / uygulamanın ne olduğunu bilmek istedim. GNOME altında bu gnome-ekran koruyucu. KDE altında ne var?


Ben yorumlama ediyorum ben KDE kullanmak daha dont ama adında bir modül gördükleri için kscreensaversize olabilir gerektiği ps auxo
sagarchalise

Yanıtlar:


27

KDE 4.x çalıştıran sistemler için

qdbus org.freedesktop.ScreenSaver /ScreenSaver Lock

Ubuntu / Gnome için: qdbus org.gnome.ScreenSaver /ScreenSaver Lock

Qdbus, yukarıda yazıldığı gibi, ekran veri dolabının aldığı mesaj veri yoluna bir mesaj gönderir. Ancak komut ekranı kilitler. qdbus sadece "birisi ekranı kilitler mi lütfen?" Qdbus kullanmanın avantajı, KDE dışındaki diğer platformlarda desteklenmesidir. Aşağıdaki metin yalnızca KDE4 için geçerlidir.

Şimdi izleyin ve öğrenin: o)

Bunu biraz daha ayrıntılı olarak anlamak için biraz bash hile gerekir:

  • kilidi açıkken tüm işlemleri listeler ps -ef;
  • ekranı kilitleyin qdbus ..........;
  • ekranı kilitlemek için bir dakika bekle sleep 1
  • ardından kilitliyken işlemleri listeler ps -ef
  • her iki komutun çıktısı arasındaki farkları bulur diff <( cmd1 ) <( cmd2 )

Komut satırı:

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

Bu, ekranı kilitlemek için olası komutların listesini daraltır, değil mi? Şimdi sorunuzun cevabı basit: Ekranı komut /usr/lib/kde4/libexec/kscreenlocker --forcelocksatırından kilitlemek için: blankscrn.kss, kscreenlocker'ın alt işlemidir, bu nedenle kscreenlocker çalıştırılacak olanıdır.

Komut sözdizimini görüntülemek için: /usr/lib/kde4/libexec/kscreenlocker --help

Bu ne yapar? Temelde tüm ekranı kaplayan büyük bir siyah pencere çizer ve her şeyin üstünde olmaya zorlar. Tüm tuş vuruşlarını yakalar ve bir giriş iletişim kutusu açar.

Sonunda hangi pakete geliyor (kde-workspace-bin)?

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

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


Bu <()temiz bir numara!
Martin Ueding

qdbus Saucy altında kırık gibi görünüyor , ancak paketi yüklerseniz çalışır qdbus-qt5.
Mekanik salyangoz

Fark işlemciler tekniğini seviyorum! Benzer bir şey kullandım, ancak uyurken menüden manuel olarak kilit diff <( ps -ef ) <( sleep 3; ps -ef )
seçtim

Komut dosyasını yazmak yerine, ekran kilitliyken ve grep işlemleri sırasında TTY'yi ctrl + alt + F # ile değiştirebilirsiniz. Ama senaryo harika!
Keder
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.