Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit b3b0dfb

Browse files
committed
Auto-register as login item on first launch
1 parent d3c4de0 commit b3b0dfb

1 file changed

Lines changed: 13 additions & 0 deletions

File tree

mac/Sources/CodeBurnMenubar/CodeBurnApp.swift

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
import SwiftUI
22
import AppKit
33
import Observation
4+
import ServiceManagement
45

56
private let refreshIntervalSeconds: UInt64 = 15
67
private let nanosPerSecond: UInt64 = 1_000_000_000
@@ -50,6 +51,7 @@ final class AppDelegate: NSObject, NSApplicationDelegate, NSPopoverDelegate {
5051
setupWakeObservers()
5152
setupDistributedNotificationListener()
5253
installLaunchAgentIfNeeded()
54+
registerLoginItemIfNeeded()
5355
Task { await updateChecker.checkIfNeeded() }
5456
}
5557

@@ -133,6 +135,17 @@ final class AppDelegate: NSObject, NSApplicationDelegate, NSPopoverDelegate {
133135
}
134136
}
135137

138+
private func registerLoginItemIfNeeded() {
139+
let service = SMAppService.mainApp
140+
if service.status == .notRegistered {
141+
do {
142+
try service.register()
143+
} catch {
144+
NSLog("CodeBurn: Login item registration failed: \(error)")
145+
}
146+
}
147+
}
148+
136149
private func forceRefresh() {
137150
Task {
138151
await store.refreshQuietly(period: .today)

0 commit comments

Comments
 (0)