|
1 | 1 | from ApplicationServices import AXIsProcessTrusted |
2 | | -from AppKit import NSAlert |
| 2 | +from AppKit import NSAlert, NSAlertFirstButtonReturn, NSButton, NSWorkspace, NSURL |
3 | 3 | import subprocess |
4 | 4 | from subprocess import PIPE |
5 | 5 | import os |
| 6 | +import time |
6 | 7 |
|
7 | 8 |
|
8 | 9 | def getInfo() -> str: |
9 | | - accessibility_permissions = AXIsProcessTrusted() |
10 | | - #accessibility_permissions = False |
| 10 | + #accessibility_permissions = AXIsProcessTrusted() |
| 11 | + accessibility_permissions = False |
11 | 12 | if not accessibility_permissions: |
12 | 13 | title = "Missing accessibility permissions" |
13 | | - message = "To let ActivityWatch capture window titles grant it accessibility permissions" |
14 | | - ok = False |
15 | | - cancel = False |
16 | | - alert = NSAlert.alertWithMessageText_defaultButton_alternateButton_otherButton_informativeTextWithFormat_(title, ok, 'Cancel' if cancel else None, None, message) |
17 | | - alert.runModal() |
| 14 | + info = "To let ActivityWatch capture window titles grant it accessibility permissions" |
| 15 | + |
| 16 | + alert = NSAlert.new() |
| 17 | + alert.setMessageText_(title) |
| 18 | + alert.setInformativeText_(info) |
| 19 | + |
| 20 | + ok_button = alert.addButtonWithTitle_("Ok") |
| 21 | + |
| 22 | + accessibility_button = alert.addButtonWithTitle_("Turn on accessibility") |
| 23 | + accessibility_button.setTitle_("Open accessibility settings") |
| 24 | + accessibility_button.setAction_("") |
| 25 | + |
| 26 | + alert.addButtonWithTitle_("Cancel") |
| 27 | + choice = alert.runModal() |
| 28 | + print(choice) |
| 29 | + if choice == NSAlertFirstButtonReturn: |
| 30 | + NSWorkspace.sharedWorkspace().openURL_(NSURL.URLWithString_("x-apple.systempreferences:com.apple.preference.security?Privacy_Accessibility")) |
| 31 | + #while True: |
| 32 | + # time.sleep(1) |
18 | 33 | cmd = ["osascript", os.path.join(os.path.dirname(os.path.realpath(__file__)), "printAppTitle.scpt")] |
19 | 34 | p = subprocess.run(cmd, stdout=PIPE) |
20 | 35 | return str(p.stdout, "utf8").strip() |
|
0 commit comments