@@ -27,11 +27,15 @@ class SpaceSwitcher {
27
27
if let scriptObject = NSAppleScript ( source: appleScript) {
28
28
scriptObject. executeAndReturnError ( & error)
29
29
if error != nil {
30
+ let errorNumber : Int = error ? [ NSAppleScript . errorNumber] as! Int
30
31
let errorBriefMessage : String = error ? [ NSAppleScript . errorBriefMessage] as! String
31
32
let settingsName = self . systemSettingsName ( )
33
+ // -1002: Error: Spaceman is not allowed to send keystrokes. (needs Accessibility permission)
34
+ // -1743: Error: Not authorized to send Apple events to System Events. (needs Automation permission)
35
+ let permissionType = errorNumber == 1002 ? " Accessibility " : " Automation "
32
36
self . alert (
33
- msg: " Error: \( errorBriefMessage) \n \n Please grant Accessibility permissions to Spaceman in \( settingsName) → Privacy and Security. " ,
34
- withSettingsButton : true )
37
+ msg: " Error: \( errorBriefMessage) \n \n Please grant \( permissionType ) permissions to Spaceman in \( settingsName) → Privacy and Security. " ,
38
+ permissionTypeName : permissionType )
35
39
}
36
40
}
37
41
}
@@ -56,21 +60,21 @@ class SpaceSwitcher {
56
60
}
57
61
}
58
62
59
- private func alert( msg: String , withSettingsButton : Bool ) {
63
+ private func alert( msg: String , permissionTypeName : String ) {
60
64
DispatchQueue . main. async {
61
65
let alert = NSAlert . init ( )
62
66
alert. messageText = " Spaceman "
63
67
alert. informativeText = " \( msg) "
64
68
alert. addButton ( withTitle: " Dismiss " )
65
- if withSettingsButton {
69
+ if permissionTypeName != " " {
66
70
let settingsName = self . systemSettingsName ( )
67
71
alert. addButton ( withTitle: " \( settingsName) ... " )
68
72
}
69
73
let response = alert. runModal ( )
70
74
if ( response == . alertSecondButtonReturn) {
71
75
let task = Process ( )
72
76
task. launchPath = " /usr/bin/open "
73
- task. arguments = [ " x-apple.systempreferences:com.apple.preference.security?Privacy_Accessibility " ]
77
+ task. arguments = [ " x-apple.systempreferences:com.apple.preference.security?Privacy_ \( permissionTypeName ) " ]
74
78
try ? task. run ( )
75
79
}
76
80
}
0 commit comments