оба из них работают только после закрытия заблокированного экрана; но иногда они также терпят неудачу, когда по какой-либо причине экран не имеет пробелов ...
gnome-screensaver-command --query
gnome-screensaver-command --time
Я также попытался с qdbus:
qdbus org.gnome.ScreenSaver /org/gnome/ScreenSaver org.gnome.ScreenSaver.GetActiveTime
, но он тоже не прошел.
Я только что нашел, что кто на самом деле блокирует экран Unity!
qdbus com.canonical.Unity /com/canonical/Unity/Session com.canonical.Unity.Session.Lock
Похожие вопросы: https://unix.stackexchange.com/questions/28181/run-script- on-screen-lock-unlock https://unix.stackexchange.com/questions/80143/how-to-create-a-daemon-which-would-be-listening-to-dbus-and-fire-script-on -messa
экран действительно заблокирован Unity, и нам нужно использовать gdbus
gdbus monitor -e -d com.canonical.Unity -o /com/canonical/Unity/Session
, это покажет, когда он заблокирован, как:
/com/canonical/Unity/Session: com.canonical.Unity.Session.LockRequested ()
/com/canonical/Unity/Session: com.canonical.Unity.Session.Locked ()
/com/canonical/Unity/Session: com.canonical.Unity.Session.UnlockRequested ()
/com/canonical/Unity/Session: com.canonical.Unity.Session.Unlocked ()
У меня был аналогичный вопрос здесь
, и помощь, которую я получил, была похожа на то, о чем говорила ранее Власть Водолея, за исключением того, что она была включена в демона сценария bash, который может работать в фоновом режиме. I нашел это очень полезным. поэтому, взгляните на мой вопрос и ответьте, и посмотрите, поможет ли это вам.