Ubuntu Ekran Kilidi


2

Ubuntu'da ekranı kilitlediğimde, iletimin otomatik olarak açılmasını istiyorum ve ekranın kilidini açtığımda, iletimin kendisini duraklatması veya ölmesi gerekiyor.

Çok şey aradım ama değerli bir şey bulamıyorum.

Bir çözüm, bir cron işi yaratmanın gnome-screensaver-command -qve iletimi kullanmanın ve başlatmanın bir israf olduğunu düşünüyorum. Daha iyi bir yolu var mı (olay temelli bir şey)?

Yanıtlar:


2

Ekran koruyucusu etkinleştiğinde veya devre dışı bırakıldığında olayları ele almak için dbus'u kullanabilirsiniz, buraya bakın .

Buradatransmission-remote gösterildiği gibi, komut satırından iletimi kontrol etmek için kullanabilirsiniz .

Bu nedenle, aşağıdaki satırları boyunca perl betiği ile sona erecek:

my $cmd = "dbus-monitor --session \"type='signal',interface='org.gnome.ScreenSaver',member='ActiveChanged'\"";

$starttrans="transmission-remote --torrent all --start";
$stoptrans="transmission-remote --torrent all --stop";

open (IN, "$cmd |");

while (<IN>) {
    if (m/^\s+boolean true/) {
        starttrans;
    } elsif (m/^\s+boolean false/) {
        stoptrans;
    }
}

(Bunu Windows'ta perl / iletim olmadan yazıyorum, bu yüzden neredeyse kesinlikle düzgün çalışmayacak.)


doğru yöne işaret ettiğiniz için teşekkürler, ama perl bilmiyorum bu yüzden şu anda kontrol edemiyorum. Ve bu, "member = 'SessionIdleChanged'" için. Ekranı manuel olarak kilitlediğimde istiyorum.
N 1.1

1

Tamam. Dbus-monitor kullanmak istediğim şeyi yapan bir python betiği ile geldim

#!/usr/bin/python
import os, sys

while True:
    line = sys.stdin.readline()
    if "boolean true" in line:
        print os.system("transmission -m &")
    elif "boolean false" in line:
        print os.system("pkill transmission")

Kabuğun üzerinde

dbus-monitor type=signal,\
             interface=org.gnome.ScreenSaver,\
             member=ActiveChanged\
             | ./script.py  &
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.