44 lines
1.4 KiB
Swift
44 lines
1.4 KiB
Swift
import SwiftUI
|
|
|
|
/// Main entry point for the CommandNotch application.
|
|
/// Provides a MenuBarExtra for quick access to settings and app controls.
|
|
/// The notch windows and terminal sessions are managed by AppDelegate + ScreenManager.
|
|
@main
|
|
struct CommandNotchApp: App {
|
|
|
|
@NSApplicationDelegateAdaptor(AppDelegate.self) var appDelegate
|
|
@StateObject private var settingsController = AppSettingsController.shared
|
|
|
|
var body: some Scene {
|
|
MenuBarExtra(
|
|
"CommandNotch",
|
|
systemImage: "terminal",
|
|
isInserted: Binding(
|
|
get: { settingsController.settings.display.showMenuBarIcon },
|
|
set: { newValue in
|
|
settingsController.update { $0.display.showMenuBarIcon = newValue }
|
|
}
|
|
)
|
|
) {
|
|
Button("Toggle Notch") {
|
|
ScreenManager.shared.toggleNotchOnActiveScreen()
|
|
}
|
|
.keyboardShortcut(.return, modifiers: .command)
|
|
|
|
Divider()
|
|
|
|
Button("Settings...") {
|
|
SettingsWindowController.shared.showSettings()
|
|
}
|
|
.keyboardShortcut(",", modifiers: .command)
|
|
|
|
Divider()
|
|
|
|
Button("Quit CommandNotch") {
|
|
NSApplication.shared.terminate(nil)
|
|
}
|
|
.keyboardShortcut("Q", modifiers: .command)
|
|
}
|
|
}
|
|
}
|