39 lines
1.3 KiB
Swift
39 lines
1.3 KiB
Swift
import SwiftUI
|
|
|
|
@main
|
|
struct PuterApp: App {
|
|
@State private var monitor = SystemMonitor()
|
|
@AppStorage("sidebarCompact") private var sidebarCompact = false
|
|
|
|
var body: some Scene {
|
|
WindowGroup("Puter") {
|
|
ContentView()
|
|
.environment(monitor)
|
|
.frame(minWidth: 820, minHeight: 560)
|
|
.task { monitor.start() }
|
|
}
|
|
.defaultSize(width: 1180, height: 760)
|
|
.windowStyle(.hiddenTitleBar)
|
|
.commands {
|
|
CommandGroup(replacing: .newItem) {
|
|
Button("Run New Task…") {
|
|
NotificationCenter.default.post(name: .runNewTask, object: nil)
|
|
}
|
|
.keyboardShortcut("n", modifiers: .command)
|
|
}
|
|
SidebarCommands()
|
|
CommandMenu("Options") {
|
|
Button("Refresh now") { monitor.refresh() }
|
|
.keyboardShortcut("r", modifiers: .command)
|
|
Divider()
|
|
Button(monitor.isPaused ? "Resume updates" : "Pause updates") {
|
|
monitor.isPaused.toggle()
|
|
}
|
|
.keyboardShortcut("p", modifiers: .command)
|
|
Divider()
|
|
Toggle("Compact Sidebar", isOn: $sidebarCompact)
|
|
}
|
|
}
|
|
}
|
|
}
|