Я делаю один снимок экрана в минуту, используя следующий скрипт 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
можно использовать 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
}