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():