From d95250b7eab03cb22887da1a33c987da21aec49d Mon Sep 17 00:00:00 2001 From: "Ian W. Remmel" <1182361+ianwremmel@users.noreply.github.com> Date: Wed, 21 Mar 2018 22:55:57 -0700 Subject: [PATCH] use Quartz instead of osacript to detect locked screen on macos Fixes #168 --- ntfy/screensaver.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/ntfy/screensaver.py b/ntfy/screensaver.py index 9674010..6f7c3c0 100644 --- a/ntfy/screensaver.py +++ b/ntfy/screensaver.py @@ -97,12 +97,12 @@ def macos_detect(): def macos_is_locked(): - # Strictly-speaking, this detects whether or not the screensaver is running. The screensaver - # may or may not be locked. - cmd = '''tell application "System Events" - get running of screen saver preferences - end tell''' - return check_output([ 'osascript', '-e', cmd ]) == b'true\n' + # https: // stackoverflow.com/questions/11505255/osx-check-if-the-screen-is-locked + import Quartz + d = Quartz.CGSessionCopyCurrentDictionary() + screenIsLocked = d.get("CGSSessionScreenIsLocked", 0) == 1 + + return screenIsLocked def is_locked():