From 6a74e8e739c3d2db2db737b1ecb0117eb88a4129 Mon Sep 17 00:00:00 2001
From: Ariver <shanghai3168@gmail.com>
Date: Mon, 18 May 2026 16:07:07 +0800
Subject: [PATCH] feat: show background activity status
---
VoiceSnapGo/internal/permissions/permissions_darwin.go | 23 ++++++++++++++++++++++-
1 files changed, 22 insertions(+), 1 deletions(-)
diff --git a/VoiceSnapGo/internal/permissions/permissions_darwin.go b/VoiceSnapGo/internal/permissions/permissions_darwin.go
index 6879a75..8a66fc2 100644
--- a/VoiceSnapGo/internal/permissions/permissions_darwin.go
+++ b/VoiceSnapGo/internal/permissions/permissions_darwin.go
@@ -42,7 +42,10 @@
*/
import "C"
-import "os/exec"
+import (
+ "os/exec"
+ "voicesnap/internal/startup"
+)
// Statuses returns the current macOS privacy permission state.
func Statuses() []Status {
@@ -65,6 +68,12 @@
State: grantedState(C.inputMonitoringGranted() != 0),
Required: true,
},
+ {
+ ID: IDBackground,
+ Granted: startup.IsEnabled(),
+ State: enabledState(startup.IsEnabled()),
+ Required: false,
+ },
}
}
@@ -80,6 +89,9 @@
openSettings(id)
case IDInputMonitoring:
C.requestInputMonitoring()
+ openSettings(id)
+ case IDBackground:
+ _ = startup.SetEnabled(true)
openSettings(id)
}
}
@@ -110,6 +122,13 @@
return "denied"
}
+func enabledState(enabled bool) string {
+ if enabled {
+ return "enabled"
+ }
+ return "disabled"
+}
+
func openSettings(id string) {
url := "x-apple.systempreferences:com.apple.preference.security"
switch id {
@@ -119,6 +138,8 @@
url = "x-apple.systempreferences:com.apple.preference.security?Privacy_Accessibility"
case IDInputMonitoring:
url = "x-apple.systempreferences:com.apple.preference.security?Privacy_ListenEvent"
+ case IDBackground:
+ url = "x-apple.systempreferences:com.apple.LoginItems-Settings.extension"
}
_ = exec.Command("open", url).Start()
}
--
Gitblit v1.9.3