Периодически создавайте скриншоты, используя scrot, за исключением времени, когда экран заблокирован

Я делаю один снимок экрана в минуту, используя следующий скрипт bash.

while true;
do
    scrot -d 60 -q 1 '%Y-%m-%d-%H:%M:%S.png' -e 'mkdir -p ~/screen-snapshots/%Y-%m-%d & mv $f ~/screen-snapshots/%Y-%m-%d/';
done

Но снимки экрана также делаются, если экран заблокирован. Как делать снимки экрана, только если экран не заблокирован?

Система - Ubuntu 14.10 с Unity

[Решение]

Спасибо за @solsTiCe. Весь сценарий

#!/bin/bash

function isScreenLocked() {
    gdbus call -e -d com.canonical.Unity -o /com/canonical/Unity/Session -m com.canonical.Unity.Session.IsLocked | grep -q false
}

while true;
do
    sleep 60;
    if isScreenLocked
    then
        scrot -q 1 '%Y-%m-%d-%H:%M:%S.png' -e 'mkdir -p ~/screen-snapshots/%Y-%m-%d; mv $f ~/screen-snapshots/%Y-%m-%d/';
    fi
done
1
задан 10 May 2015 в 20:43

1 ответ

можно использовать gdbus для проверки на единица заблокированное свойство.

gdbus call -e -d com.canonical.Unity -o /com/canonical/Unity/Session -m com.canonical.Unity.Session.IsLocked

Так в удар можно сделать функцию как это

function IsScreenLocked() {
    gdbus call -e -d com.canonical.Unity -o /com/canonical/Unity/Session -m com.canonical.Unity.Session.IsLocked|grep -q true
}
0
ответ дан 11 May 2015 в 06:43
  • 1
    Я думаю, что он не работает над сервером, но хочет настроить клиент. Он в основном хочет клиент, где только http (s) соединения разрешены. – Potaito 10 August 2016 в 19:37

Другие вопросы по тегам:

Похожие вопросы: