Add the macOS client spike and record its SwiftUI gap results

This commit is contained in:
Ian Gulliver
2026-10-16 22:23:31 -07:00
parent 7e0e6d9585
commit c2d0ff77d7
16 changed files with 1281 additions and 20 deletions
+40
View File
@@ -0,0 +1,40 @@
import AppKit
import SwiftTerm
import SwiftUI
typealias ViewState = State
@main
struct ByreApp: App {
@ViewState private var server = Server()
var body: some Scene {
Window("byre", id: "main") {
SpikeView()
.environment(server)
.font(Fonts.font(13))
.onAppear {
installCtrlMonitor(server)
}
}
.commands {
PasteboardCommands()
}
}
}
@MainActor
private func installCtrlMonitor(_ server: Server) {
NSEvent.addLocalMonitorForEvents(matching: .keyDown) { event in
let flags = event.modifierFlags.intersection(.deviceIndependentFlagsMask)
guard flags.contains(.control), !flags.contains(.command), let key = event.charactersIgnoringModifiers, ["k", "p", "l", "s", "/"].contains(key) else {
return event
}
if event.window?.firstResponder is TerminalView {
server.log("ctrl-\(key) passed to the terminal")
return event
}
server.log("ctrl-\(key) taken as a Go shortcut")
return nil
}
}