From f2948fd6a6059887cb0763d015e94d646736525f Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Sun, 12 Feb 2023 21:36:27 -0800 Subject: [PATCH 01/54] macos: starting boilerplate --- macos/.gitignore | 9 +++++++++ macos/Package.swift | 19 +++++++++++++++++++ macos/Sources/Ghostty/main.swift | 23 +++++++++++++++++++++++ 3 files changed, 51 insertions(+) create mode 100644 macos/.gitignore create mode 100644 macos/Package.swift create mode 100644 macos/Sources/Ghostty/main.swift diff --git a/macos/.gitignore b/macos/.gitignore new file mode 100644 index 000000000..3b2981208 --- /dev/null +++ b/macos/.gitignore @@ -0,0 +1,9 @@ +.DS_Store +/.build +/Packages +/*.xcodeproj +xcuserdata/ +DerivedData/ +.swiftpm/config/registries.json +.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata +.netrc diff --git a/macos/Package.swift b/macos/Package.swift new file mode 100644 index 000000000..d85ec4af0 --- /dev/null +++ b/macos/Package.swift @@ -0,0 +1,19 @@ +// swift-tools-version: 5.7 +// The swift-tools-version declares the minimum version of Swift required to +// build this package. + +import PackageDescription + +let package = Package( + name: "Ghostty", + platforms: [ + // SwiftUI + .macOS(.v11), + ], + dependencies: [], + targets: [ + .executableTarget( + name: "Ghostty", + dependencies: []), + ] +) diff --git a/macos/Sources/Ghostty/main.swift b/macos/Sources/Ghostty/main.swift new file mode 100644 index 000000000..0354fb9a8 --- /dev/null +++ b/macos/Sources/Ghostty/main.swift @@ -0,0 +1,23 @@ +import SwiftUI + +@main +struct Ghostty: App { + var body: some Scene { + WindowGroup { + ContentView() + } + } +} + +struct ContentView: View { + @StateObject var viewModel: ViewModel = ViewModel() + + var body: some View { + TextField("", text: $viewModel.inputText) + .padding() + } +} + +public class ViewModel: ObservableObject { + @Published var inputText: String = "" +} From 1f7018103261a54e63302e47c63f47adf88e6cff Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Sun, 12 Feb 2023 21:58:43 -0800 Subject: [PATCH 02/54] build: can build the app using Swift (noop) --- build.zig | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/build.zig b/build.zig index 2c0fb4bc2..3999754b7 100644 --- a/build.zig +++ b/build.zig @@ -131,6 +131,31 @@ pub fn build(b: *std.build.Builder) !void { b.installFile("dist/macos/Ghostty.icns", "Ghostty.app/Contents/Resources/Ghostty.icns"); } + // Mac App based on Swift + { + // Build the swift binary (TODO: debug vs release modes) + const swift_build = b.addSystemCommand(&.{ "swift", "build" }); + swift_build.cwd = "macos"; + + const macapp = b.step("macapp", "Build macOS app"); + macapp.dependOn(&swift_build.step); + macapp.dependOn(&b.addInstallFileWithDir( + .{ .path = "macos/.build/arm64-apple-macosx/debug/Ghostty" }, + .prefix, + "Ghostty.app/Contents/MacOS/ghostty", + ).step); + macapp.dependOn(&b.addInstallFileWithDir( + .{ .path = "dist/macos/Info.plist" }, + .prefix, + "Ghostty.app/Contents/Info.plist", + ).step); + macapp.dependOn(&b.addInstallFileWithDir( + .{ .path = "dist/macos/Ghostty.icns" }, + .prefix, + "Ghostty.app/Contents/Resources/Ghostty.icns", + ).step); + } + // wasm { // Build our Wasm target. From b49634a57c95837ae990699dc601aff5cfbde262 Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Sun, 12 Feb 2023 22:06:41 -0800 Subject: [PATCH 03/54] add TODO notes about arch --- build.zig | 6 +++++- macos/Sources/Ghostty/{main.swift => entry.swift} | 0 2 files changed, 5 insertions(+), 1 deletion(-) rename macos/Sources/Ghostty/{main.swift => entry.swift} (100%) diff --git a/build.zig b/build.zig index 3999754b7..4d340a61a 100644 --- a/build.zig +++ b/build.zig @@ -133,7 +133,11 @@ pub fn build(b: *std.build.Builder) !void { // Mac App based on Swift { - // Build the swift binary (TODO: debug vs release modes) + // Build the swift binary + // + // TODO: + // - debug vs release modes) + // - arch (arm64 vs x86_64) const swift_build = b.addSystemCommand(&.{ "swift", "build" }); swift_build.cwd = "macos"; diff --git a/macos/Sources/Ghostty/main.swift b/macos/Sources/Ghostty/entry.swift similarity index 100% rename from macos/Sources/Ghostty/main.swift rename to macos/Sources/Ghostty/entry.swift From 4d09f8dba663cd0cbf00551ffef0e11edd4bec2a Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Mon, 13 Feb 2023 09:36:11 -0800 Subject: [PATCH 04/54] build: add SwiftBuildStep to run "swift build" --- .gitignore | 1 + build.zig | 16 +++---- src/build/SwiftBuildStep.zig | 89 ++++++++++++++++++++++++++++++++++++ 3 files changed, 98 insertions(+), 8 deletions(-) create mode 100644 src/build/SwiftBuildStep.zig diff --git a/.gitignore b/.gitignore index 83d1031dc..2fef0f117 100644 --- a/.gitignore +++ b/.gitignore @@ -1,3 +1,4 @@ +.DS_Store .direnv/ zig-cache/ zig-out/ diff --git a/build.zig b/build.zig index 4d340a61a..6dbd83ee3 100644 --- a/build.zig +++ b/build.zig @@ -21,6 +21,7 @@ const zlib = @import("pkg/zlib/build.zig"); const tracylib = @import("pkg/tracy/build.zig"); const system_sdk = @import("vendor/mach/libs/glfw/system_sdk.zig"); const WasmTarget = @import("src/os/wasm/target.zig").Target; +const SwiftBuildStep = @import("src/build/SwiftBuildStep.zig"); // Do a comptime Zig version requirement. The required Zig version is // somewhat arbitrary: it is meant to be a version that we feel works well, @@ -133,18 +134,17 @@ pub fn build(b: *std.build.Builder) !void { // Mac App based on Swift { - // Build the swift binary - // - // TODO: - // - debug vs release modes) - // - arch (arm64 vs x86_64) - const swift_build = b.addSystemCommand(&.{ "swift", "build" }); - swift_build.cwd = "macos"; + const swift_build = SwiftBuildStep.create(b, .{ + .product = "Ghostty", + .target = target, + .optimize = mode, + .cwd = .{ .path = "macos" }, + }); const macapp = b.step("macapp", "Build macOS app"); macapp.dependOn(&swift_build.step); macapp.dependOn(&b.addInstallFileWithDir( - .{ .path = "macos/.build/arm64-apple-macosx/debug/Ghostty" }, + .{ .generated = &swift_build.bin_path }, .prefix, "Ghostty.app/Contents/MacOS/ghostty", ).step); diff --git a/src/build/SwiftBuildStep.zig b/src/build/SwiftBuildStep.zig new file mode 100644 index 000000000..ec8cc04dd --- /dev/null +++ b/src/build/SwiftBuildStep.zig @@ -0,0 +1,89 @@ +//! A zig builder step that runs "swift build" in the context of +//! a Swift project managed with SwiftPM. This is primarily meant to build +//! executables currently since that is what we build. +const SwiftBuildStep = @This(); + +const std = @import("std"); +const Step = std.build.Step; +const GeneratedFile = std.build.GeneratedFile; + +pub const Options = struct { + /// The product name. This is required to determine the output path + /// as well. + product: []const u8, + target: std.zig.CrossTarget, + optimize: std.builtin.Mode, + + /// Directory where Package.swift is + cwd: ?std.build.FileSource = null, + + /// Configuration to build the swift package with. This will default + /// to "debug" for debug modes and "release" for all other Zig build + /// modes. + configuration: ?[]const u8 = null, +}; + +step: Step, +builder: *std.build.Builder, + +/// The generated binary. +bin_path: GeneratedFile, + +/// See Options +product: []const u8, +target: std.zig.CrossTarget, +optimize: std.builtin.Mode, +cwd: ?std.build.FileSource = null, +configuration: ?[]const u8 = null, + +pub fn create(builder: *std.build.Builder, opts: Options) *SwiftBuildStep { + const self = builder.allocator.create(SwiftBuildStep) catch @panic("OOM"); + self.* = .{ + .step = Step.init(.custom, "swift build", builder.allocator, make), + .builder = builder, + .bin_path = .{ .step = &self.step }, + .product = opts.product, + .target = opts.target, + .optimize = opts.optimize, + .cwd = opts.cwd, + .configuration = opts.configuration, + }; + return self; +} + +fn make(step: *Step) !void { + const self = @fieldParentPtr(SwiftBuildStep, "step", step); + + const configuration = self.configuration orelse switch (self.optimize) { + .Debug => "debug", + else => "release", + }; + + const arch = switch (self.target.getCpuArch()) { + .x86_64 => "x86_64", + .aarch64 => "arm64", + else => return error.UnsupportedSwiftArch, + }; + + // We use a RunStep here to ease our configuration. + const run = std.build.RunStep.create(self.builder, "run swift build"); + run.cwd = if (self.cwd) |cwd| cwd.getPath(self.builder) else null; + run.addArgs(&.{ + "swift", "build", + "--product", self.product, + "-c", configuration, + "--arch", arch, + }); + try run.step.make(); + + // Determine our generated path + self.bin_path.path = self.builder.fmt( + "{s}/.build/{s}-apple-macosx/{s}/{s}", + .{ + run.cwd orelse ".", + arch, + configuration, + self.product, + }, + ); +} From 81299fde9c3ed50301d85eb882f99a8019a46209 Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Mon, 13 Feb 2023 21:21:42 -0800 Subject: [PATCH 05/54] macos: empty window --- macos/Sources/Ghostty/entry.swift | 24 +++++++++--------------- 1 file changed, 9 insertions(+), 15 deletions(-) diff --git a/macos/Sources/Ghostty/entry.swift b/macos/Sources/Ghostty/entry.swift index 0354fb9a8..2829f7fa3 100644 --- a/macos/Sources/Ghostty/entry.swift +++ b/macos/Sources/Ghostty/entry.swift @@ -1,23 +1,17 @@ import SwiftUI @main -struct Ghostty: App { - var body: some Scene { - WindowGroup { - ContentView() +struct MyApp: App { + var body: some Scene { + WindowGroup { + ContentView() + } } - } } struct ContentView: View { - @StateObject var viewModel: ViewModel = ViewModel() - - var body: some View { - TextField("", text: $viewModel.inputText) - .padding() - } -} - -public class ViewModel: ObservableObject { - @Published var inputText: String = "" + var body: some View { + Text("Ghostty") + .font(.largeTitle) + } } From 80358655962cdd997f17f08d4f32c8e59c5c9430 Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Mon, 13 Feb 2023 22:20:33 -0800 Subject: [PATCH 06/54] build: ghostty lib, framework, build into app --- build.zig | 33 +++++++++++-- include/ghostty.h | 16 +++++++ include/module.modulemap | 4 ++ macos/.gitignore | 1 + macos/Package.swift | 10 +++- macos/Sources/Ghostty/entry.swift | 6 ++- src/build/XCFrameworkStep.zig | 78 +++++++++++++++++++++++++++++++ src/main_c.zig | 11 +++++ 8 files changed, 153 insertions(+), 6 deletions(-) create mode 100644 include/ghostty.h create mode 100644 include/module.modulemap create mode 100644 src/build/XCFrameworkStep.zig create mode 100644 src/main_c.zig diff --git a/build.zig b/build.zig index 6dbd83ee3..c7af4f357 100644 --- a/build.zig +++ b/build.zig @@ -22,6 +22,7 @@ const tracylib = @import("pkg/tracy/build.zig"); const system_sdk = @import("vendor/mach/libs/glfw/system_sdk.zig"); const WasmTarget = @import("src/os/wasm/target.zig").Target; const SwiftBuildStep = @import("src/build/SwiftBuildStep.zig"); +const XCFrameworkStep = @import("src/build/XCFrameworkStep.zig"); // Do a comptime Zig version requirement. The required Zig version is // somewhat arbitrary: it is meant to be a version that we feel works well, @@ -132,17 +133,41 @@ pub fn build(b: *std.build.Builder) !void { b.installFile("dist/macos/Ghostty.icns", "Ghostty.app/Contents/Resources/Ghostty.icns"); } - // Mac App based on Swift - { + // c lib + const static_lib = lib: { + const static_lib = b.addStaticLibrary("ghostty", "src/main_c.zig"); + static_lib.setBuildMode(mode); + static_lib.setTarget(target); + static_lib.install(); + static_lib.linkLibC(); + b.default_step.dependOn(&static_lib.step); + break :lib static_lib; + }; + + // On Mac we can build the app. + const macapp = b.step("macapp", "Build macOS app"); + if (builtin.target.isDarwin()) { + // The xcframework wraps our ghostty library so that we can link + // it to the final app built with Swift. + const xcframework = XCFrameworkStep.create(b, .{ + .name = "GhosttyKit", + .out_path = "macos/GhosttyKit.xcframework", + .library = .{ .generated = &static_lib.output_lib_path_source }, + .headers = .{ .path = "include" }, + }); + xcframework.step.dependOn(&static_lib.step); + macapp.dependOn(&xcframework.step); + + // Build our swift app const swift_build = SwiftBuildStep.create(b, .{ .product = "Ghostty", .target = target, .optimize = mode, .cwd = .{ .path = "macos" }, }); - - const macapp = b.step("macapp", "Build macOS app"); macapp.dependOn(&swift_build.step); + + // Build our app bundle macapp.dependOn(&b.addInstallFileWithDir( .{ .generated = &swift_build.bin_path }, .prefix, diff --git a/include/ghostty.h b/include/ghostty.h new file mode 100644 index 000000000..2dedabefd --- /dev/null +++ b/include/ghostty.h @@ -0,0 +1,16 @@ +#ifndef GHOSTTY_H +#define GHOSTTY_H + +#ifdef __cplusplus +extern "C" { +#endif + +#include + +uint64_t ghostty_hello(void); + +#ifdef __cplusplus +} +#endif + +#endif /* GHOSTTY_H */ diff --git a/include/module.modulemap b/include/module.modulemap new file mode 100644 index 000000000..917796d89 --- /dev/null +++ b/include/module.modulemap @@ -0,0 +1,4 @@ +module GhosttyKit { + umbrella header "ghostty.h" + export * +} diff --git a/macos/.gitignore b/macos/.gitignore index 3b2981208..538cdd3dd 100644 --- a/macos/.gitignore +++ b/macos/.gitignore @@ -2,6 +2,7 @@ /.build /Packages /*.xcodeproj +/*.xcframework xcuserdata/ DerivedData/ .swiftpm/config/registries.json diff --git a/macos/Package.swift b/macos/Package.swift index d85ec4af0..f436448ae 100644 --- a/macos/Package.swift +++ b/macos/Package.swift @@ -10,10 +10,18 @@ let package = Package( // SwiftUI .macOS(.v11), ], + products: [ + .executable( + name: "Ghostty", + targets: ["Ghostty"]), + ], dependencies: [], targets: [ .executableTarget( name: "Ghostty", - dependencies: []), + dependencies: ["GhosttyKit"]), + .binaryTarget( + name: "GhosttyKit", + path: "GhosttyKit.xcframework"), ] ) diff --git a/macos/Sources/Ghostty/entry.swift b/macos/Sources/Ghostty/entry.swift index 2829f7fa3..72829efd7 100644 --- a/macos/Sources/Ghostty/entry.swift +++ b/macos/Sources/Ghostty/entry.swift @@ -1,10 +1,14 @@ import SwiftUI +import GhosttyKit @main struct MyApp: App { + @State private var num = ghostty_hello() + var body: some Scene { WindowGroup { - ContentView() + Text(String(num)) + .font(.largeTitle) } } } diff --git a/src/build/XCFrameworkStep.zig b/src/build/XCFrameworkStep.zig new file mode 100644 index 000000000..8522810df --- /dev/null +++ b/src/build/XCFrameworkStep.zig @@ -0,0 +1,78 @@ +//! A zig builder step that runs "swift build" in the context of +//! a Swift project managed with SwiftPM. This is primarily meant to build +//! executables currently since that is what we build. +const XCFrameworkStep = @This(); + +const std = @import("std"); +const Step = std.build.Step; +const GeneratedFile = std.build.GeneratedFile; + +pub const Options = struct { + /// The name of the xcframework to create. + name: []const u8, + + /// The path to write the framework + out_path: []const u8, + + /// Library file (dylib, a) to package. + library: std.build.FileSource, + + /// Path to a directory with the headers. + headers: std.build.FileSource, +}; + +step: Step, +builder: *std.build.Builder, + +/// See Options +name: []const u8, +out_path: []const u8, +library: std.build.FileSource, +headers: std.build.FileSource, + +pub fn create(builder: *std.build.Builder, opts: Options) *XCFrameworkStep { + const self = builder.allocator.create(XCFrameworkStep) catch @panic("OOM"); + self.* = .{ + .step = Step.init(.custom, builder.fmt( + "xcframework {s}", + .{opts.name}, + ), builder.allocator, make), + .builder = builder, + .name = opts.name, + .out_path = opts.out_path, + .library = opts.library, + .headers = opts.headers, + }; + return self; +} + +fn make(step: *Step) !void { + const self = @fieldParentPtr(XCFrameworkStep, "step", step); + + // TODO: use the zig cache system when it is in the stdlib + // https://github.com/ziglang/zig/pull/14571 + const output_path = self.out_path; + + // We use a RunStep here to ease our configuration. + { + const run = std.build.RunStep.create(self.builder, self.builder.fmt( + "xcframework delete {s}", + .{self.name}, + )); + run.addArgs(&.{ "rm", "-rf", output_path }); + try run.step.make(); + } + { + const run = std.build.RunStep.create(self.builder, self.builder.fmt( + "xcframework {s}", + .{self.name}, + )); + run.addArgs(&.{ + "xcodebuild", "-create-xcframework", + "-library", self.library.getPath(self.builder), + "-headers", self.headers.getPath(self.builder), + "-output", output_path, + }); + try run.step.make(); + } +} diff --git a/src/main_c.zig b/src/main_c.zig new file mode 100644 index 000000000..723698fb6 --- /dev/null +++ b/src/main_c.zig @@ -0,0 +1,11 @@ +// This is the main file for the C API. The C API is used to embed Ghostty +// within other applications. Depending on the build settings some APIs +// may not be available (i.e. embedding into macOS exposes various Metal +// support). +const std = @import("std"); +const builtin = @import("builtin"); + +// We're just testing right now. +export fn ghostty_hello() u64 { + return 42; +} From 8fedbf84d421f5e0d8bc806aa7adb526ae16bf06 Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Tue, 14 Feb 2023 08:32:43 -0800 Subject: [PATCH 07/54] macos: use xcodeproj --- .../AccentColor.colorset/Contents.json | 11 +++ .../AppIcon.appiconset/Contents.json | 68 ++++++++++++++++++ .../Ghostty_256x256x32 1.png | Bin 0 -> 20136 bytes .../Ghostty_256x256x32 2.png | Bin 0 -> 20136 bytes .../Ghostty_256x256x32 3.png | Bin 0 -> 20136 bytes .../Ghostty_256x256x32 4.png | Bin 0 -> 20136 bytes .../Ghostty_256x256x32 5.png | Bin 0 -> 20136 bytes .../Ghostty_256x256x32 6.png | Bin 0 -> 20136 bytes .../AppIcon.appiconset/Ghostty_256x256x32.png | Bin 0 -> 20136 bytes .../Ghostty_512x512x32 1.png | Bin 0 -> 46456 bytes .../Ghostty_512x512x32 2.png | Bin 0 -> 46456 bytes .../AppIcon.appiconset/Ghostty_512x512x32.png | Bin 0 -> 46456 bytes macos/Assets.xcassets/Contents.json | 6 ++ macos/Ghostty.entitlements | 10 +++ macos/Package.swift | 27 ------- macos/Sources/ContentView.swift | 19 +++++ macos/Sources/Ghostty/entry.swift | 21 ------ macos/Sources/GhosttyApp.swift | 13 ++++ 18 files changed, 127 insertions(+), 48 deletions(-) create mode 100644 macos/Assets.xcassets/AccentColor.colorset/Contents.json create mode 100644 macos/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 macos/Assets.xcassets/AppIcon.appiconset/Ghostty_256x256x32 1.png create mode 100644 macos/Assets.xcassets/AppIcon.appiconset/Ghostty_256x256x32 2.png create mode 100644 macos/Assets.xcassets/AppIcon.appiconset/Ghostty_256x256x32 3.png create mode 100644 macos/Assets.xcassets/AppIcon.appiconset/Ghostty_256x256x32 4.png create mode 100644 macos/Assets.xcassets/AppIcon.appiconset/Ghostty_256x256x32 5.png create mode 100644 macos/Assets.xcassets/AppIcon.appiconset/Ghostty_256x256x32 6.png create mode 100644 macos/Assets.xcassets/AppIcon.appiconset/Ghostty_256x256x32.png create mode 100644 macos/Assets.xcassets/AppIcon.appiconset/Ghostty_512x512x32 1.png create mode 100644 macos/Assets.xcassets/AppIcon.appiconset/Ghostty_512x512x32 2.png create mode 100644 macos/Assets.xcassets/AppIcon.appiconset/Ghostty_512x512x32.png create mode 100644 macos/Assets.xcassets/Contents.json create mode 100644 macos/Ghostty.entitlements delete mode 100644 macos/Package.swift create mode 100644 macos/Sources/ContentView.swift delete mode 100644 macos/Sources/Ghostty/entry.swift create mode 100644 macos/Sources/GhosttyApp.swift diff --git a/macos/Assets.xcassets/AccentColor.colorset/Contents.json b/macos/Assets.xcassets/AccentColor.colorset/Contents.json new file mode 100644 index 000000000..eb8789700 --- /dev/null +++ b/macos/Assets.xcassets/AccentColor.colorset/Contents.json @@ -0,0 +1,11 @@ +{ + "colors" : [ + { + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/macos/Assets.xcassets/AppIcon.appiconset/Contents.json b/macos/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 000000000..0425f20d1 --- /dev/null +++ b/macos/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,68 @@ +{ + "images" : [ + { + "filename" : "Ghostty_256x256x32 6.png", + "idiom" : "mac", + "scale" : "1x", + "size" : "16x16" + }, + { + "filename" : "Ghostty_256x256x32 5.png", + "idiom" : "mac", + "scale" : "2x", + "size" : "16x16" + }, + { + "filename" : "Ghostty_256x256x32 4.png", + "idiom" : "mac", + "scale" : "1x", + "size" : "32x32" + }, + { + "filename" : "Ghostty_256x256x32 3.png", + "idiom" : "mac", + "scale" : "2x", + "size" : "32x32" + }, + { + "filename" : "Ghostty_256x256x32 2.png", + "idiom" : "mac", + "scale" : "1x", + "size" : "128x128" + }, + { + "filename" : "Ghostty_256x256x32 1.png", + "idiom" : "mac", + "scale" : "2x", + "size" : "128x128" + }, + { + "filename" : "Ghostty_256x256x32.png", + "idiom" : "mac", + "scale" : "1x", + "size" : "256x256" + }, + { + "filename" : "Ghostty_512x512x32.png", + "idiom" : "mac", + "scale" : "2x", + "size" : "256x256" + }, + { + "filename" : "Ghostty_512x512x32 1.png", + "idiom" : "mac", + "scale" : "1x", + "size" : "512x512" + }, + { + "filename" : "Ghostty_512x512x32 2.png", + "idiom" : "mac", + "scale" : "2x", + "size" : "512x512" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/macos/Assets.xcassets/AppIcon.appiconset/Ghostty_256x256x32 1.png b/macos/Assets.xcassets/AppIcon.appiconset/Ghostty_256x256x32 1.png new file mode 100644 index 0000000000000000000000000000000000000000..608ba84b02f8d1215bb3daffc889be1fc5ed4ee7 GIT binary patch literal 20136 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

I(Idhv%$sJhvt+ZTN;Y_9d?m{z;kK7 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 literal 0 HcmV?d00001 diff --git a/macos/Assets.xcassets/AppIcon.appiconset/Ghostty_256x256x32 2.png b/macos/Assets.xcassets/AppIcon.appiconset/Ghostty_256x256x32 2.png new file mode 100644 index 0000000000000000000000000000000000000000..608ba84b02f8d1215bb3daffc889be1fc5ed4ee7 GIT binary patch literal 20136 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

I(Idhv%$sJhvt+ZTN;Y_9d?m{z;kK7 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 literal 0 HcmV?d00001 diff --git a/macos/Assets.xcassets/AppIcon.appiconset/Ghostty_256x256x32 3.png b/macos/Assets.xcassets/AppIcon.appiconset/Ghostty_256x256x32 3.png new file mode 100644 index 0000000000000000000000000000000000000000..608ba84b02f8d1215bb3daffc889be1fc5ed4ee7 GIT binary patch literal 20136 zcmc$`_di?z`v-hNjM$?UYVQt&YVAF%HQMUCrA8D*Yo=zs3q=k>gv*LCvrx}_;Q%NZ5`0NBm07~KQ_ z2ypUYW&{Ah{?P|F01yMrjP!2>=d3$0g`aLCPfdhbm+2ax+7$&?3o$G# zSMFq;dT{g9x!+Jt6=?bOx3QPb#XL@#x^^W>k4{`1b|o9k8O@!ns0iDf8kJgDx=1>T z!24$As%yFvHQn9!rvxuqoc`z54defxzTTxsH|sU&aVa{tCSI%$TtBq3wCs^g;8;}c z(xvX#GccghndpOMVhDpN`s`UXop@)HNZPhBgQ=xLuWtCG!C6V!;Tv8W;Rg#tF)gyz ztSpvAi|`zC)iTz5s%;|A*pg#fToH>Ar(Rd)8Hb>oxgRy@k!K|r#EdzN723p~X*~<4 zXE>E`F8Mmu0+l|;--e=>T@Jr;LmWQ?T}q2To^Myjp7B?6?pi5R!iT%`B(RA-V#9IV zL{>CgZM~Mj9O7WZbYGrAB6G?7!#=8YuhtHKR2BJ;n3W!@R5O}detB*}N^y zkbv!dvwFEPe`Xo`n4QUb!*sZEwZM>}`;ostZmK?LbB`6Spp{Un`?pIbIY1X!!ewqO8eGU}+7tecd%|CB#!j0l@bIn$2`_k!_hwx+RW5-zH{^oyh5{{=2%=5#YLV4H!Vj; zNB6_`Cxgyq<#FA*m^d4=xmyr%M4rsd4yzRH-YAQZN^fB?&@EElOgJJ697m(HL-oTL zqTq29iNI`5a&x!nBK|FyU?tMksd?z_7D$fpGwlDo(DUMW7QMtt#CTW_7>7H){b2zw2jH5 zPeK}xy`&xU4HG$G-u=ynPIN3`I;e)kA7j=u_-F9J5m_`GR{6me%lPS(^{lN*ZSeLS zrlJC*y;A5htL_WAaw#N{#0FUqkIq-ILtfH}*oW*4|9ZZ#Z;MWa@fN*6nj}dZ##688 z9IsvYT{ErsyTTp0Lp#zo%TU-%v)l}n%+&~x7S;$n$M@K1;)aLj>3Pg}-ZUxT?Xb|7 z2=_Y1&Hk$8(a(sLVKkRrq4+fTbBJxoXJ}1#^zOzR&ok?XF2{*}%TFbUedW_CJ`=$& z-N0SFmlATzCA0#QZwbkpoHbG3LI@UadkwrYq)7E|gr6}_F8qWeBd?8BuU~O2z8yOe zy1Ksb2BRQTa6Pfl|6HrMlQ*L7z`1&;Y{`3i<>w{fE?^PIdYCu^E0|fBJszcOvI}eM znp;RmOI%oTK({9ez!w&TvY*9{$u~WCr1*OH9%|NyqdAi307|;&piG`(ZirU{S%7zx zi5pF4x=8YdRnBBe*z(Ay!OwS)Up@xWKT)90J)s@0mR@+kRocA>9}R3?XHD;1O&=~E zH<@}kmYV*3>jw`!(_n?pgR!#0ZTb+6QK~YGz!0>$S;QyKbP(k6|Z+K|6EXauAbNI^{I}Sq$GNT zwcyjNt8_P?Frnu*CP%A00=2yyTx(c;s@O$!QYRjDdP^&ud2#^tSY`U8)R!G#sB!P> z2h&fJX<^Eo-#>qp;tEiTMfWyN1T8<&dYyI+QOPt^JZT~lxv^3=1c+XF?^g$ zLIcgaAzkLcZ3#8hBVtcP)#aB^d)BaVydP!9)5FhQGe5GX+8kR z$H=th2bs~Cs(6nb<`+%DMp#&B{e`9(x+%x|Zgzdvt`%LMlxK+C^FM9fbN`vce94c3 zWI?^1yX#gmhALjk**?lGLK_8-$pU0)+|`%o-??t+YN;NHeZL|xGbf<6Jm37cQ2R+H zgNJ`#KEnG@+hZ9n8@IMrn5|1$NMo%W(1L9dX$zH=$K54Srb&Nw!Hbp*c!MtbODvj@ z8bN-O_Qo9S12kL2IJe}DzSwqOO27Vvl+=XP zwve#}5A!9l=(wfy>4J$DZ!UO)QIC9oMVvkC4@Li?zoNMH;sRYFy+L+zbRyFk0%QE9 zsE~)!mjrb@z2m%ga@djoL+UV=Gk+NOML!>5mj>8ne`&w_y|C25Afoz}m&Ik9alz5M ztDcTpp>!oZ@3I00Dn72}%oF(J??z_0edkmwVHrQPP9LqA2qU^aOfiFL#!Bmyo$(~UaeKr z?HA>Kj{#wFs34~^fc$dSS&iq>Zo|dnvwg}Qx&Cgqo99?gpU)}Cb;Htyui`4*x|iN} z&GZIJc!JXlMcL1G3LDY=ng+sw!-@>&4Y-O+x)~s?bz5?7%woys#pKBJgmBmO+#*^< zE_5)y$idMylz!b!_+T8hPZ-I|>bD;dWw6Y)Vi>Ul$ErMWHHg)pOUI+89g%0&H0BSL zejmr`7=Pu0jdkCGmaw77s;>v>>CM{%R%_ezU5Yyt==Oy~`J+Zk@DV!I{xkjwu9lp(}UgJ#&5Ly%HDaZ3TbZ*Sn2-rd)G9&)(W6*;Jzwrf3`lrJW49Iuc~5h zoDC9p=#mkk<71G9*@mSaqqvNDQ!Jyy7|M2ZCn)-w`2{~bxGu5XO@6zlEx?3-7t!hQ zzL`~@JXdLGEU9?UDIH+{-nE7ruRO|=n^#j`{-u6i@)i{2fHOgs`GJa*f2LZ=A? zPcFOH%*u>J%FKt>k~E`wR~WIBpLs}%=qUR5iSJ8;2i%oivBI7cKgwHL;@OXC+#;?i zDquqPrz@pP1RjZ$JA#qRKMm}+pmk2Y18uACC8N~NG^<1TzUlH==yAP7962`We4`Kp z>?xa_=)O}PouvwRQI(74bbYIu1IkQ&ky{3eK0%PRQQX{G#1V(DB7G!y1GB#hUv!(E z-nPo0`|QFCgd4TK9;81uAL@rIZ4Rg!plzecRs6#dJ-x6ALP+Eyx}Q>tm)gyM>J6xr zXzroQZkOC$tW=AHH#P2(2%@Ya(D%yhuHua5c^3&mub%XVwy-{7=kyGg4{!H{H{BV_4bFYhmKjx1WaWLlWNeg)>#n>R820AEq1Ms)<# z(r%SIx1rZMwH`&On>KUuM(5XyGde9HGbYco zkA4+L$HhOsr}LP}u7R^Z=8a0cPT~=>cYjhwT*i0n2%SYd0@U}9tQ@N~Bb6O8728xb zHuAY6=qY5dcyHCZekJ)X2kCIC3vV|1b;tH}<2XBphvn}~fG32T>50mn=2KtL%&03K zm|uAd;bpzQKG(F4_=l zLEBp$lI;xc*3feQ6st$u2dxjs=WdaONhqkfF9ridQdQMIQNj}s3=8BNsZ8sX{eKq2t0M?(IwL2-_gypoiY6K(>|N?&NNX6t;RBqn8aB9 z#>5v;@g&v1?&&Lrc_E>vD37*~QkUhC;P{qK*`olym41H+1-V!t#kIVsjuYE#smbuHo0p48F^|*e!CO_Z?$gdr`TWd0)%btkY2e#z=+tbeth~DGanPD>7 z8{e!QCrsjtFnTE-_6$-&@RZDv>_4AXpL$KbGUWKGdmR456|Ls8)1VvlB0+@uRGRLZ z-*@wBjIOy};#p_#`_VX&$R^e-+APBHCU{Gi>%+McyA$K*0I!a#sv+w^MSM(~kS+vR zJYF_`oD@+Po1?y5osfRc+GNKd&lsMcAfB&?S)rSP^AFEmo?w}>u6gH^|PW5DDWY0d3|18ok%oVpuL*}^$a+Rj0M(X zhV)53LFmNie{PXQW`yK98c(_EfbTcD&R}9iGoy#lxT-&dPQ0BxL+tnj!=lkmXRDq5 zeCY+fWZJlQ8cKMC`7ix4qFzYNV>>!FJZC>Rm}K|92Pz|`1uvz*$+fb zW9=pDGsjHwzy886_3rt8eE|(z@31Xu>j(qLR4bJJ!_c0K%F7IFLc3L1==DjP#5|e# z(BSCNqm1wQx~~-6l7?8pB& zMB0Sqk-3?kRHtV8q7FFkrVk=KbnLZU*R&fl$lp>Vj4v#1LPoIYv%lVLc8u4%PjfGc zx!;}+i>vfF2hwpxR+Q+{8O1jSYxl+6^*#-%C(0qeVI$z0q^5pFwfKX~zQ8|1o%r$R z;}h-f;!DRS&!?`WrY#VWHlRREVyuCkQkN;;yJpZS|7B&QKFJ=;3CW#XINqN|zjlid z&HuwkrYn22`0KRtMQq+gORUI!%@4Z!6W3DViccMPIhW~n{i15ncHZ6S@3aoVC33;Ctev4ny;?;N?6IDTrrd z-Ih+Gm|h6DjpFW!;-kO1hH#%|ee?bIoUX@BlNQy5LU;*Vg&T%*bf~@ zrm}nU=Qz2@*aqcatH(YqDOM<9Bbep?C{t@UP zkYM)m{Pb(HCab0nR!259O(%sMl=cK_(r4dVW!h$2^wPP)*++{CDtmZAX}}Tr?NJ2N z*rvS&`l;hXR&!d;=?g>E)4BS&or*bKdK?3xXHTV?12139tZnglw4uqen!k6tp;A~p zHz;3e?639p`>4P5idKEUdXRe`adYFdC|KU@v6jG<5T~LVCSi1Btc|zX))m*^fXC#A z2(fDE1Pbn1*ab#@dAVanH-Z4p(aJ;jUU6D5F%(Z{&dxK;@Nz@<8#^TEV3R-dvG9~# z?Sz#{GBbTC{d{Qc{7P7|SfIgXm=rbGkxAt+%WEW(viPD%^lRdRt`6UNa5;V$RSM0= zwvbx9r(n{zk2$4&g8RGq5vJz+FsD`Wr0#DWqUYgzk9R7NriET)z0Z;RM6*L8gaj{s z+2{v@A>xout>TS-CgWAZkp_Vq=fxh>b0#pc8;ppDlNT@D{2uDN)7K)rQbBp|de{|U zf|E?dGJ6M74@h)3Ki}5fnK2apxmvm}D~Wbk``!D%x8p0@BNKrjuz{-wZM{%y!C%Na z=4_88*DBAf9UDSgAqDa*VdZ~yJ#OA6kUo%6=4FQ>xi#L?s(IvdpWF25&er=Fj$Ieo zsy~=Ko#{+%9n}d0F3anOi17zwQDOzGl!F0=OAw*tL<%M_WwjKY2Bkv`l(U;D7Qhx& zmk)?$g(kSvKf82{Q@CN&(cggAmzFhe-ndohvRZ*x`0RgqXTf^%XMFc4H-Ub*n4vz( zClA6~0yfo(tfNLroq1M9_j-{xX-AZ+iXJ#ZG)z*Zdh=(DE(aZ2LeBU?8w`*^2F@2v z7Rt+F#dHiJ5AUa9q1O?`Q8_Wc)zv>L+g3#Cey?ARW|VUtMb?|Ob^aa5_jRN0-^^VZ zQDCfj|KXZrsdCC%)HdTyZh95(PVt(_sb^yz=KcDj+49G*e1GhSWW; zq{EC(a43r$wy*^Hltw)rLOa>3VkJ3X-u+2IIi)FNS6-9i1J11U!R_8#M=K_BiP-#) z4@NN_ILxJEQ~h@u5c}E(t5YAfW(I;pRRp%yxhQx*h^^s)LLxn+HN2dsF7?wtc!}|# zCF@gS3S#3)8e5&EP16a!X8pGKqpwefY(ZV3M%iT3a(O4aAf-Jx7m`~~H8^T8-u|LK z#ABuUu#k6A=ItFEs@k7K+4|-^mUXR1y^|j?@{}148bXeQ)G#`A`qg;2);dEI+@U~S=3@e_tUnpO`k5RBV+ulJc(0eOG4*3`~y~4Pq|WzZ@w-hhrz*p zCvsoF)$XCrXr1J=t33{{`0}mPWmm`mh3>(C0=sSHAMOlE{XK6bCOzUic&Cu*c=k;atzb9K#0DzrLQl?X{yB>zmr5N=^0R zf!`vP{^D_X_N^87=~YBzkS6l{=ETdIT=F-Y0X)0SC*CGwyFekEc6uFlrF<(qB767i)H(c`~A0=eFd>>4mWuEM%^R}7*=%so+)9&{dGp%hWCrk)N?P0 zlGU$*C96(2>;;ww$hi6Nm}4<#-FcTbP|x7n1L0V5%lD+IZ<>f$^10HNJ5V4EAG}&k ze_{%=hmkbu$+vE;kHJ98w8PlLsqH#3F248x#>X3D;{=X;`n!D!eD%>Hnv(B$M{D=ET8c_S zWJrf^-qnBX=7Z*q2h=+x8Lu1o;P?Ff-{%p6_u8U4`ITCn?XdAA^dB_dP@D)T}Qo!t$xFyqQ$hgf8(IBqUEpG|(@5DDZo| zP@k{+mj4)~P+u%te?+I^rS5u>@OFA=fFYbkcT1Y~9@Rbr@H717G|KL>$@&>)8mEfMiNAgW_ENagGl$NKXxUZ#`rW zdm4<5PX4XoV^xKi;<{n*^Ie2O|1R|Uc{Gogbd<1qHibC#AQ9p{wer`62?!eP(HM!D zWia)QKkL)@QIvhokZo0EF{^mke_N=Y7P+m#?j;wH&X4B z))sZWEO#**gLb5Kiol7b$QI^dyC`BXq?S`euqU$kkTb$HU?S_G?qDK43F9OqO3NmH zyM;-Bmfa8QvHZ(*Z{$hln}0khtZ-Mv>Kk6MiD+;iPjl^#7rImIh%>xhJY{t=b@_Jo z^N3;BgPmUK3>DeV+iqj+Ndow1w?3=8^M6rslxyL?)9s0L854QJ&nBs5$PDL58yG)$Gegc zveh#D1M9h+20RMdX3NNm&wR5uzGElr|6+oVtwsQr|8NlEdYZlHACv2-_S(fINV{MV z|8NJFrRmsE&P1?_^3FWs+D{xN=tVTnQg%_H*to7ycl6$7TSlX*4uhf>R6{@|>xH22 z8x<2dan@IBMJh!v9xXabmJW+ty~A#W4%BSe^Fl1B2)X5)%vqbe$I<^W=0|BO^?2ln_1KOYXx?#!5f?xZ!XkwWS2L z_T!8}rE7qi%=O$2x;a^hmz8$qH1&(7a|DwZNWKJ(K66_vP;X0n=Ot7P@x z&O7(huAUB)7#9}U)eH_JtNSYU#cyZ(K37^VQS<`nKixk5aYbrq;<2D`(k7zv9!^c` z@IbY?e2BVsHY}29GViJ7Oze+EB zKMz3tZer4)ejU|+8iZ;@r`NWQnWNxuC7l~RZa3*|>5xZc<(eQDZrc?Pb7oEy4tpJQ zi0CWAbEaQ*<>EUlYr-!(KNF3-Yn*Bz{G*2{C1>PC(wX`xAs71GgpN~i@FZGXXP3E+S8Fl2$xOoa25~@D^IK-U#7-{ov z|DAs6Jm5SzRPW#xmuq#?S@w6~zWpUfpvJq4n7Wg@x6d+>*X`~L@^Z_vc)vk!4EL_q z^81Ob&N3jvl-BUY$=%Sh0haIsrOX>x9JEaPGRVvsyp&J*ToeBLN3W!wVrssI*hZ7i zG@AUax8paSLs3q@!N_A^^~kJd-#zWx`CY}hHwdaj5ZclNJMEe@?wefm_sDzC3U6=n zrQr>N$A{_B`eo4e8jR~CwKAt;iCZTQJJ;<-m=uCmdaMwI^}?jG$cf{u-ohiqBSgc2 zv~9y&RPy4HyjwskGi%2E7dTUIF=XWT81t;^Nz}v-NGnrZ^|9-p+U^C`hb~=l^4wl= zHT$JtY-vF?>nbh-OpcoCh}$Q4D-d{}hf1(QMWlp(;HK|cu{Hf9q4IhkVgkVX0TVGB zz;gEuEQ6ChHtnRAKh~_9_q|rdKXU;B9nW^ca2v74jR9M~H{P9zeW17LZc{no{5|jf z#V-k(U&cEwu8)rAY<(pLP@i3xso&Zh34gUc9SzJy^(_^mCFYF$MYxwF!y-9bQ~!N* zU)8xN*(mSCs$es~2Opry8&w(vtjm=#JV@YUtGdx-x1WJLj+e8^T4d#l%Rx*{DnxD==YlaQI%k{ly zu)%qKON;~xpJbo_f{dR%+*ng;U#f@$pPEea6b~*D@`5M0^_-)^pv8C4#L)JW;0e42 z9F*REu$>O$=@-Sd z?1jHrpL}$Uvl=r?bHWvFBjbh-j9Q->2pR$?JrDm_Q#64>$5+3PbvTKLi7P;0>nsOA zYd9U0GCYcFe6v+U?}33147u793A3t)dxA8*CApDK#h_-Lw0|e9$i(1+K0bCS!gOSq zRW$}i#ASd5PIhSmbcqgPp2#?2c-*|WBWE_(!rIHX;8zWwsW*l4GDaTTsla2|fUUZ3 z^d90kfQRDzwXI4`=_kD7?)57Gdp4V_KW&1b7)EnU6QCJU-=n&mYG}3cpYknwE&p#9 zVE$*(x;?2yFSFMnXy2_q)2MmatNpc)a$4$i8U^1X( zqkOxR#N%~f*Z2{WZaZ9&KRCN#km`PsgiZRerRgjj#=Uttd7XV+v}U$3l5nSFEQ8_% ztA3siT0-n{&Q^XC-v5f|F&)ZlX;gGH=PEzJHvJ=VX5xS_0J1jtY}L?5VWzU8hf5e9 zdTWZjX&z`8ymHaShq1-HRr!g^ovu+Ar7sB;rr7SJJ|rKf)(DQm)uW35zn5Z#^NwQ^ zW82G}wsWTiqRLnQJ=s~yYt*N_h)1s$+Bar&BGS6->0SH%soUdXE~B{9nAgc%efg(e z&OM<{=5b`@X28TMl~a2H*96{}Vgv7HX6 zl*#v(Uik3^cG1y!<2etui-gTLFue~a~$u(*>)MP~jRiYYt5FuLs z%SRzz=kSyGQt|Fo201_(lJCwchpOj>J5%3zxve)(MsO=WmQyQguc+iBpF8HSA1HlE zSVdsYDF?kyTJ7&4Zog-|p?lY8S3MP!Fw)m-*M$0TD)u*KXxkn=F*Z9ye0Hg&jJo_d z=zUn-KFR@rra}@_Dd70E4O3|X9l0)`L49Q;gzmL@Z1O$EIROJf*58w^ts~FhdhTz( zy_eSfmXKimbHr@C8yKSZ&k)F$XyS8k+Irz>_Wlb#HQqPUSZ7T)Hwly}oNYqvkTKzNZYF|NFHejaqqM!)JUl=YH~I7CQcwYQ%u!I?QQhT+0q ztNp)Rg?%L>?L0j13(hkV4^14={f)tq#NeawHi}xZ@lN&2BBQ4RBk*$IgybgHLiIhIlXiJWJPmGcqUr!am)~=)US0 zVv;|@=Xp)lC{{IeRWLP`$`6y$dN2~2bgS4VmhF&={m@RI7eTXr)hgFqEmiu5+QH_u ztSoROIhI}CId_&CB*dwV_n9Q7yuE&but&E1DR1F66CfEaC85CLl-+hu)bNB2lJR=p z>TxvUc}!LCRX_%sa4ZEl7-sI@D@EF}yDr_+A||mkb&W>x3T~FD64i5mQ~i5F^Vp6< zs+=x3d{`wr25&1b(H}s;f@SvMeHq@Oq5@i=6RxbZ|3Fl@m@*g~pq6dT?0{~N*$5Ua zR~Da9*`JqxH-zL22FXGseHCva%TJJ)F9(^)9C-uQpmM4X%zzc#|h z9Of)a-L@VOkP&m+oBnOycrZ8Y0k*d*tBOv?Oh(7T*nf7b*8ExTYn;flWpcYBTiEU` zP0TsIC_LQi#tNV%gm}8>IRmS)>@KBupCd9k5ACzkdN#WiBmA`S9#(o%;E6=(1rn9) zy1p6XMdbSeyzhBxo=(xmo1<-oNzgLLv>10~uo)mXqAEBNGZIAS5zW`?e1i2GN0Frh zu0p5fTTZoppbhSKKA6^!)05#XVp@eL?5l=O1P?&#y^P|?_ZaI!(k1e7UCN!#HlPoZZ5io!Afs&F|826~Wpq-v zA$Q43Q+JD`YhmX@&Y#NP=E}NqCL5+_4y`Lu{aMDn>h0fDU3(07Jj@vj9pE31qh1P4 zyBw53^C3NbJfXFJDyXc{`nQ*k3-xFx`KPSx1huA6-C4)PtpUD9UiW^&lvj8HxpFEt zatjxWO^e&C==3xJ2#rUNRK~>sh2`H~Z+7i^o6ClmX#a3~p7)H0g_lZBwP4y(No4i& z78P}o@LE~T(jy_e%<8&G#Wp3!oN4)*M$fSrrO7ahLc)O7F-%prl!mu7(z@ZntLQwT zlA3x8$$VC6X5tvzh!@I%Nl`-&S42BRZG~51V&PsVm^K1-v4Zm@+xV$0^BaF)P2ZY) zUwr=JV`gH_T`&1ENeG`yT}4_*Lgj1rWWJHUB)jg$-C}i$Rc_n5k$vSG>mD3^nCT`n zzH0H)#cEfgkWI6YEsDKonpT#T6R{-N&XKP!Na~ZE^d|ZPy&d->eQ0($=PSRB7<%*{ z%D%xbc=63fzZ$7SqPZid5fT-*?isJcU*T|z+@qsT+ zHtPD!<(oClPG^=sa_E%}et;pXLnfKW+ybF;9MVm8)H@yHn@NiFuf}J{B4I+bc%;Mp zx7=QOSZ42w(NC6B?}Hv|iHtWKZB)0{LnAm+qGBGKAN9C6L~PTC>!_lC?14M=iwhI} zpDNzEQkEHmKmn#W&$XfHp(U-2T*bBd63+*v3Aws?l6m!*2wUM;a<^b%NNlCE5e5g1 z3IyDaxne;m7l#G6>SexK?js@EQ`u=r!$|vUCdt>{jSmYi2!FJv6EBS!kSb!Urt$K z&M{jU_MUWi(T^(Z8v5;CsvvTL{6-gd5|OJ(HZ!2GRy-d9<}_*Y-e1V~@?JKOW%AUm zT_K;FwMXyA_l4AJj#7)Ax>hwq`vQ>8nl+2(Qhk4ztBa~tK7WS@n-Z8dBu`(sEem%% zV54@9HDV9!{HzT?*Btw_)?!+{+L^W>S9s&6Ea2 z1O@%q_XcDj2cwY8AN~;C_L#m;tI-2-42bZF_k{)he9d|E6SrMl!W`?lsO%c&bmq!a>hIDh#f|BbW9%#u7x^&!{e%)~2kyilsj>}COQ;fe<)*A@k59kU4 zRPv?r+pf{s)GHCX{5-kor@YRCqUWVX`SkQoDDQ=5G{>{fVH0

I(Idhv%$sJhvt+ZTN;Y_9d?m{z;kK7 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 literal 0 HcmV?d00001 diff --git a/macos/Assets.xcassets/AppIcon.appiconset/Ghostty_256x256x32 4.png b/macos/Assets.xcassets/AppIcon.appiconset/Ghostty_256x256x32 4.png new file mode 100644 index 0000000000000000000000000000000000000000..608ba84b02f8d1215bb3daffc889be1fc5ed4ee7 GIT binary patch literal 20136 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

I(Idhv%$sJhvt+ZTN;Y_9d?m{z;kK7 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 literal 0 HcmV?d00001 diff --git a/macos/Assets.xcassets/AppIcon.appiconset/Ghostty_256x256x32 5.png b/macos/Assets.xcassets/AppIcon.appiconset/Ghostty_256x256x32 5.png new file mode 100644 index 0000000000000000000000000000000000000000..608ba84b02f8d1215bb3daffc889be1fc5ed4ee7 GIT binary patch literal 20136 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

I(Idhv%$sJhvt+ZTN;Y_9d?m{z;kK7 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 literal 0 HcmV?d00001 diff --git a/macos/Assets.xcassets/AppIcon.appiconset/Ghostty_256x256x32 6.png b/macos/Assets.xcassets/AppIcon.appiconset/Ghostty_256x256x32 6.png new file mode 100644 index 0000000000000000000000000000000000000000..608ba84b02f8d1215bb3daffc889be1fc5ed4ee7 GIT binary patch literal 20136 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

I(Idhv%$sJhvt+ZTN;Y_9d?m{z;kK7 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 literal 0 HcmV?d00001 diff --git a/macos/Assets.xcassets/AppIcon.appiconset/Ghostty_256x256x32.png b/macos/Assets.xcassets/AppIcon.appiconset/Ghostty_256x256x32.png new file mode 100644 index 0000000000000000000000000000000000000000..608ba84b02f8d1215bb3daffc889be1fc5ed4ee7 GIT binary patch literal 20136 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

I(Idhv%$sJhvt+ZTN;Y_9d?m{z;kK7 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 literal 0 HcmV?d00001 diff --git a/macos/Assets.xcassets/AppIcon.appiconset/Ghostty_512x512x32 1.png b/macos/Assets.xcassets/AppIcon.appiconset/Ghostty_512x512x32 1.png new file mode 100644 index 0000000000000000000000000000000000000000..2f89c3876a9e7158cb9250d215ede5544ebae638 GIT binary patch literal 46456 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

u{&x!tU`@^pN+^1Wj4&wWX1qSI#) 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 EALT;q6aWAK literal 0 HcmV?d00001 diff --git a/macos/Assets.xcassets/AppIcon.appiconset/Ghostty_512x512x32 2.png b/macos/Assets.xcassets/AppIcon.appiconset/Ghostty_512x512x32 2.png new file mode 100644 index 0000000000000000000000000000000000000000..2f89c3876a9e7158cb9250d215ede5544ebae638 GIT binary patch literal 46456 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

u{&x!tU`@^pN+^1Wj4&wWX1qSI#) zW`v+^8Iv=rKP&A#k1~V>?krL*9XWLk?+fA|(v0{q1{mt|=d(V*6o=D%G8g9M@BbsZ z>#TpfWD)kBj2oqa*{;K0Q|x3d*%qGpz3rQ~-qP+QqMsG-&@k;muG}yt{`8sF+^NT? z!qG?wjR)yYs=YgItN?*_-P&m!V$sZ^iuoNQMBr-me%+Jod*Z1iMJr=q_tV(w%~LXl z15QB^rq^zI77{4)| z+?9-kohiQ|FyYx4az%h9%@xjx!_3gRK~yZ04hyjYgbrb7{k0KkQI0M*^@Y1PfI#o+*VJpOV&aq7UNQ%QY&nh?Xp;clewH9Jq)kv2ehrcTa_*1&BP#oN7&V+x!>hq*z|uH& z%6o0s8>a*@-Rr+gI|-tBKe6)BS(FPU$E@ejrW+akuj#q7E5=b|VD^M1fOOXCnutY* zNx)i*1#J_r{&QN)DA&>YJ$!0ZBhl%rIyW3kmGJ)iN8c$XXDpGo{BPGr-p7AWXY6^y zz*ZG0bo|1DxG&_Hm4T^?;EC@PHpA`wCx`s=K zoZd-ZlvQvv44Z@iyuaN=@8$vj&@|N zEAnWUT*z56L`0qjeCrDU#hHOLgBiM}VC~MV+*sU&_B`R*TPd?-D>Rzu`u6YVTir?Ho+Oh?+yf6hO)=WAm8 zvQdNE=sW)Wrh=$eAozAR9bP9(w9v~LGy3w96jF6C3D+bAI#nHMd{}STqG<*SFRmK>Er9oHG{AIf~(r@RAns#s2587~c;D1QB-0_|jI64$CNr1{d-Am)tuNu<{jg~M&-W(2LchDSKrz1M z+qBBpR@_B*2%l2s3tq@yx-?PMnkF}2fE5A{Y>rh0l6fBlGMrmLsGSNz-78swc)IpZ z5+9AN$Xd(L>&_yhANDN5UrWh)6Yc~}NH+b~DI4KQzG-3S;ODNq^*?UA3&DEtfnKa` z2%8^@&;)=^+3TwCrp&Heqb6tt9wYe>3=!MWdA*qBidMP3js?>%XX`a4q7}KKyZtpv zqTImC1)4CI$EY>wQeNJG5w=*SY zjat4z21tLKboehaPt^YYDP}QyQWnv0EGFwu+KBr2#L7WbIUjjwL-TYRrSeY~;+Q!w zi&zd*bd|mIs~;_Q2wWE6OT9!SZZ#2+TX8r;bQlj;%yO+DeAG5=JZORZnpNRuKYaRl zlwh6m*q3GKghFGqn3?WFXM>%u0%hQx!0$@j&Fx8K51nh*@c$aZnn^VO4MkrhQ}hq} zhWT3L?e*?ac}UV1e+!fg`ySEGp?x)8aI0qdsYIyZrhoSb=z+n@fP)6APrj|ag45N@ zstIxp29JdZ+`^Qcv|631ss^bYWZDj*Mr4D8K-s7g$v*4d|M-C!loM5^tUpm!m7_GW zc7J@Gyq+NcvLFPlbqWR@JOfG;<3`T#Py#lm{?Ty2o-}_OqvvXoz)6SlLq&0EvWH5X-z34B5ZJA$KO{AQ1j|E&YWn>Df9!ZnaQ0?1F-v)>zebH-YjXWZd z8|NA*-_&?!-p>m!wbi%g5d2!YqxTX#l=LL@zrNibb7LOL(^#yR5Gq#tBcPs85PEtt z_myjP8_o*s+_VonDzGK6Nidt=_Bedq6-3yNcq_87oN8}-OMetXd54W69b~}HO4`jX z5Z!f+>VM8meHZPAWd3;1p#kX@3l*S@)qXhczvXhS7aq*W1_F>RavwbXFfN~E!=jv* z3Cv%P#`p*AVTJk`-6%?wE$1ggX@O@l^zaSV-SZRvDUB=RgVm%$vpJQE@UEiuzdz3t zXl|QPCCL7HODq*~+cS~pXbKT4-11ldesT_1su_`NZ(oWV-^}Dkg~f8eXibsn2Y(RZ z)T+8@n@%vZ16}Y89Wwu(o<)9+omZCbqVhkJK*$V@xtga*r_UW2?Lt=(IO)t#HhM7G zg4)38!SYBp72yZ}RMx`o{d1B_4OqpDNwONPoMd4KQQLXRUc$9XX-fI zGY^Zbv9OYeZSYEpY6P89h&K@CQgg^_EUel)-N=>u_&Vc{nM|?rbySjt7LS?w^tymC z2BEi{wGlv2LrXZ*>{3Tan@_JTid0U?74|PY?JuGwa#+$s+y4x?s3KvhnR~Oio%*r- zPlwTKL2+?L#@b{i&lXQmPI+ z_?>?7RNcld`<}>i3$|JO@YA}I4_t1g;Ze&ZWs~+ud;y}iHg@K<`>efJ{*t?QRAV2E zad8Xk)vTY8tVBr}_nL!~?16z*P}?G;jE2Jag~ewu5o`78tX+RntO&Qpd&!`jg`ZgB ziH5~n6ZIP`B?NelV8?`*atWK$-x-3?MDtPU+R`OoN{&ZZfqCdj&RQZYBx47$9O>9P z_&w4QV!*Q2c*f86xSw*+66TQwO9P|mgkU^}H3K_$>o-+)5uEgu&kQl)QH`K2g)5`S zL(4qHhtHe8br!1;LHJyl&%Da@w&RccnnTCpgI^8Tq@?f!zJRHv=F_JDGo?k|REA+Ny*LA>Ew7NO+Hk6}z<(&m}=Q z$b$9WU!gTtf*m1yXycNtL-&%9Hx}o{TM&ZoU6u^t_%NEXy9%voL$Axlyd9N*oUbFT zc%S3=|GxZIqaVe1u3w6H$p_a9@67aZpXAMQUoKoZFD=;7{5EZ;009W_j{2v~{hq}Y9KwDHMyqx(a=ps#O^W_Meq zry+2B(7hgl+fVv9ETcfo@1eM|{ZS!dm(OGVxIt66&;F0Q-Wwy1w(gMqv|zpU@RH!>rf~AIGC$|DzG|jW4c4_W@^YK_JH?c3V$E|G1uqcxdB?v zBK$RF9I#e7u9F;`>I;RnV4vhp4>^mqf5F;QRUgEb)o$n+K@10NFT+X%}mX@IO7%cuODiJ59d$$>6Mz6nYT!SrDoXQQor zN$I5NC2h8)?CJ0;PIKtCXsMfL7Of;R=~7q#x7_dZpBJNKsm4m=;p=Kj2v1$}jeY`l zCjFnYHLW>Gi(UH5sALE)|8*u9gSrBibr2>!8^9Ll+#W$M_k0j)WQIqR)Ua%x@rAGt zni%nTm#6jK5Ydw)yb#QyLfV*P^9`gaDimX53KJBT5x zyB5zy_5YJZi6Fl^gSm&I@WAy|@y*zj#6wg{E>FPBgX&q2sSk`gAOkAbIuCWc4XJbi}lxC7K`1ep!q z@6uBwxD<8#&n|$}B^|)`)#nXbfr4>MC3gGlBUoJSF$YRK_r#biYQ{mx>Qt)wbeDf? zwDuO{5ol)80jX2nqZ#}Sv`zB4W(#}(S&a;$o`gNuVV8OJ6ebMcCu7~XxG9MHkVfmM z&(%MZj5&LGRR^vn70mUyB9{&I6c;D)H4>A^$F!5%(!VN;-8erUZU6@`&=xSq4V1{% zdHPLN`f6BM5AR8mTigl@Bd)x>{J7bX=lJq=&rjP3bq?9|kO1}mHk9YMdS6;gY0$pgzb zQCj_JF?CP$!Rw@g0dX4TB4;9rW5w-nVzmdg_?3vbX-9rxOt`?iSPfWvAyxqK9G`37 zs_80Pe^Q5w#@j4D?39^5Qo^6F3Q300*N!Ibf;zh*$qP_Qg~+?KlMqPY>W>$AkZ3mR zT9Igvj(erjy*(pQChWXK0}lD^@~vx$?ifuD5I|gcV=b^5|7n7YFWR~0)M&sySR%|q zn_b$T%sC4m=AGcB>w~3!DND?{fhA|BTM>W`fzz>r-*L&a){ff_mmX9UfE7RL$9t&) zoRnxV{rI^Zgc`8D#S2)cdJU`%T3Nc>4+VlE9BS*LA1ZKn^#+uc#PzrhZB;3kUvyDZ z1dre2mwUb7dt_!$d|6NR`&c^d=>iuLSmr~`Ay+ot_?97fBRgX3*}cxi#LRxXeXBX{ zmD=hc1=eCSm{n+f3TNPo{+AmE@YRr^qeAi7-y0J0N8kmU0cDH<{>56Uqr$d-*4(Q( zJd!z1>1j))CyCpt=MTKPa!D2io_NIuidWcBYGmqQM`~WuF4l+rzWsI5oJrT@Z!KlH zG(}G@vAf!U+=ha#NlnF}-(P3DN$J?0uNt_MqLC0fmbH&We!+MUO^;9w{^8h+GOo=b zIIJiO2K}yhHEx%Ytxuk7=oy(FK3)EUEK#_mMVEKetV(X{0IRWZO|j%%8u(m&CM|_z zp>R{RRy_p~oa*}c3%x&$zcd<1tr@1ceE|d9 zqF-zg9suVTPn(~!-?lLi*cR?VRvdCUPDY`GnmIb)x+%F)7C8V@9`cDS$BTwaU3P0r zRBb?36svWZqn&HK*%B_`t)vvAr;Rxw?VE2KgQw}_! z!Njq2_J9P0T^YOw5Je*D6cOO0=`hg{W+Y5x}@sUAt_64JE`9c1Ir)x@a-Yz0(az859p3d}*iJ*P;Rpu;yTh}a3GllqqJ1F~XPt(?UJ9=PP zR%WZ~LX>X$+@H@jTez7dutW|6UO#>{bVSTwiw9_Zv z3lncue$}qbr9iX)GQ7KI*-&)L6Mz(JByu}BpWm_GAwhsTi@w;I)>JKJ4ZYSSIIEDb zSai2#ay|#C-C-sC;GDAd-fK=w{`2iyi<((`LXRf7->kSbNA?R5B+kLMt)^WpHh&EN zdYO`yZ1hl6jIJkQ%#`G4pS%kEs$p!77MqC{lcE##3;Vkb`ph2i~Q{h54 z&QHH9;9ss|$$;2C_Nr%%e%sIOm^K=TNONt_rOWE{z^^kS(PxF;Z&ZUgC_Z;+2ag!s zzJVLq_89#%T5TeWcrMsJMO=Q7Eu2{!R?$n--@fD#BHo?ApM~8ZAjFQ_XeR-K8tV4MIw>7%dUDo=rD-6pWZ9JrG|x#dweE`EOWF z!DbKTxO5$nS8R#^v_5^Vp?_pO7!xhE-9RMF32kza^;zGc{Tk0Jg};ysqZZ&3Cjyw? zaN!qxL@ZwFX1QI@yV2s`-pdvRmE_xIF;~4*qjfd$Tq^%tayG_YYfndiDCSr4;v+d3p(R8hTOMXNkLC#3F@%o$UtaH^68*(wvo17w zG$zJ)P}to`dt%NI^+w?;fsB=4*}wgFwbB+lh2Xtz5PKN4fPVz2lVKl0@Veo{LH^K9 zm?4*&8veE>prDI^1lV|W=k254Jp!Bok8xTxOW+*ZDo?-oK|faKKAU-g%<<1hvK>Qu zUnleKx)dOo`#Vx(o_a=s7~8dIeL5xeo8qdwSwxmAU9IG}ler0dkG*GY&L%p{p7?(J zTZ}+;?hp5Tsr@3xznETh+u7HZ1HHLHWtaiB-Hf61K2X7(K!zs=*f1?WrQ&KE!$;Pz zPTlZ|4?9=2-eeLqSyp8Gv?*ZurggZ0+B_(UIgN^?Cgf>PBB)pQKnSj(n~mPhn>Jkj z#%Fbp&+Xe7N#lMJ&Q$OEJF0dj%_mt4oSha)sb8BU0M^HOhI;6pu?j7a-&1!1a|;*m z1oloB*Pzgg4xK#A;@8DdMjU)HAR!tz3<>y-J4p}JMJu6eU^KiHG36?)-x|ai-zrhT zQ{MzVTpTR;!B4|p>s4zJwbYWjfur%t)yo(gBd(a#Uj8DBervLJ38qpV-Zu#wcB^6F z-l0CtN-V72;E%!3t&8rg)}L(76GS_swSulv+%rse)kuS)qx7=(0i`C@z(?)ag2_O@ zGbswB>}pR1bYRx|r89b#UwUVq-tq7X$e|#DYlrgK!rpiZh^~nK$i3y%fE--o?jCH7MLaiO9|!= z*tw@N8m7WM5d37Dp=G1|bVhqK0hF___<~oDSi}Rm`a01pns!osguTn7W5{cAc@TAe ze~7~?d?d$;C+;&GU5w36E0`N{McO$YwPPbGhcjxz;v2laUdg|9PJM8;Oqid_9sl-? z&&o|fkv5+v)9R>YbA6qG1Te)sI97X1J85~+jk=hh`XsoVCrST|(iibtCAynmLM2q9FS{p>tPoUGE+6 zk97MyR8Vpix0~3$VJxXsnM^9p&#D~>oT6dW0=C{EWas?_8^`sWN-H3~^JRj2$_bTl z_6yZ?`?m?4or_GqZ+nS<$xQ5YNCrdPw*ubSf85(?=9RjtG)(1sXk-!?&ajt6rNcHQ zJ|$n+R;BtziBmwowEX$_3l@wKu#O>4HNOvs3WPtBp)5D~e;T@O(w(L)yC}Tsz>lcv z#RLy%fX9r7YPxA;I?52vUH+i9H9bEi!#vnj2#Hju_)2bc_7!WQr=D;Br==3P>QddF zA1KV~pozEd9XbI|N+0-iie0A$W~CqZScN?k{cird#~22fznV**qXSZ8g6_OFREY-m zjAUg3@u9-}bbHI>lxeePE~w9G%&v==if29v zPt4zR+E_IH$FptN)Hr!n?{5*prqh1aZ0{v;dJf4#S?RL0b)(q*dhJLmmO#cI{nRU zLrEc^a}3n4>dKzK->_)Z5_<+8yqzypzRpQG#Kjq`x!?Cm#7pD( z3KuW{ig?xtFMd|f@2fG$wf?8Or!>2E1>YUob9I&bSVJi?uwFP`nyR>y@_K zqfaZZ{2)@89>oRk?ylQ^!4WTsg~DeC4mFhPH-ur`SZ~f1ceo$xsQf;GXBN~nY-V$t zbZWnmYIKr$rf`OfnsK0IO!3cekwNd@ovd_3#lovT>zPT!TlHtyImM&PMVhy)1<1fk zQzFoHTNcRAs5Y^%D7%na*xO+du$IHt<3tWf!+blcag-RGgMV+?{g=Ztl)vys^Xlk^ z!lf1Mxwjx)(cu?j=T=-*v(}WglQrG}<1-@XEph%NG>PQ}R_UKFYz`GXUdZ+f9&zm` zMd^a&q`#Iz~X za)<*H3MKW!@48Rf?0*d4lYp6xam_sPh<41VN}EWtg7u{SD)d9`vQ@bE2A)^=;|ARV z+H@R$-1CwhF}2LmVVB|7MQ-b|b0MdK&8`gu;uEWAJ&Q6QTT2Ov!$LAFDFB)~Qb>&T-@+Z%I^1oJiwd zE3pmH4@+D2z{(BMK5Ojn2g8a2fZD!4?)Z|jGVgbebie^!I1k^sX{Q2^Wp(^%1JODN zPkrPy@+F>k7W6l_C1RM;rNr-}*q+zf?Tvi-h`Sayb8EWpg@3LL8o6Ot8u zXJ*X(F5?ps{<8(SetkXmhv-L3rFsOr0(^KvJyVeFj*KIBjhTZNm)QVjgN_M&ot;%b z?0$j-m`^*yR1gKeJoa52F!%ZK!Yq3u(3-pK5?vv29zgruDcMjeYjYHFPlUpJv>=F^ zSoZBWEj3C5qc$*>|8wwP()T^M=pGLa7bvc6@@|d-DOZvZ1ODJoKie?st5w&&6>C1O z#g~fP+QxR0fP?INcF2K?hL+X{Ii{sQoROe_X_*fHfH?;{b1v*36mzt51#Q5~{Whps zKwKXVR&&VeylU9$(JsOAwO&1-n@{F~0ozRlzO@+KQOr4(tWkT^+c-0Y=2*?T@f451 zpV)X$gUM&tWcodZkNU_7IUXHFWt93@YS)&d{jvfQg&Sl`cK9BWvMWl*DC`u>J=f5$ z!R6<>LRu6T@h668zVDDR+JzPPu9^T??_vL(Md(^HtWZaD`v;PMlmkB4>wnIpbQ$(B zl7+Hliao63b$Y* zHw*_ut1QuMR2uCHrzk{+xilDqktIu-)aBwXBlNDzcHEBV@JsHq6#TeI%xKbgUTTqHm*YM1O+rt>*QP~y|#rGRQUANf1h&z?E^Y8?V8LY6+E#S z#_tzsMzYyBZNHa|{g~N{6Km65$+YjhpgX;}nzK)-Iq7H@vQ4-jeB&n=czkR) zclCofd3r(oYA5l&AC1!5VW+gs`%o%4fy)c(b5~_uV)AI;Jb6&4;WD&;Lx9}w z_&s5Pe)sBU1y;mqgK)WaLd2Y1K4ZAn>}ExBks%Jn#tR*Ql#Db z$p4P9PcFPctqoN~#kSp1^$W7Do00)`NoEpf({M}}oy>9W8$4d{Hg{uy@YJ!7} zO+KUmtJJbq+4(SyP$r|@&mXq_tL6)K9UYO}5;^A-@+Tbh-yg=4t*KZD@Ry3mGPdVy0EwGv7H6l=YY9iIk1k03y{+*( zhJ6PN1&6`&7yWK~XFG}UQlH7W76&Z?5+@TKXvH+aP(n+>g6C>+ho2+1A-`dHsfFn` zFBGgn=RISwsycXaRI@z@I@y1;sqn1MH?K$eDOL`29Ic`@XR@4IXOBy z;-vsO?}(8fa0-r9nMWBFAnKR%eE%LxKdUWya&5hhn)dKl{SF&kxU(=Q5_&!zY3@DP zQ?y9wa7n$do29#S78pa?@pIaU1bnTdl&_AUUr;MqPx$@CR4}s1- z!~qvveY-SJ=L0VU2%>IoZhnSXNqHCMEbv`9b$c`SQm4AqkAF7ackjXyLN041>(b|U zcO83jh}a}7^!o$eg!i!6cLADA! zRf%dPi3&xf_?N|x!nm==JT&Z0@jYgES}rSIm~3&TPFMvjc6c?~&LISW)iv>SVz+jQ zb3aPo#F#e9jQD(h^mjbcO8N_>A=!hi0L7ygMI&D%Lx{KU;MXbxEf7NO~*aR zv>6Z<%3kox0X8w2@YNOP{o%A!M}&`@dp1`A`*&lSRk81~6siQ7KZDYRaPFKw3ZAI@ zF&w_OvDy@k-L~S5%;T8-^eZfq%;Fe7CwI-&Q$m4Ih@_HJYQ!|2D+~VffYgGy`bwnT z%cFY)YYcS)d#6PJNx2j?V0&8*kaho^5&nQ3(_(CgZHpygpdX4vYHYmlK`<9X;}R- zy&|z>r5n$wWz~6--$DRZdR3d-0@OqVwfDj$`*6ahuJc~^55DM42<`3`40;}`P_s8-R?+bbj&Ls;vAR@QM^#|-JIZ?c{30Hc#uy7w3xc`ry6$Z;6il&UV-^$4$!uKwgU zZG?qBjF7OFDR-L|)AQ$V@hh|$)5Se*5n=^M#ZiH@syr)1jXvm#kuJd+%-YwG77}~I z_03~J$|K)(rR6srf!e@lgCj)uwMcCzC`0&aKg|B2e$EJjhkc==XQen-797)00cCU# zBr$3(*Oh`glWbD`N+q4T98<|b3Xb!~QYDt{?kTG$++YN5JdvDc(7z>8htK0vQ*seo z@9t|{JAc4B*Wj#Em}gv~TxevE^-4Dt7$p>}$a%-E+yw2B;nFfjpOyo zVbyTL)sM_b1&tbqDbk#Cie<=A<*nMac@;0&vXGDfwA2GzSb1vi*$eOHmss?9H}@5p zONlA29sGm@DvosKGWsI$6nEL#^X@1^Wscr_4k+&MrLial>%Gm033E@7EngP;lg~ z=s|1!|MJi2gdD!gL)*e*nO5}XJDka4lx=8AqyrdBD;={jIf(U+l_|ZnN+wV?D zC(ZL)@_-E^#9R(W*>NN2;J3&?B?e_L{ie%L)XBj!<{6LTaAo7%8nsB9xZwh9pFA$= zl|l$dM**uIxT{y~%`Z%Y3xRvzuFEmD=j-2P*5Q%4+iPXKmodRRxc0F`l789ieX+%4%-6Nl{bkv=J{t9aE*;AvdJt~+crl@w%lIp>n zl`Kn=Bj8yQ1ya6CLJXWLuCHd?6|wk(TA_+5zehW1Kn7^7Kt|I2V5V#D#QToEiv>x) zsRP%@4?NHie|c=Wko`kQra1uvZ?T61_{MzT0iFEXM(A?L!vyBxH zu(g3h2w3gWDp7~fc#gRjYBGH7jDv1O{wVIUS1k$GwlSHJiNVnEAoj7JIW^h;V~qx` zBx+Ii-2oV9YJrtoG{o@P0S4f%*_Y;7A619%--uT}ii(aI7v9o5!AJ*apuZbV4tV$s zbDjISXAj!US4z-%Dq4IxS_5)0bDtLSQEY@=tkOFHki;A&$@z1$F>Gm-(A-1zKf3@v zV*1#w?@MdB^%}{W5;C)wK0w0f1tqd%N95@V`qf(`7tR&EfjT}@K=joEeSgO1QqvcNo(K@N~F+lhRNkIyxOnnd5pv&PE9{Xln7#yh``> zB)|?6wIcBJ*;C`Xn1{|44@w#+AGnH+Rhh@~0OKO3VVqi>h2EEfRdna4f#h4aV88Mv zM7oo4e?U+BfBeSrOvH`lT0E+5#oxvoE8z-T!lZAH-msGitlsm)3=t~pAEt;P?wOo| zecO07LbbQ{myw*&rQwXud)UjQNV+Yx{6f%!JLrnO;4adhlMTwdt2@#KxVrlUOLVEZ zuv&S|zdbKKQ@ns{T_()4h|H53*dpoz;O#M9-9r)gn3it5&Y%nU-IgdD&o#uBj~ zQ;#9$JBjk`NIYv5g~palIuC_7$^H+{qyTfYa{(7>k(~_qlEMo-HGXR0_V@$4Xn93~ z0B~TUncjVW$f3Ui_V$xv5b9gD{d(n-JxvoO(m>8r^0<>W0q> zaPW`Y&RcBqQ7H$p{A1j}=DVgQ;@1xeWoRkM_#Gn)0#5}J@bTOTqY;N zY2AN4QX#usvb++m8h_4WJ1^SbkBCoceJ>XfYb9YCwLvGM_3Eqx|flkS2L3K-e=d6X02+Juc7JCcVN z2+zn*9=AD+jMu6Ffgw%WE4kqc)$T4N0kD`P>D0a#kAG?W$E?Za04+_|2VN z;?Xf8l~Pv)$dcSM3*VF=+;^T3;HF8;s&i!T?DK;$oYU)_UYp?M8kY{xH7rPqaT;&| zcVvzM4l-!tre}`ts;!|wVP!>AJICo{tz!#1($2jNm(Xs;(%}_deh=pz$XCH8AWZwT zQsy(vBDARuKTR(9ZqK#DAyIZekmlR%_wYZ`xw`(Oo6lPv7z`z1$OD+%NvwE>YBmTl zmMCe?zT{P|%N%7i{~_BDds~prO9+@lFS;8`BgwF@=8R zXQN#EJ7hNq==ozi)|<~j#PoSm!0(g}acYF+-E8uQ^=NJI?w95A zWyi!wGA9?XAfW*T)FUb)t&GcrNIa+pC}GB08+ZMXWb{D8CH&h^nq^KgY)@BRt;KQp z6uP{9+5`1ybfLJTx!T!VjrHSe86%SC*Da0nK%4RQMjG0SMSF>&wGgQt0CV@QCV$v& zvPXl&lL_sln~xc?{GG##_LmH;o&E~r^ZTKA;l({x>}AM(=GQrJ$J6SUvJ4Kl5*s?* zFJX4SriRj$18%VdH1D90iZk9xfZfp0=fvRwpnTF*!;qN>M92VTCRh6O^ zQ?l-x2{+uKNOw1|Om_sd)^Q$tK|Tk7Ppx(da9j6VyD=mrD}EaQ1TWrrAZo(A>h2?M zh~0_@9u+(=#E?8*dW9c0?kQ*Yn%oVq63bS=eF=U4!*O^q&<1^)swMTus>(BFY3+Ry zy+=r~Ph+l-70~6rmruY$K#;l4vuALh68Ar^9mxVnywC?br3P$(B9lU)As&RMRpCK1 zcfP@b2R5%g3p~9ZCE%%*KS9B6R(idOZLV|<(Z5ydTv;v~7;oG5?3=VVaG*FYinGQS&9fG~ora+s89VQi{Da5cJ0 z{c4DO((T3>vW6iBru0%X*QKe*7{=o<94{2((#h@t4NX+{PYeh_HGhqW=hcu1$@+{G zHSa)r77xsc`SEE162y7y$$S2^WOrAe$HDGC~k$)i>g7;0B`S^=Q5_rGHU zw3E7xAsHOMI;Sa)pT~s;`o;{y?c_~k=CJXoZ;<}>@9XpZyfzX!l#e5roK>LA^Gsl= zSFrOVnm7;C%c_k>Z^kQkyJ;J=M#mWt0ki@iA;92VzIGgHjd}Qj=a~CdsV-mnfukIN zk8iN|afqo=(5E@>8jGAk{Lg-TsRHSZ=5g^pHS1C4zKdxou&76F?m?A`)dY3BpA8=x zTu=pPF>W1rO!Ej?^2|I0WrcD|Z|=f1EJ-=o$<6Q>OmzxOv5RGceIW)6$fxPD_>x&# zfozWiPas=Q41&liZMr3vUw=>)cU{LWKI{c8n`OE1!tlv5$Qt*xas9KFxuR&fg{xmQ z3@yXtaUbD>`5|Fi*OxnI&R(Bt&!>ogt9#E1Ea_fdCB3%NPRpd*Vk1SYV<4^n&3KTv~v0@{oy0;r3l*6*PdN_7WDju#!`sRm3m%;Dc!8tOWYfHui(++wwvHYtWRr~2q*q0q zkC{B*aQ?Fw-#0{@-W_hK+q3ila< ztoiTuutz~6g&Kdb2=<6V_T&qdo2uo-_OyltOy?XmwOR8aI>zeXUEW-X3aa`l(W=!U zNG)3E$_SdK9svq;WMwzA)E|$4^=Y{kzl8%-+Pt*(bHC zLxGl;MBr#Y60Xtx*Q2$VoRU)_d3NIIHJWa-&L8?yS+$|=J_pTN(CQwPBbOa2vL(<|Bt;vTedhU|>e zdZkS3jn~ZGf-V99jn}aSMnRuY?q79(qNf5wsEU`~dZ%uSm2%w(_zKlW^pzws{A=_n5r}0sp+r>Wl)cf9&sUowGA-Q7^;<244T12UF}SO7xEuqaZul zMKE02;0ErUx@~^nM_m8b)k>ju9>5}QMKiWC4>3mV3_F-WcyyeQ5e6qw(!Xe8cAYZY zA6;b*{cuu1EWchX8&+nVvfUSbH`Ho-ocADs$2D^|~W(M)yEWnKt_dagq?jKB6!P>;ZNJqfPOPBOQFARYY5B4Yeah6706}43e4%m5=ja|R z@IGpu4S2N8aWWj~Zl^`Mf4u+J9Kgw^0+PUVaUe+V{`X24)?RQ?`t*j!#N+CX(T+@x zJAZ!S;RO(^J)I1YHjBS#rrtfPZd!Uq<7$Y8_TZC{koh+wt<8%c*GpE#>}#ez%hD5Z zGy@zxj9e{J$8{WSbc9|rZTPEzPMH2-MR?6CBfM0;5zSp1G$qm(D1hH)^B}ZW%hdxEydO}X+ zB!0elwfBHh1cMWpxYG&aXc7E+_-UYm1lOBi>woUqESTxPHpSQqaCJEx9#vVuVv)5i z(=5_q=2ywQF5>i}ab0UAb(qi?PnrcXtHtlyn{)Gv5)>Zr)!YxU! zA}YINsZ{2-21D9Lio|s4T@RVP)g61E?~`hY$~|sZ-c|=bucMGlV%t`u33jyPEPBX~ zhvOkSK|wM;Kk=;zDfm?M8Ipw_%M7n3#?Zb*`gX|GqcP&YESC8Ey4$wU!_WVWqf6pV zSc|<9o^Rj3ca6St<6k(@at(V1C_FrU7%1cm0VbX%EOQ98AiORNzp*8kPC&5turgPI zJObx_%1(b5SdrFfmp-Uw0SjkcCYp4lTa4n(Y^rOu8Af*@MLwt2KW|DNt9weczNQ~ zDXJU0eel8Il$=BH9Fj=8tDmSiwnKilijVoX`RopNygc)WZ|cq}0e`9WPb_7nvVVFj zV79<7oU+z&*w;mJXRbJ8r*`2Tx;Vt9KJg5xISc34*|%)pVza7vq*ZL}@aO>pDw+41 z{iC{Azb)mZK=W|tpo6MIWpthrAT&Bj<`)Cfkbsm%;2$Q}SIdB(;2cY!8dw+<2W*43 z9)zWzWAlSinY{peYugxu9Z@W8k;XC{&RNepJH30O%1uR+y>-OMK3X!k?c?t=J+sR- z5igr3l$Om;$5+oA$IqLbm(h)kyQo!biK9J87#ZY2)gfHt2o&%=Q~Tp8qmuXuf>>koc=6-dS7tzvPcE+*%6Y;;d!W#{ zm{-Hs-@WY|J*Z0sD+!~OClwUHt83&Rh}sPG;~UaeD76C1r^Jd?q|fw=g^6WuAtF9@ z;IxZB4>kPE|EVJuITDykJX4cJyYrDIml|+4&j+ zYxnd?S#Pczz~4UU57*S>QsOk)@Ev(2+|u2iN{Q%kW|@T-QoP(8TSI0nO`m7xev-AP z>t_E}i*8Pe5BNso&N2#_pQDey=@O0_l)xE&$7PnkBS6iEt+E6${{D(&00E z+b!tf%q#?pEJglODHDJzs%l&fITR{v>%A3OIW`;RnHRuw=8Xy29qMn2p=UoU(h!l% z@V^yOe(YzXuk8j&rD}4>1Q9;oJ^jN9$@%CsMTtf|afdbgeK%G#%r12Om}oK@m-j=) zC@AeMy+p5#y!oPGVc_&gk>M5@SE+L!YQjobEmJ-}Uat!#X$~=p3L`X8>~wn@Sw4~qZikQK>8z}jWqAOLtQXYHKWTxm6y@jYz%%?P?Wc3TFucoJIo zG?c9-EB_I9kJs{}yQufZe+(nuNclCMG-H~IN7jVwkx8AdK z;5B}U1L>w~gB$ionb{Z!83Ig9PFO-Bgc^Ue2zDWau@>eA#oU+=?s;0vyl~n6b^ZzM z+xL9p?qFZ!)g9faZs6^!?%=+h{yf655f)-xYOxd09+P;fA(7eIKCyl;rPaC3cj@Qy zvvtjPk0hEhO;=J^kH*7^iKg_kxkToBfz-?&aR6$k)5Bua&@SB9u4S566V1>FSo_p5 zdNN%?;nSBM+1vEAUKva3=E{4Jy>BO94l%tbl8GEnx&Wz_NG#eslR2YT=shy9-rkt@6y|j~9@p_Mmr2=WfhKJ_(zZZD`IhoQi3U z4I;}lc|s~vrU{<%u_9D={b^q1{pDL|NOT~_gJ6w3h}}i_66MTkg0^-`^nA>eR()Xe3Yxl|w*UARhhx;Jw5XJ)QPl8oR@ zvHbcBrb1$W$d&eRQuigGx4rejZX_P&Y1nhVv|)TD%1~#DU1^*@-sHp*dpIToqYd76qA@NlHebRr*9HJBgE0SIqUYD;`PjDAbN1$y1eu1BbpZe^ zHPiTY3T~}m`bF#6mYf4)C#*$i_x}rlo>1+%0uz{zu>k9d$^goS0y(O#-gxUf1Tic4 z{QO5GtElSVD}8gr=4>^GOEhnX7)w#K=*!wL;20VoK6kJ4^Mc=R?vQ%QNPF>=@KDP! zEv6yInwJgjFYnrlyYKq`fF(}FdlKZ3O4hBEb<^|gbS(!BV1laRG5V%Xtz62Tv`kDP z2U-%*w?Zc4)b1@0Po3xg{pCfsD06*QUy=QQxiFZhr*pRCp}w8s6NfZi;{yIl$BP5; zf(^0O{(xqXeC#VHv3!`ER0BR#O=B-3YnmF*nVbsL@Hi!08fTZOJkoy{$Yj!lN!+Vz zsTrPUp#?A01tBkK##Rz`r3KS6CX>}>U%?jeCb6sne^}V!hD44LYS|@Hr=>lPjk%P; zX4J@$cfGXi^@9i76kW8cpKfc`wBdSY+;eXiRR4O7SJij9T7-3_HFvC@vm>m(>Cz{U z#ou^!H?B5*4w>gRs$;lL=2fQa4hM*#o3?o4amKf_50e|z7!kMc+KZH+Rgt>@A3T~9 zu$AU}b-t!*W-_ver(pmL(XwfEN8CviZ+>- zmRj{E=~K(fq&xfN!zIXopxv6`g>S%R$+5?EYYSonG-^vg>uuZulF|%iUone}?{p0f zZH>~%8fhOQ_#K;)Ii-wi-kZp%BSZw~+%h~(-UIkgeK{~f_t*&FYy2%fott>;b;@|E z@U8HGdsR9~8c!+n+xQP-#j|vcHG0}yYX25`Vaui8yCeaEySV4lk7wxN;cZEBRCH6j z;wA@=5>O~Gje$uSXAz=W{5Yl5HKF6?9mH#L%|j|OTRWac!P|SNy1fQH@l{AqAG5Uc zgE5-rYjgl?a_8;{i&sTsYisKtBl~6XN594I{hsRERhJHqk4dhlPI7FZ7xkYbkJV{S z)I2_P>h7a(G)=gr0bVa2MEf(;PkQ^nJL|L(sb-zCJ&5o~K=&Ejo7dvEXR66AMXa2c zCC4&i4+&fikL;v=YrKj7t2;}-t^Dx~+yJ?)`jPC3ta)u4Ks~lOdfT)Fnd+C`w>E&R zY}?*70}HJ?3R7~};#}>OD~zoAGEnCA%pP#CU+?5c3mF0k!Q-;n(>@P&9kOg{bG@E4 zPx3rTSuYsTdaCee_II1=5n+lwZ(r6O2HMJjU*#h<)2Z)03kYO= zodWiJJ?8jutcL%w%3gte5?%ZQRS^(v)EXX?@%`26!h)uB$wHZL2*Ly({D z0i^CRv37nr2}PN4oNVOR4Uw;$aU15i{3r!O?aAzU3032#0XI0y&yNYI(>KXGAJFMa zEr0Z57fr_6ZKfW|wLJPZxZ!zUW2lT8gA!z_6zVCe6|u7LwXJ=Y&i*aF6fT*=YPI~` zf)Bq^RIRCc*kl_;4B0UU1hU#> zokzHIx4y2ia(h+H#G}f5`PE-i*SVgQaGhB1M&chM^%Z}ov93;JDVx$t`LFg63z*w6 zf#qnHrQ$sG03BT?p-=SKs+7h>xEvMV$EYQY9q|WXsKNFvA=LaDq*SXK$kuC15WILJ zdvoz{%fMKKVXF*SOwsLt#l^?BiwOJiq@~~o0K-;-^!J(r%iVse)73q?tS;dWS%-gp zRJ@=$eknYWRW^m(NegxIr@jA5GY?-SGn(B%s`-@lwFt1X&ju_B-182&4%qQG^Pp}Y z*#N24p0`c1BUk!RQ7YDq2b|th7+~N?=Pp>8fsgtpFygZT0IPL}$jeq)2t{EztXlc| zQBkVukHq$$q_bqe2h^N-6!J8E6o&dCD5gK`3U$o<@pB27j=5I0Efh2Vbb$cNQk-Gd z{rc}IDo;igeM4ARD1i~ZDg!7U`~4=hJFEyRC73v{Dm7D^+*vk&6Lz^WS)#30xOjys z&mF5mJ3e8^Xbm+FPqIIPJgBNs*pRCDEB3Gpqe8PIgn9^;HID*pd8m24Jco5C__kVj z65bSCDFNzzX5vMjHa{CfE8+m`)1KKEhMBx#+FeugMv2M~_*sD z(D7SuB=a#Jz$<3p8l;d1RYgx9BJ7>w^JdLnd9})e;#gk-Dv8gq_oGve90n}I1ecaI z1gkRJEnIMCFvr1nApY0i7nvfZ$T!BQ!;w}1rZj}h*<ywMDG6`b$_;oW)LGcE zmGMF)9ispm=!nd9sGaQ0`hLOT0MN^R>w2SO?hmFO0hgAb;lJiAfb?s31)e@p3-uR- z7gfZtJy*^^8(BqxIf)&Ld2yz zB3-S3lt0L@v#zQ}cwI)kPzRolI^;eJ#S-)CzAAxN%Py04PJ?7$L_q9`2_6Jx`VbKH zY~m;{@Y?;CS(z%T`qjo`YmMD-ABjjlo;VL^YJSThA0le>gWog zT}^V&<(#d2>JMx%ZveQ&jZvwA0J*@!`0Y%N(c!-bNk_#8b{P*LUM4xFn-AXeWcA#U zRN@T)7FcSTfN?D#j-5F}m(i%^qR`8-rg|;wvv$ej7*#f&-T2F=al$UEw5BirpV|av zO>@=>#d=v`4gOJ8s4pL466aX^1PG1XI|>;49em^1SJQBO$VXtOyp6IeMlJED-KI8!TYfJx)IVV_s_fgI;kW;}({onE}ySKxBk1f-P-Dlx=^@M2~wM#vQoTgl(6S$F!n z|AOiM5sY(Qq@x^qpdccNL4fpwFt>_XfR&dx+VRD}AGmc>IJ6?U{gKE#mg5)4+Kp>j zoDPx^WY_x}Qp?40G2jK`|7$f0=NX^)SI+U_20{ZMz%+aR(Gkdl8IG98g$E7HKiToO zajd|z{Nhck!H&E4l)X0~Ra5hzQc+4la&iXF2&nMlfFStiFvQ@t?x`%rnLKFic^w`& zYzmJY1mDR8=iFnoX?{icMKUbo8;tKBG_O7OIMB9(x|MV5ZN_`Si6OJzrK0(#la%Z+{~lQLZ zdjPCz#0)CsO3iq%!Ej2EZ$n zCELX8mKNa61gt>=^m}O>hpI5cs6j#XF0MkuTW0u|-vc>o|#a+@5WkrfK!I_{#dk1{FQhI7Dmy9O}-`UM}0;qaO^g(|}MFuZzf|oXd+bzgx zzeW#|jJOQAH*YdYy{oXhOFMVpJ~$qD2UQiBNM^aW0hq`s{oEP(H4_2fjYRJKML&^l z6_@(J4s`-5)S9^v6&%xor+=kFPTsFd37%^Wh2KYWL4DW!%zB;$U=$`E&m^yY$#`Xd zs0O(eY>3>SSn>y)+jx8LX~S8?JvN=lrI4Uc2xvmlB^_w5^4B>Ip&}e`k+n?7jH8lB zq;_O^#-s>yA=0I;2O|xcxhRd2lo2($ii$>ML&Atpf9fi+N6-K``z1jXrL=Zjs`wl* z3AuYA#ui^e80n^l#ccT3p*-gIAjmaV=hmkCwvngdcYC z3q0p8lpT?uF9Uc+#qV0S86^qIU3&{*;}i)2q&cm(YIO9>I&k(2A*$pDD^%%vo!vMEtW}QNr_^O+&j{GtLjCAEAcMk~lV$|L%5;fhRuPA{P zd*vM0C)7Ya;idhg^z}}c(XbrHfwXjQ7AZsK4JO^(*FY3&6o&$0Bdl}0J410j%op3K z^rnEr#1AO$g=v1(1_jQFvITf3F*QuJ z;)m950YwlW?|VV2bCA$8#QeR_wu-n=yCLDJo&7arAP>DgwS^|fRqT-Y$I*3UVSJ~1 z1e277@^PRf(m7eA&^C`~y2Fn>Q4VX7z*eC?T$Oq~b!S%b##Wwvy}wBX?0U4<6@(GTnUPY@TDvC3 z5z@E2!6C$zXfyJ&4cE47N5B(wvW4;WPc8}`iZaM4zr>9A1@tM;y$HjfYAi$9H+$7j zhwjV28E1MS@d9fs$8S-{abPHYogeWa#y^V8xzn+!M|jfC=|dB8MDb9AYY{GRC>u-0 zA*|2?NYnN?nF+b5+X%PEuzj(`si>sI&*iD<8uKZ^66!^TAhfNK=u$1g?XOnerI)Wy zEZV<0ubcY{n4V&F_=R#=Cw_cvQRDyu27EULZ-40R(vGk_2{YP`6ikz1I}W71rLj$H zm15WzC*0X1406gJwcS4Wb58LN?dW~`4AfnnRjR6_xm^=+rap0XB2zvryQGXbq_e+^ z!=UMxG)(L@#c_f|IdWs|8@81zOH=7`sWYNdzfvI++!?HyM^LwHr7H2og_YVPtI0&r zdL=2xK*)1c25uo8)lVk?_a5GYmQ8FaHt;M?2rD%phEnXH6Rfrj73hMzbDC>+sLv9@ zsy3Ff8*Hxb5AhxxqFewVX7jTno;U?Et<5x0ImpjRrAc9;-N1CZa9y_^C+E{!5@;3` zRwZK4eMyGlHZZ$9@EL`?dn{ikHc>UIijp+dDYPS+>?FU@AZuWYwtKFsg7P;hAWierw6MzECIY9nk zLT;fy3Di0KCsIL9dk!^{*#JcOqgX{6e>GJ33a}yJ)76S-NlBJgIS=%M`>d z=DWVo8okQhty2&*nTi5ko6RgkR7xL|nV9}fNP2P%H8=l+^%Dp`^Lmvdkc-oEbJ7I*YT~PIJ(L zlWT;qUElutU{+rit_8n!04Im<#()D{V2zdg4VgaL1>AGjhRmHh39;TK*-zb=)1D>N zCa3jqAq=pBb<4YuL=}YlQ(D-@o<)a+zS2LGm|=MHqSDj?zqKmSd*B`t*|EV*rU2$` z!&5n<8-G*yMaNUR3bxp!Jd_rCVc+os2ME>vjNLOF`xPphu*FOq%ua|zAFE~t6($J? zP0NJ_MZY+B$mR&{P#}mg3(G6o<4g;^kLRs-AUR$HhI@8)(moZi7W!aDPqUsJ8HnBMgX}|1j|{gl z&!S=_WUAOcseY7!b>zDNe5W9(^%I}Jgv-!R5bb`HbDR2cX5J%SqQ;odO-QqYHakRUg!K;6x_fN zMsAMrf(KCT4*urL8VhQC7>fh#Ely8frOdSGw^iRQn3*BsIA_^3BuIitklnjFlWDcR z-cx#=k8$|tLA}qT;qH&CAg=Ev)*1k3)f6D9=aAiR%Q!4wb#q~Z?ypHb7cet~-GGPN zO>bEat`^)c{TGCFUb&F?UNdl>AQ$$0f5R5gHJ4E)M6`h{gw1o!5SCj(bT3P`T6>(X zjqiERSZ%2d=o5M&?{b>a1!BUWOXxd>GS!p!njEfB)b%LH04fi11mTIxHLb;A)Q2z- z{010X9EH4-)#clFBB>fUQ(*S=z3`k0#rL9s=&2Ue{qZrK>ZL0qBw`2V1oV>+L?ead zn;b@7wcJ>$93-l0^$b|L2Q&4)gWg#8RNEgHTnJ zElLzsVr&XHmD)*E>p3gKLv(|c0Y^v<%he-D9^ytu*~C=|uV8?T$zD>%+n5xRJ!kOfrD_)o_ z@{Ne6n1+}|4t(yLFLE|@9{OT1~7AZbdKT0E=^f@_9 z`Xaj2es!rLJ|MgTRmH)_fNdlbT}36R>g-{$b2B&rCNR2r16)Pd2fJ9adKNo?ATV_Q zV4ePoGnS?!k#QCQ)fJoyJ%|0XI1l-d;VF;v8D(JzhJI4V<$=!wq@$?PUw*`Pz6|jB zh9djo+8<|{+(kKMz*&aP8ZVp_wo;2xJknZsN=+9fT`z%mCWlRAT_rFA}|F`TNnX>u+q-Vc1qfKxpJ{kc3uT> zDcB7?zoTm1S-tizKhgwKGuEhZ^u!$n;w+P{6r}BUC6mKKm*wgc%hVeY9kD2bV~{o( z_O`jHs@M@BhYzU2nV~r1S>xUnE6Bbw90Wr&H~m4?yI0#I{$*K7qLQs9z~h_a1levN zL-bI>L&OkM;~_7fZ`W7S8pFJ;SN@~sS~or9C*>s_8-&OHlDkaAGyh03jlV8pdhmeXl!5$L|y|MEUY;wq`M zz|e^>mWkwe{DxL2oLxzVsd4IPbjyvDMGIYE#}O01Gje=pOEv@}?yntaOeHUPFK!*! zk4~zc!8KXa`B=fQzeNCL9KFXj(Y?lTyOVP3zP)BV5C{~CRw+1?h}J?~gJza>PH#Aq z#}g)92dc$PJ6J&wZbXA2SqwLubNAiwtO}f#6)54~Ob+SorJ)pk>#BUqGM!9|M@f+- zqiuV;+&YXjKE20Tr^j0XtMEAI-QUIauzk%FqPaXc>jVsca$(2j&dZOp9iD70>{^fk zN+O8*xJVpthfdcb!4>k>4Dp(#Q-%Xx#!It>?I$C58JTPk-(qVyi|)bK4)GA z@VEm0EJX-ERerpazG|@@szs@hvv%J11+5@%$cV1{cBQ`9 zN3Z;kfthkoq~v8kK=XFwK9iLJb4W2$p#&dBF$pFkhe{$6!$LhdCUPGO)UZ;+4{!=G zGzLDE_(VEpM|c~O3!ZR0(}Y&j6+qg=hW55Zsru|d%O?heh@QH;eIC!#SvW={f7h|+ zU5k30pftssRAk%7^#7s9C{0g%A3aV0iTR4ia~{ke_=>uKHQ=63>5?*n`{X%PC0>5U z6_U^XcqaUVt;GH!2pLbLTUXb%rv9bn7AcBcixckPuNghixy=eicS6s}J#|PEa>`>5 zV|JRb`IP8Bpf$GhWJBcvG-vJZ-o9+zLFeovsT5BN>cFh&z}OK_@=pMYrqn`98Q>Kp zSqW7M%C&AoFKjG#f++ePnIG8icOq~C?MDq8ARc?-G%f~Of_IuBA&g^L_(6$u*WxVfu z7)Z<-kiYwRBet9a^b0gLhlR_&RHMJig;o!w;{mAXstblN;vMfQTIqw~9^Oh-V+#Dc zc%t5Z-&6W)a~p390Qht=Ycm%X$%snJSR95j%3_T#E9o*$r{$~{p152#6)i@rb$BB| zpkOiTGc%8m0VCe&sG$|%eZ!M9y^u(S+&SBo`b~%((IS)vT;0(O+~}(}N|z}7J`syD zxX&ULj<^+HY}PXXHR2qM8mK-pPyOdq#K7c+SLDxSz_kJ7o6enwq*nTwShK>zww>?e zs{5`23qA!E+2@l<7WFMiIZn1JoUS;rBEzWTvxF%}UY(}rx4iwOj0l4Oxq|w+EU!b{ zi?2l=gR~8Du>Q^!@KJno4+L>Wh|c%ydwC+u(@|4Gg>ExBqDg~mjMuncmQb&wHq2ZN+^Z|$`Q|mmm(xz zSuw|ZqR_yLit3gbKA^$;k0;HX>JnR#tH zZ<$hbAKgyfPwYRR1z8E6tf1y&Q}e$4M;TkdzP=eAU2$AWUk@Z9P1emHu4zvU>L{v* z*)v0ac36}mjVkuOY#3TIOs?7$#M4p8yEq*E80fMdLVJ@Bpj=F5t`g;3Ze3*F@XgOl z2Cg4aN`ChPcKtk>R7bhZ$-x4eYqdQ1?*pWxIN~UzZ8(-4WpU=Z#t)azI`Sa_BRe1O zvLM(+FgOvAM06Jo{Ox8dn6~Os}p-SHEUA_Db z*CP6yl+nXn2u_w%g=}|-U6GXKDeHg#wt}HI5B@cudgPVkfN1&~AT}(hy~~HS)RCL$ zTF2yI{FNQCa<6~Fbh{oRUVnF5D>&lk89uCxGG1)$>{Uq7INApj97a3bx9Z-yAIpj| z6ymA06*w~t zhfUBMz$Cn3e|fZW6%`FXl*pj-oT<}CU1&o2B^iJtKRDSi%d>Op+_`g>o^Fr6)HlPV zTo4bT<~M`H>w%riVziUTUoP&edgoMb@}K^@zbH?6#&>3;fPE0UE3FWAg2In_%eR|l zW@D3X1nn(9c<=07Ag~F7vR0N>T2SdJ9C5k-sQU0f9f?^h?zDtMq`J``HkrNmcv@^Y=9$JSyy)J6g~P3S~Q6&lD%-H3Rme|go`-is2} zEx#Xm<7e!xLhk(8QcuCfZ1d)YUnC#Uxr^BpB_SEC(i=dfzAo@uZByWho=rKA*|)v1 zis;n@J*d~6i-@ymtL-%CY5cb(V}cBi!U^R z#vUtm_iY1%U!t)&G_eZgR~S8KGUX8Sn=`YbGG$j;EupF<6milS(?{_mJKhOqN^X$x zSERTg*|Y3SPzK)Mwd_(BEgzki?pEaG6KFC7Fb6=`$O7E{X1h*B?X*65w5F+Zm-hM2 z?b}D9MFBWuLiY}r$T>tM;H0~n{l0oRg|MouC&-l!++;ox2(Q}M*Olhof>%Jo>=i2S zHaj`CJkGRV^S&RL0xF+}i0s&1ux5q-7?FnmC?1q8d93y5mSVIhYU%>)tT!-{&Fm2U z*nD!!4PfxmDLWT#-E==M-JL?l?M2DjNuG`779r_0Ri>d!`1c`Bgib5$<-uReSuAaE z!oFFN%NDUi4mx+XG}*BaC#8W*5W}xt0p7OMYq@bO{?^#!;JNeurD{=dr2KT;v$kvnNYZ9# zF^XxD#qafE=G@)^lRG-rPQ(t7ZlG^>G<@1l1xF4aM0s~`%{rgln;R7^))5MamSrKJ z315FoYAFUnm1vnq9NAGfayV3n{5~(>fa$n95brxf#N{}nvL~#ze8a2B8y_bIl-Qmh z>ivp3IbhLY!OX@uIrtLIP`>zMYc9!Ayv`laaNl0Ie>4^F<1+xRodbp3f2CXi$ZPuM zR&{?%05zP&4=G>*sS#l*(o?`x#H)YNhFPy3|K>C=INpdn{i`jGvEot4yJ7pfv#whQ z{-vKS-kxx^p`zS&yFBB#LTtNosOjLHP7m2GK&%luydz%kkfI}WFoJDK8D-xbSfBg& zZms0$3G0 z%RtU{?;xav`4q9drVx zwkU}SBa&R@;t-QGIoy362)T>3kg%Bcwupn=u7P)tSJ)*JF*U zigK78jhE(BgJjb$L^4UiECf&=_5a|=FYP0`4zJ4+(Ly1cB{Vv^XJAQ)->VVT54*@7 z$UIEyI-J8)CMTuZSZ;?q`Y&sBoFTXtH%Pxw!Al<8(9xa0z{TF!RePmH{l43=Q6^M> z&Jl>gP$iSYVB7qFsgIoVYpa`y)-5eN#v5|M2a4CGLNYD3SW=3|PN<+bgJy{xI?di{ zgH6m$(o%-ZEpqA$tM328xeGnGKTFp@L<0eXN#Hl_&TPhyV<59^d<9_P%?z}(W*(N? z{H;vBfn>?{XO%H9IoZf9B4LJ6leAKv6G$DvRkN1)oS)_F&=GJOu;{F&N-!+WUIO=L z$qXEMM*zT^UfWJny4%C52-cepnF6Z*Wi!5ts>tAF<6^4rq~C0T z{2o`Ub62=0%0k~Nf=Nm_ksWb)@&phMr%{Gxm>kFj7_|uWRQBq9wfqFYO`N~1HRU|s zqX>2F)paGeGS1W)bw=vY(2B0C7!Dq-#=rbg2D$5nj+$?GB1YwJtE_4>v?&$~OgN4Y1SqAHoZvbpXCVF)ALm@MZ0jglSCee#}`1&(_4 ztz-zc(4nI;8p+qlgd!h34#`*V3{*uw}Yaj_3XQJMmMd#j?JU{bvMo6n@SalFj;HEmZI;>LS{c z8b+(BAdGmgD$4$=Z3Sh3qM|%~4?^}ZvapqvN6atIqU8pZ9pRKO4Ww%ghBqZyx=#6% z#bEYt)AgWI&mVnh4dkYR1BD});=e`k3ua?Hdq@jgk0K2G8x(Hu$Edut+*d9S&bWm8 zk~x~r?~LL*W$#{@`~<%MO^8@$a)3>q0Paekwx?{URKLzuyK{)hbErkpFz=_J&w1;F z3cvvqHCm2QoK&ARhWNP+wQAv|)qfUl{wr!q(;of5_Pz73sqOjtgaDxz>76Sey(ma0 z2^NqJqJpRdL@+2ylMYFMizw0*1OX{ZRk~E^MT&s*-a_vXI!Or0?<4p7=J_9~x%u9{yU7 z9taA4OBND4L#({KuGdpH^YBXps}Y;Ou$RqfjNF>d6`*ig84EU{+u1tnJWhR$wc> zw9suV)q)CM)_)7QqLc*mCw^Lsi+qGbudN@n=o1FGNM+BzQ#9uI2QFu0psxuI@j*G8 z1n4YbU~JLRNeubd;aF}0qrO;vVQbcry-?jY`~H&iJ7JHmHHGPp-b4IP(>dj)B;KC6;25v`#uWiq?DUOPoXDd_#%hMw{RymUSVVSV$p z1aPOcuTDwpW4l%2RO14s@D7{I%?g@xtzk+8J=m_I@~PZ*gi@_c6{AgFnlR;?q9e)9 z^_ZN-U|77L@zx#+sXcHIL%F7CV^<8CtAESBBLp77bd!oF+Me&~mtoXvwg}!D$R$-j zzv$Jd)dyg8UmY%?gND^9c`u#+s{WC>v%|>I*nsb#|6R)B!ni}sjM*FlRK+kv{wFq6 z==E6R)zRVR4&AXA-g*Auo)H&zri}~HPGqEGI%=9b)~4yQ2wU9vnAQ6&)E&@&4UkoL zej&kjPc9tiwt1jlPr4@Q7zVuxajOrPe6A2B3>h}Z~=l4tZnC;1UGvwR3o|Xtp z-mM3XzA=4`dD~n4g0F_zpg5P|wdTSt=;OSt^CD4vN-_}0FKo=(vnS$CSbNI0-&!Wr zZ^W0zH9f^V2;+l6wC5(;1=<6+^wM0Xt~55l8oq5X$Ig+>0AV)$k2=_BfjR%CDi^=s z#Uk>+NW(cj;`)HZ__Nh=z;+P7WJ#HISd_*^x^!vf@)cs{a|D>QD1w7|hHT+m z^+>_a!Z3~MgIW7;DlLJ3icDK!G8f@7k7sqG{rrTr8W%9Dj$Kzg=1+1FeJ9NUY6tWG ztDBN0#@7RIH9o$1CaLYy1;!>LwQ7zvn1QQty=0TEEwIKB!% zTIj7m0Q#8IU`SH@2>ZvM$%K*MAbp`B$&cUiSSkWu(?0pf=gGvuc0q3ygC665bY+zY zIV;Q=so-2|LLtOcs4Hhw>?bbdMvBk{f-~;&QMfUITy7ouX-K@t_j30*t3=VN>l{>m zJ$qK9!-PBh4uxyeBusoq=fSoNeMo(sSW@Du;CgyrpwaZX241X1GGH9)pH3%j-ODFK zD(e@AeN-X?o|iYtVhVfl`ItlFoI{y8E-TUxwPL$8>hTL99S~!K?8_GzeqN6RW&P7p z_YdX}dk{q1Y~EbV4z|IR1+{NZ?fi#DB+!FR<%h?mxtBTw*!Y!v@kiD!K0idw`2^E_!M^iKF>(NGK zF}ak*k1q|`{L?+$4evWQ+`=_(fX0VT0=4AqWN+LKz9lDRaIOk(YNJnPD1kCIQ>Vl4 z95x%1Mb)P$#YTw=0rYjCei@SndQplrn@;A$@*YSLyKI#gvBtEUFqLlh!bS!$HN&>s zv+8Jf6iEliLQpA;!6xQ%R8P2oRFd=0+M0Meu$M?QnEiCXB0W?MunA7$rh2(*7eg%VPOzkj zPF=cp$*)0P)*9AO<2%>fk&}?R@~qOEYT?ZaMF*WbsvFrvcVC;zlFeav@KBrl#C?Tu*K#eYqZ9<`}+F$?tH&fe9dUKd#hcq zmoD&j-8@>@pfLEt#R{^b&$VQx72(} zOdJyevh5_yes-4)VH?kdxCQ&!dRJ#Cxyr!4iQcC<563YYa+Z6Rm-D)evu`Ut=E7#< zuZ(%mbf2yXlj=}I|L#cIqxv($ACjGK_4(!2;<+_eELtG|Y;aO_Wsi+RdQ|A+IUTE`unjP{a6Rwp$ zlev!KK>T-;G|_{qgVicmkM=;8%tC?MXRd;c3kOlElSoAHDy4ANcoV467(ZHhkXD^6 z<7qr7*WapuH9PUUTZk{>kka`;Q_a204eC0vYY6{QOk-D%3i}T!rYs=xbn2`hlo@=t zF`Sh5YSbW7221=D)t9&anQj(mmT`Wskw&SyW;q7x#DTWz=3fi!m?b^DbMrv&cFPSc z;{-;4HDo#W{3gTAqy*c#LaC$&g~1=9v9@JwU?KMyh0 zP&sQXbE9<2Q6TVJfX$cRUcd&0W_eQFz`@O~H@N*+x`;yGv*R%}Ex`l{0upJ{5$#h`~W*0$O#8NsADEFS_ zjDd{OX}n9YyRTVi4`c&B;=mJjC8hBQdcjkRQqNWSE67d_+$nISU)*2Gm7z0h6#}m2 zI7p2TYW~r)JcTa4CLQC6e!SN4+gvMQZBkjJkD$KVQDXYmQ?fF(u+i}s*mqP3UxCI zWzM$6*Lbt(P99Y@eVPrb-0r{beF2d;m7DeGKJt>YSA5#kA$qrSESCXIOs9RXauzd2 znZ$%aY1bybrdsu55agS2R=-V_+wGB}w2|Idx=d6jJp@Ou`ygpvgc)pW<4*cWe{}{onFBv>C=Pu@I4z-5W#Q zwhq1;b**Cpk+o+Bn>)XyKyJG4oTu%ydQJkhRO~p?5YjGVWr9@<;^)-7A^E->ezAIT z09iEuaP#-nA$l#($JVn;qp6vdI)^fqwbuc}|FodhPns4!-3jP)k5Viq(jgBl<(x_~4oK+<{2%Wx; ziepUhp!{uQ)1@ibw!cWc=(;UnkdjI3Z4cHiqEt=KQv7oZ>cc2|A_ZhuhjtNge?Urn z^9!-*$d?o{It}_u6P)oR(!^tG&j)6n?kpx*Ey6enyMrmm+_U)7v>swHapcu(*=0G< za^C1uRt_ZPFPe1O@ED~0yq9?NK=%`w)fMmN9L^%d;?XrZ(_G1-%7Mq5r6?14;b&Mt zOLM%|2Ulk5BST3kY5(Gl&!P4DWs&=Ic6>c9nK1dns0@_aB^J|4HT8w+!<7%S>E5W` zlS{f(f793@A?`SqHv7yE!4a*#Uv6F>{SG1`j* z)%Ip>F~K9?$mK@L>!S)+Li#28GJKJ^*RtE+s~rU)Ca zKA#fmU$bz45$oPx{kJ*>SSsZSufIQyTr^Q;r4ll| zXkO-3YF>+w3oiL`o^6uibLn$%1n-Bz)PGr6Wrm+;hBkwfny8j`0Uw11^+OYR&|IjB zSUhO9qOp3JVLpajOMmkIaum4~U(76kV3I=6XWa*gW6>&%ZvFB;4Q~1cv>d_M*?pJN zoSaJsc68t~#$J{RtPd5zPM?}Zx|u8d`X@X5sbTDtW3&CK;Z)CRJ$8j7J`wh>Un_2+ zp{e3pcNx9Y?)k74jD#|fy`?-zKB+f=CmT%)$w1Vs7P8sZ>*P8a5+22ARTTsi0 zK9m3F)4*zezn*!*WjA!t0%K^@CLQiV&So_lcJf@ zL*DDquDKYMK-W5vyKZ1dLBVRhvcD~RBiCN8b@r$1@oe7Su~)KfuL{SjIT!D58cT>q z32AT4?9aVpZErbz5Sn=us$buj<+<9c&u~(YjwFxSEB~SD=Sf3yV;UIUnpCG;0=9Nv zvs%5r%KL)0$%wo2V7miitoX9pelzIhJ&pZn%qx!)-F1R!l(5Iu2l2DoqVJ{uTpHe4 z!aowEfb}uno+aUB^@)oo3f#|5+)G@YYf8-n;LeWjUsU)t`Z)?i4c)@_=EkX#@3?sh z_SDfgpGv<~UfA<`@Av%R0Mw(jvPE*u(lQV)y4O ztlT>Rl#Q;x$Gxl^!~;hO#pa+{ejau-)_=Ee*>L@1NjB8eNF(eu2c1Awa>l<6`6odb z0idadYVgkBy}PcCmz4M+=S-t=Opb(UmT{U}E{7wv^puqWc0>!B_?}W#- zW<5t=Ygt%o+RN_n9&ZD2j3u&qK{ZJW+$isOb*Mht!&Hp{u7~qb*z8i~#_Ed&GLr z;%h;ZZyMA5IPe;Qr_ll7P`T-E=%2gAwRGeTSR{GOo$&$N_)K$AOOQx;_>eo6n|DAq zPo(O{mJx4X-3PY*MWBEl0Dw2FgFP_K$%)UPPxN5g-jt>IsUgr=Eh2d@I|=b~H)b@< zejcHv1ZB)npv(H0k*yD6@rO>M_urJTKue0t>$^?@r?gOgp(bt2s-0wtBNzb6y<_iv za3W?B@AhmGpAD_*ip@UyaWpz(#zr27{lO0o!~OvI>7<)fCD8(ARCx>EK>ZBn1St%E z=RX23$_Fm@u?8I|uF&Sb!UyYpSA%!KMS?tRQYfZ>PkvRGpD=DY)LrBJ+5K))pT$!; zy(q#OPBQh?F-?p1k(qLnHGYgme!~JzD8!r{Z~Cpgc`cFtJj&Dn&04}h> z4c$A2^-KI+5UVdSz%{oHomLT_uH53Y0SJ06K(TxSEjw>|mY+`^AXF*Gl>r-1L%s#~ zLqgUVEwYb*L|fFsQD%D){sftQ5K~JFH{nH|=A@**$fg+b0)VJcEbRyG@5Iid5zV>V zN8`rVOu5Pe(EvwF3$m~S4|W-89Eqz2C$%(GqmDi1)RwEn>ac8>Z;d96du*|Z=&?+e3*IaM@@=-hMv#vKS$%|SdEp3tf-bxKu8O_^+s9- zHG1`x(OP|`43?nyp3{8pt+59$DEN-HbX!lKz1kF)1iv{d08rt{vd?nNY!4KC zK)I7g{2r2Xmiiv8IFDL4E5heqeOR6#>oOp60r=#Ub2Ip`i_Y==p%Y*tJurM*n!b94 z2yx}p@Ft8s3omx6mT_6_-nKt7ib#CqZsb1H`{0RiCjbEMy2&Gb14Uns-lY_x-D%BZ zw66vke=%1##izpLrxRq!%N?ktuQ2VC@SFSyPAS+0aV%4;0bnBkF%E;WnkH?so5+&a zRc(viufS|3cvh};a;jnE!#u(Z?G$0^Cwonzp2zYmw`)k(W?3cjedDIA|bK}B#r zU$G8cIMC&B>B+Z5?lG+0Vo#_DfH{T?rp@LadzB+^zY3oTA*$7()+x3@Gmjd%P^*f$ zX9I**o8bj+(X(Tl!M_CnGYd|d!Ms=^~}9+Lk20l$;{{K~%6 zGf`fdhYNeq&XiBCw~wzvD)%o&52et=KnaF>IVlis#naz~Z9{!^ zKYXoYEF)?I(Txi$*r^=rwKrZgKtH!`snKQQQsc`er6!k6OHD7Em14DZY<`mranm37 z(5{WMY9~58nt3&p{jOzdqt=G z?;7iu34a5y+IQk(6?b3b+Uo_r=)BM4rwa@3J3imlUW>JD3p&>MQ9UIL;qjSuOkb#+ z!r4sMY_hcdQN`J8P5ZrDXvc2fp0;bnagRN4ZGGGkjg|IZGj}t$>RH}r@o1Zzw9(E1 zM(>+X<*1szNS)NK2#Nqj&_vKjFh{UQaBWmedsoi9w319XmTwz|o(io;j+)7}@wZL$ zJ$-aPLN}uAxvOtAX9{O#bZ`9Q%IpQ~cSRYQTY#-x6cO!R;g(AxJcjXG4*>6IZB#a8 zV7PAVK}R{PU?T@5_vQmY#DWf)BDlZyD@!M*eb}Uu^2}yRxH7>})UdOIW#y~z{X@qs z>XD+2Wzm9ub*4Fxt#golED8Ag=|(<5W&P-THJ#9eY^>Tn2hqoE=wF|>5U|~~@#fw< z%9D9B!VnNad)uQF;WJORf)Q`jlIj#S(bgL|mq03KH~KQx?sJ+L4IIWlO|Z=QX`LPr&_}I2WV<9@GpZ#td)B(tPX)}CyF{Os_@9FjcWvq} zVlPPjq1~#&+OO&y;)hGcQtqKRxMH8Ri%cg98qlX1(x_tDk+ETkKfCY zVcf;L6PUqC08-zpe(<3iqJ6Rv!X9NBtKuI#XdP^~d*yNbQ!b`_xC93iGd=EnmUl{l zlBkEOUOB1KcDGVU%#20|9Su2H+ANzDlG)Pa}Pe|@;Act z(RNmVbiz(@Frl_VinZh#$+R@BfEz=0}DW}_NJQcshAb*CiW2td5DGu{pb0}F6?35-y1dZ$@vi`P&}iTwto_M zwl%!A>=5j6u|NOhXQIw9dZT(is+;nHL7mG6kfBokOt5Y=d-E$K)*SecG2ItYUyG_j zc?|`j-SkM3nndpqH!V~$C_BkKnLQhq+xhftCJeTbYeg~^InnK4ef}{AdVwy5c};<& zMw7QUq^#H#0)E@13prA!H0ZZ8@!2$Px$1)K8!RTCa(-Srh+~M9pLw5Bp@01}+J%q>azM=~+a}{|`zKNmyIU+Ps{?vw)TZJiZxu?!f z@lLn)3PdVXKwet9o9C(_UP7bJZj5E-2dXn1s0_nGy4fM4qCgj$hPTE4%JdR=ISB-jOm%Dd%|qF%?0AWz ztQv?xSp3iad|~dU++{&37~baOUts*DWH$F*BCp1dFy`|9e9RavMPWA)p`2vT;|hII z{htk3VbG<4?&7-RRRPz!J?WP8*~C=npId`HPt4|{kC#a!r21IY)z`JK zgx=qY5B-<#vg+(Fg!a{|dktsU7yl8^-Z;A(%@!DUXU;{8;ix(y0opkDcPMyDk>ZG8 z&PT6qH@B{u`uf`~4mA>Hgw(bhPIsQtqyO#G3e>1K1IMJb;0~Q%e-OUkH2|%jzk$_x z|Lzp&9hXB~egi95)L&(NZslb3*MW{b@ft&q`52@ax&)1AC zY0?D9kZy?yWX53l7UX!m`pE6~vd{G1oV*#Ui|@1k{&g|^;YQ6DH(IA$qg{w@%bht~ zlws;{zahG7JfGLtjVD*9?6@B8LMWfZhh|bdttXRFC*$D3{ML`CHaN!{?RU zW=7`6NTus#DQkH95;kQCDv#2Pz~`7NNDWyyNN?!b;T!lRu!j>yn8RGpR9A+B3VNL_ zfphm)M!evyt-6EWr>UO3erH7uL>?GrMr5aEy%_?TCNEiriumt@<-l0^ulRNLvlkDu z3g|qYenSki)EibzzWQ}OiYAjEi*gwLPqS=WhqRe7JYD!WBZ{AKiUFG@D2cLh3{{B^C*d zmMoRoM;Sr+MtA4GvonhnxqZOJ=&9B>K6x@!D-!wAe|3AnVb(^aW>3*mPgO1%`V~d) zZq@61#;+Mje8U5YLGL6z)rXST9QtO1#vZYf$?XE@fS^VcjBL=CrlTmu$soyC9}0Wl zR=c$}(rX*N>lm)6Pf+R40700wpX8b;$IXPD+LQ@ycRQngeur)G!8B34k$h&UhCJ&LZ_)@nA`YEB9m7qv!FT)Ik8|!osg^cLrb5 zUUht`7H&>D$5B#I|L8|%E+}Mc%enNjGY#`aZ}ykrW|pTjVOssML#G~DidsR*-?pR< z2cX<1&30U$G-aE{81jAtI<9eL;4A-R$fXMNyyAH&+MR{@;m6>S#v2R7vYC6pzrq*b z$`EY>(a!tSZ-raT1jYTY2=amTL2#{WpFgdAgSX#frR56^_shV?r)sqoZOuvNNLNY| za;lb`@uM}@0vc3jtgs^XXFe6GcdBH~Ws=Gznx_or zjO2`eb`7pf&Dq4+c||(IB`xH0Na_VJL*NA4VPRBxv@#3}Lw)GyB@s<0H|FBnC42fv155tyPUNhS>beGlgjd0#rl5TKjga1VY zkE+i%6%S<=MzZ~*6$tH0{Oh9_QxRIDiLW0(P%St;h(?Y^fkw%UL8@B1)A2Dp*o+GP z8}t_RmP&$dCQO!diXLVm3Ysv$(}RP5EuXfS35$E*ElB~@g5g^KN^=kU&Xo z=aN5AF?b~Ln$N`nolBS-x|iru{9@ly(RU`anDIUtgs*j#Fke>#*XY|l0Ib9NXQ(U# zck%P?5)M%drtSZ;B&Ay}EhXPVdN23W0F(4Cr5WupTfZFj6-rC#yf=P0B&OC1 z{_b86pu(*YI&Hm=*LLkoygG+PRV8S(HOx7v)5JS(=zisB^|@AJYh1tzY*V{CT$Ic4 zo&IgTbh%5*2b#>fxi&D-YPa3*@;f+L{L=>-E}`ULO#t~6Y5Ms_TPlC%Gp3ZsLP9!B zwC~E5=HJAr13>?eHv%zAyiByA&36C)^Z&YF^q*78(|Uu=wVlu-0001ko2EC4uGxkB EALT;q6aWAK literal 0 HcmV?d00001 diff --git a/macos/Assets.xcassets/AppIcon.appiconset/Ghostty_512x512x32.png b/macos/Assets.xcassets/AppIcon.appiconset/Ghostty_512x512x32.png new file mode 100644 index 0000000000000000000000000000000000000000..2f89c3876a9e7158cb9250d215ede5544ebae638 GIT binary patch literal 46456 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

u{&x!tU`@^pN+^1Wj4&wWX1qSI#) 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 EALT;q6aWAK literal 0 HcmV?d00001 diff --git a/macos/Assets.xcassets/Contents.json b/macos/Assets.xcassets/Contents.json new file mode 100644 index 000000000..73c00596a --- /dev/null +++ b/macos/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/macos/Ghostty.entitlements b/macos/Ghostty.entitlements new file mode 100644 index 000000000..f2ef3ae02 --- /dev/null +++ b/macos/Ghostty.entitlements @@ -0,0 +1,10 @@ + + + + + com.apple.security.app-sandbox + + com.apple.security.files.user-selected.read-only + + + diff --git a/macos/Package.swift b/macos/Package.swift deleted file mode 100644 index f436448ae..000000000 --- a/macos/Package.swift +++ /dev/null @@ -1,27 +0,0 @@ -// swift-tools-version: 5.7 -// The swift-tools-version declares the minimum version of Swift required to -// build this package. - -import PackageDescription - -let package = Package( - name: "Ghostty", - platforms: [ - // SwiftUI - .macOS(.v11), - ], - products: [ - .executable( - name: "Ghostty", - targets: ["Ghostty"]), - ], - dependencies: [], - targets: [ - .executableTarget( - name: "Ghostty", - dependencies: ["GhosttyKit"]), - .binaryTarget( - name: "GhosttyKit", - path: "GhosttyKit.xcframework"), - ] -) diff --git a/macos/Sources/ContentView.swift b/macos/Sources/ContentView.swift new file mode 100644 index 000000000..f54deaba8 --- /dev/null +++ b/macos/Sources/ContentView.swift @@ -0,0 +1,19 @@ +import SwiftUI + +struct ContentView: View { + var body: some View { + VStack { + Image(systemName: "globe") + .imageScale(.large) + .foregroundColor(.accentColor) + Text("Hello, world!") + } + .padding() + } +} + +struct ContentView_Previews: PreviewProvider { + static var previews: some View { + ContentView() + } +} diff --git a/macos/Sources/Ghostty/entry.swift b/macos/Sources/Ghostty/entry.swift deleted file mode 100644 index 72829efd7..000000000 --- a/macos/Sources/Ghostty/entry.swift +++ /dev/null @@ -1,21 +0,0 @@ -import SwiftUI -import GhosttyKit - -@main -struct MyApp: App { - @State private var num = ghostty_hello() - - var body: some Scene { - WindowGroup { - Text(String(num)) - .font(.largeTitle) - } - } -} - -struct ContentView: View { - var body: some View { - Text("Ghostty") - .font(.largeTitle) - } -} diff --git a/macos/Sources/GhosttyApp.swift b/macos/Sources/GhosttyApp.swift new file mode 100644 index 000000000..c05c5c1dd --- /dev/null +++ b/macos/Sources/GhosttyApp.swift @@ -0,0 +1,13 @@ +import SwiftUI +import GhosttyKit + +@main +struct GhosttyApp: App { + @State private var num = ghostty_hello() + + var body: some Scene { + WindowGroup { + Text(String(num)).font(.largeTitle) + } + } +} From aefec1d6a9a50f1e599530417d5e61025bf2d9d5 Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Tue, 14 Feb 2023 08:34:54 -0800 Subject: [PATCH 08/54] macos: xcodeproj --- macos/.gitignore | 6 - macos/Ghostty.xcodeproj/project.pbxproj | 357 ++++++++++++++++++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + 4 files changed, 372 insertions(+), 6 deletions(-) create mode 100644 macos/Ghostty.xcodeproj/project.pbxproj create mode 100644 macos/Ghostty.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 macos/Ghostty.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist diff --git a/macos/.gitignore b/macos/.gitignore index 538cdd3dd..246f7e8b5 100644 --- a/macos/.gitignore +++ b/macos/.gitignore @@ -1,10 +1,4 @@ .DS_Store -/.build -/Packages -/*.xcodeproj /*.xcframework xcuserdata/ DerivedData/ -.swiftpm/config/registries.json -.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata -.netrc diff --git a/macos/Ghostty.xcodeproj/project.pbxproj b/macos/Ghostty.xcodeproj/project.pbxproj new file mode 100644 index 000000000..5e8e537a1 --- /dev/null +++ b/macos/Ghostty.xcodeproj/project.pbxproj @@ -0,0 +1,357 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 56; + objects = { + +/* Begin PBXBuildFile section */ + A5B30535299BEAAA0047F10C /* GhosttyApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5B30534299BEAAA0047F10C /* GhosttyApp.swift */; }; + A5B30537299BEAAA0047F10C /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5B30536299BEAAA0047F10C /* ContentView.swift */; }; + A5B30539299BEAAB0047F10C /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = A5B30538299BEAAB0047F10C /* Assets.xcassets */; }; + A5D495A2299BEC7E00DD1313 /* GhosttyKit.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = A5D495A1299BEC7E00DD1313 /* GhosttyKit.xcframework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXFileReference section */ + A5B30531299BEAAA0047F10C /* Ghostty.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Ghostty.app; sourceTree = BUILT_PRODUCTS_DIR; }; + A5B30534299BEAAA0047F10C /* GhosttyApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GhosttyApp.swift; sourceTree = ""; }; + A5B30536299BEAAA0047F10C /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; }; + A5B30538299BEAAB0047F10C /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + A5B3053D299BEAAB0047F10C /* Ghostty.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Ghostty.entitlements; sourceTree = ""; }; + A5D495A1299BEC7E00DD1313 /* GhosttyKit.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; path = GhosttyKit.xcframework; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + A5B3052E299BEAAA0047F10C /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + A5D495A2299BEC7E00DD1313 /* GhosttyKit.xcframework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + A54CD6ED299BEB14008C95BB /* Sources */ = { + isa = PBXGroup; + children = ( + A5D495A0299BEC2200DD1313 /* Preview Content */, + A5B30534299BEAAA0047F10C /* GhosttyApp.swift */, + A5B30536299BEAAA0047F10C /* ContentView.swift */, + ); + path = Sources; + sourceTree = ""; + }; + A5B30528299BEAAA0047F10C = { + isa = PBXGroup; + children = ( + A5B30538299BEAAB0047F10C /* Assets.xcassets */, + A5B3053D299BEAAB0047F10C /* Ghostty.entitlements */, + A54CD6ED299BEB14008C95BB /* Sources */, + A5D495A3299BECBA00DD1313 /* Frameworks */, + A5B30532299BEAAA0047F10C /* Products */, + ); + sourceTree = ""; + }; + A5B30532299BEAAA0047F10C /* Products */ = { + isa = PBXGroup; + children = ( + A5B30531299BEAAA0047F10C /* Ghostty.app */, + ); + name = Products; + sourceTree = ""; + }; + A5D495A0299BEC2200DD1313 /* Preview Content */ = { + isa = PBXGroup; + children = ( + ); + path = "Preview Content"; + sourceTree = ""; + }; + A5D495A3299BECBA00DD1313 /* Frameworks */ = { + isa = PBXGroup; + children = ( + A5D495A1299BEC7E00DD1313 /* GhosttyKit.xcframework */, + ); + name = Frameworks; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + A5B30530299BEAAA0047F10C /* Ghostty */ = { + isa = PBXNativeTarget; + buildConfigurationList = A5B30540299BEAAB0047F10C /* Build configuration list for PBXNativeTarget "Ghostty" */; + buildPhases = ( + A5B3052D299BEAAA0047F10C /* Sources */, + A5B3052E299BEAAA0047F10C /* Frameworks */, + A5B3052F299BEAAA0047F10C /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Ghostty; + productName = Ghostty; + productReference = A5B30531299BEAAA0047F10C /* Ghostty.app */; + productType = "com.apple.product-type.application"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + A5B30529299BEAAA0047F10C /* Project object */ = { + isa = PBXProject; + attributes = { + BuildIndependentTargetsInParallel = 1; + LastSwiftUpdateCheck = 1420; + LastUpgradeCheck = 1420; + TargetAttributes = { + A5B30530299BEAAA0047F10C = { + CreatedOnToolsVersion = 14.2; + }; + }; + }; + buildConfigurationList = A5B3052C299BEAAA0047F10C /* Build configuration list for PBXProject "Ghostty" */; + compatibilityVersion = "Xcode 14.0"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = A5B30528299BEAAA0047F10C; + productRefGroup = A5B30532299BEAAA0047F10C /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + A5B30530299BEAAA0047F10C /* Ghostty */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + A5B3052F299BEAAA0047F10C /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + A5B30539299BEAAB0047F10C /* Assets.xcassets in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + A5B3052D299BEAAA0047F10C /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + A5B30537299BEAAA0047F10C /* ContentView.swift in Sources */, + A5B30535299BEAAA0047F10C /* GhosttyApp.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin XCBuildConfiguration section */ + A5B3053E299BEAAB0047F10C /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 13.1; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = macosx; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + }; + name = Debug; + }; + A5B3053F299BEAAB0047F10C /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + MACOSX_DEPLOYMENT_TARGET = 13.1; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = macosx; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + }; + name = Release; + }; + A5B30541299BEAAB0047F10C /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = NO; + CODE_SIGN_ENTITLEMENTS = Ghostty.entitlements; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_ASSET_PATHS = "\"Sources/Preview Content\""; + DEVELOPMENT_TEAM = GK79KXBF4F; + ENABLE_HARDENED_RUNTIME = YES; + ENABLE_PREVIEWS = YES; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_KEY_CFBundleDisplayName = Ghostty; + INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.developer-tools"; + INFOPLIST_KEY_NSHumanReadableCopyright = ""; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + MARKETING_VERSION = 0.1; + PRODUCT_BUNDLE_IDENTIFIER = com.mitchellh.Ghostty; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_VERSION = 5.0; + }; + name = Debug; + }; + A5B30542299BEAAB0047F10C /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = NO; + CODE_SIGN_ENTITLEMENTS = Ghostty.entitlements; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; + CODE_SIGN_STYLE = Automatic; + COMBINE_HIDPI_IMAGES = YES; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_ASSET_PATHS = "\"Sources/Preview Content\""; + DEVELOPMENT_TEAM = GK79KXBF4F; + ENABLE_HARDENED_RUNTIME = YES; + ENABLE_PREVIEWS = YES; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_KEY_CFBundleDisplayName = Ghostty; + INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.developer-tools"; + INFOPLIST_KEY_NSHumanReadableCopyright = ""; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/../Frameworks", + ); + MARKETING_VERSION = 0.1; + PRODUCT_BUNDLE_IDENTIFIER = com.mitchellh.Ghostty; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_VERSION = 5.0; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + A5B3052C299BEAAA0047F10C /* Build configuration list for PBXProject "Ghostty" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + A5B3053E299BEAAB0047F10C /* Debug */, + A5B3053F299BEAAB0047F10C /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + A5B30540299BEAAB0047F10C /* Build configuration list for PBXNativeTarget "Ghostty" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + A5B30541299BEAAB0047F10C /* Debug */, + A5B30542299BEAAB0047F10C /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = A5B30529299BEAAA0047F10C /* Project object */; +} diff --git a/macos/Ghostty.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/macos/Ghostty.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 000000000..919434a62 --- /dev/null +++ b/macos/Ghostty.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/macos/Ghostty.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/macos/Ghostty.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 000000000..18d981003 --- /dev/null +++ b/macos/Ghostty.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + From abd739f3efa3083ef8523a3209db55c04f0312e9 Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Tue, 14 Feb 2023 08:36:05 -0800 Subject: [PATCH 09/54] build: just copy xcframework --- build.zig | 26 -------------------------- 1 file changed, 26 deletions(-) diff --git a/build.zig b/build.zig index c7af4f357..3d6b6b222 100644 --- a/build.zig +++ b/build.zig @@ -157,32 +157,6 @@ pub fn build(b: *std.build.Builder) !void { }); xcframework.step.dependOn(&static_lib.step); macapp.dependOn(&xcframework.step); - - // Build our swift app - const swift_build = SwiftBuildStep.create(b, .{ - .product = "Ghostty", - .target = target, - .optimize = mode, - .cwd = .{ .path = "macos" }, - }); - macapp.dependOn(&swift_build.step); - - // Build our app bundle - macapp.dependOn(&b.addInstallFileWithDir( - .{ .generated = &swift_build.bin_path }, - .prefix, - "Ghostty.app/Contents/MacOS/ghostty", - ).step); - macapp.dependOn(&b.addInstallFileWithDir( - .{ .path = "dist/macos/Info.plist" }, - .prefix, - "Ghostty.app/Contents/Info.plist", - ).step); - macapp.dependOn(&b.addInstallFileWithDir( - .{ .path = "dist/macos/Ghostty.icns" }, - .prefix, - "Ghostty.app/Contents/Resources/Ghostty.icns", - ).step); } // wasm From 55aff76922c58bd10d3ced16371395d3c75e5aff Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Tue, 14 Feb 2023 08:36:20 -0800 Subject: [PATCH 10/54] build: remove SwiftBuildStep --- build.zig | 1 - src/build/SwiftBuildStep.zig | 89 ------------------------------------ 2 files changed, 90 deletions(-) delete mode 100644 src/build/SwiftBuildStep.zig diff --git a/build.zig b/build.zig index 3d6b6b222..e170dcb5b 100644 --- a/build.zig +++ b/build.zig @@ -21,7 +21,6 @@ const zlib = @import("pkg/zlib/build.zig"); const tracylib = @import("pkg/tracy/build.zig"); const system_sdk = @import("vendor/mach/libs/glfw/system_sdk.zig"); const WasmTarget = @import("src/os/wasm/target.zig").Target; -const SwiftBuildStep = @import("src/build/SwiftBuildStep.zig"); const XCFrameworkStep = @import("src/build/XCFrameworkStep.zig"); // Do a comptime Zig version requirement. The required Zig version is diff --git a/src/build/SwiftBuildStep.zig b/src/build/SwiftBuildStep.zig deleted file mode 100644 index ec8cc04dd..000000000 --- a/src/build/SwiftBuildStep.zig +++ /dev/null @@ -1,89 +0,0 @@ -//! A zig builder step that runs "swift build" in the context of -//! a Swift project managed with SwiftPM. This is primarily meant to build -//! executables currently since that is what we build. -const SwiftBuildStep = @This(); - -const std = @import("std"); -const Step = std.build.Step; -const GeneratedFile = std.build.GeneratedFile; - -pub const Options = struct { - /// The product name. This is required to determine the output path - /// as well. - product: []const u8, - target: std.zig.CrossTarget, - optimize: std.builtin.Mode, - - /// Directory where Package.swift is - cwd: ?std.build.FileSource = null, - - /// Configuration to build the swift package with. This will default - /// to "debug" for debug modes and "release" for all other Zig build - /// modes. - configuration: ?[]const u8 = null, -}; - -step: Step, -builder: *std.build.Builder, - -/// The generated binary. -bin_path: GeneratedFile, - -/// See Options -product: []const u8, -target: std.zig.CrossTarget, -optimize: std.builtin.Mode, -cwd: ?std.build.FileSource = null, -configuration: ?[]const u8 = null, - -pub fn create(builder: *std.build.Builder, opts: Options) *SwiftBuildStep { - const self = builder.allocator.create(SwiftBuildStep) catch @panic("OOM"); - self.* = .{ - .step = Step.init(.custom, "swift build", builder.allocator, make), - .builder = builder, - .bin_path = .{ .step = &self.step }, - .product = opts.product, - .target = opts.target, - .optimize = opts.optimize, - .cwd = opts.cwd, - .configuration = opts.configuration, - }; - return self; -} - -fn make(step: *Step) !void { - const self = @fieldParentPtr(SwiftBuildStep, "step", step); - - const configuration = self.configuration orelse switch (self.optimize) { - .Debug => "debug", - else => "release", - }; - - const arch = switch (self.target.getCpuArch()) { - .x86_64 => "x86_64", - .aarch64 => "arm64", - else => return error.UnsupportedSwiftArch, - }; - - // We use a RunStep here to ease our configuration. - const run = std.build.RunStep.create(self.builder, "run swift build"); - run.cwd = if (self.cwd) |cwd| cwd.getPath(self.builder) else null; - run.addArgs(&.{ - "swift", "build", - "--product", self.product, - "-c", configuration, - "--arch", arch, - }); - try run.step.make(); - - // Determine our generated path - self.bin_path.path = self.builder.fmt( - "{s}/.build/{s}-apple-macosx/{s}/{s}", - .{ - run.cwd orelse ".", - arch, - configuration, - self.product, - }, - ); -} From 1abaf87de951282f3316c1e570501c0e595329c2 Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Tue, 14 Feb 2023 11:11:34 -0800 Subject: [PATCH 11/54] build: LipoStep --- build.zig | 42 +++++++++++++++++++---- macos/.gitignore | 1 + src/build/LipoStep.zig | 75 ++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 112 insertions(+), 6 deletions(-) create mode 100644 src/build/LipoStep.zig diff --git a/build.zig b/build.zig index e170dcb5b..539a0f148 100644 --- a/build.zig +++ b/build.zig @@ -21,6 +21,7 @@ const zlib = @import("pkg/zlib/build.zig"); const tracylib = @import("pkg/tracy/build.zig"); const system_sdk = @import("vendor/mach/libs/glfw/system_sdk.zig"); const WasmTarget = @import("src/os/wasm/target.zig").Target; +const LipoStep = @import("src/build/LipoStep.zig"); const XCFrameworkStep = @import("src/build/XCFrameworkStep.zig"); // Do a comptime Zig version requirement. The required Zig version is @@ -133,28 +134,57 @@ pub fn build(b: *std.build.Builder) !void { } // c lib - const static_lib = lib: { + { const static_lib = b.addStaticLibrary("ghostty", "src/main_c.zig"); static_lib.setBuildMode(mode); static_lib.setTarget(target); static_lib.install(); static_lib.linkLibC(); b.default_step.dependOn(&static_lib.step); - break :lib static_lib; - }; + } // On Mac we can build the app. - const macapp = b.step("macapp", "Build macOS app"); + const macapp = b.step("macapp", "Build macOS app using XCode."); if (builtin.target.isDarwin()) { + const static_lib_aarch64 = lib: { + const lib = b.addStaticLibrary("ghostty", "src/main_c.zig"); + lib.setBuildMode(mode); + lib.setTarget(try std.zig.CrossTarget.parse(.{ .arch_os_abi = "aarch64-macos" })); + lib.install(); + lib.linkLibC(); + b.default_step.dependOn(&lib.step); + break :lib lib; + }; + + const static_lib_x86_64 = lib: { + const lib = b.addStaticLibrary("ghostty", "src/main_c.zig"); + lib.setBuildMode(mode); + lib.setTarget(try std.zig.CrossTarget.parse(.{ .arch_os_abi = "x86_64-macos" })); + lib.install(); + lib.linkLibC(); + b.default_step.dependOn(&lib.step); + break :lib lib; + }; + + const static_lib_universal = LipoStep.create(b, .{ + .name = "ghostty", + .out_name = "libghostty.a", + .input_a = .{ .generated = &static_lib_aarch64.output_path_source }, + .input_b = .{ .generated = &static_lib_x86_64.output_path_source }, + }); + static_lib_universal.step.dependOn(&static_lib_aarch64.step); + static_lib_universal.step.dependOn(&static_lib_x86_64.step); + // The xcframework wraps our ghostty library so that we can link // it to the final app built with Swift. const xcframework = XCFrameworkStep.create(b, .{ .name = "GhosttyKit", .out_path = "macos/GhosttyKit.xcframework", - .library = .{ .generated = &static_lib.output_lib_path_source }, + .library = .{ .generated = &static_lib_universal.out_path }, .headers = .{ .path = "include" }, }); - xcframework.step.dependOn(&static_lib.step); + xcframework.step.dependOn(&static_lib_universal.step); + b.default_step.dependOn(&xcframework.step); macapp.dependOn(&xcframework.step); } diff --git a/macos/.gitignore b/macos/.gitignore index 246f7e8b5..07895edd7 100644 --- a/macos/.gitignore +++ b/macos/.gitignore @@ -1,4 +1,5 @@ .DS_Store /*.xcframework +build/ xcuserdata/ DerivedData/ diff --git a/src/build/LipoStep.zig b/src/build/LipoStep.zig new file mode 100644 index 000000000..cc6f187ce --- /dev/null +++ b/src/build/LipoStep.zig @@ -0,0 +1,75 @@ +//! A zig builder step that runs "lipo" on two binaries to create +//! a universal binary. +const LipoStep = @This(); + +const std = @import("std"); +const Step = std.build.Step; +const FileSource = std.build.FileSource; +const GeneratedFile = std.build.GeneratedFile; + +pub const Options = struct { + /// The name of the xcframework to create. + name: []const u8, + + /// The filename (not the path) of the file to create. + out_name: []const u8, + + /// Library file (dylib, a) to package. + input_a: FileSource, + input_b: FileSource, +}; + +step: Step, +builder: *std.build.Builder, + +/// Resulting binary +out_path: GeneratedFile, + +/// See Options +name: []const u8, +out_name: []const u8, +input_a: FileSource, +input_b: FileSource, + +pub fn create(builder: *std.build.Builder, opts: Options) *LipoStep { + const self = builder.allocator.create(LipoStep) catch @panic("OOM"); + self.* = .{ + .step = Step.init(.custom, builder.fmt("lipo {s}", .{opts.name}), builder.allocator, make), + .builder = builder, + .name = opts.name, + .out_path = .{ .step = &self.step }, + .out_name = opts.out_name, + .input_a = opts.input_a, + .input_b = opts.input_b, + }; + return self; +} + +fn make(step: *Step) !void { + const self = @fieldParentPtr(LipoStep, "step", step); + + // TODO: use the zig cache system when it is in the stdlib + // https://github.com/ziglang/zig/pull/14571 + const output_path = self.builder.pathJoin(&.{ + self.builder.cache_root, self.out_name, + }); + + // We use a RunStep here to ease our configuration. + { + const run = std.build.RunStep.create(self.builder, self.builder.fmt( + "lipo {s}", + .{self.name}, + )); + run.addArgs(&.{ + "lipo", + "-create", + "-output", + output_path, + self.input_a.getPath(self.builder), + self.input_b.getPath(self.builder), + }); + try run.step.make(); + } + + self.out_path.path = output_path; +} From fb1b032929956c4e916f72376d05f0e496d4f98c Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Tue, 14 Feb 2023 11:40:57 -0800 Subject: [PATCH 12/54] ci: trying to build macos --- .github/workflows/test.yml | 23 +++++++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 7de0030c7..944bd537d 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -40,6 +40,29 @@ jobs: - name: Test Build run: nix develop -c zig build -Dstatic=true -Dtarget=${{ matrix.target }} + build-macos: + runs-on: macos-12 + #needs: test + env: + # Needed for macos SDK + AGREE: "true" + steps: + - name: Checkout code + uses: actions/checkout@v3 + with: + submodules: recursive + fetch-depth: 0 + + # Install Nix and use that to run our tests so our environment matches exactly. + - uses: cachix/install-nix-action@v19 + with: + nix_path: nixpkgs=channel:nixos-unstable + + # Cross-compile the binary. We always use static building for this + # because its the only way to access the headers. + - name: Test Build + run: nix develop -c zig build -Dstatic=true + test: strategy: matrix: From aa640fa29b5c798d379d25640e195ce20af66e08 Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Tue, 14 Feb 2023 11:58:53 -0800 Subject: [PATCH 13/54] ci: build macos app --- .github/workflows/test.yml | 32 +++++++++++++++++++++++++++++--- 1 file changed, 29 insertions(+), 3 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 944bd537d..214f6df1c 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -53,16 +53,42 @@ jobs: submodules: recursive fetch-depth: 0 + - name: Install Signing Certificates + env: + MACOS_CERTIFICATE: ${{ secrets.PROD_MACOS_CERTIFICATE }} + MACOS_CERTIFICATE_PWD: ${{ secrets.PROD_MACOS_CERTIFICATE_PWD }} + MACOS_CERTIFICATE_NAME: ${{ secrets.PROD_MACOS_CERTIFICATE_NAME }} + MACOS_CI_KEYCHAIN_PWD: ${{ secrets.PROD_MACOS_CI_KEYCHAIN_PWD }} + run: | + # Turn our base64-encoded certificate back to a regular .p12 file + echo $MACOS_CERTIFICATE | base64 --decode > certificate.p12 + + # We need to create a new keychain, otherwise using the certificate will prompt + # with a UI dialog asking for the certificate password, which we can't + # use in a headless CI environment + security create-keychain -p "$MACOS_CI_KEYCHAIN_PWD" build.keychain + security set-keychain-settings -lut 21600 build.keychain + security default-keychain -s build.keychain + security unlock-keychain -p "$MACOS_CI_KEYCHAIN_PWD" build.keychain + security import certificate.p12 -k build.keychain -P "$MACOS_CERTIFICATE_PWD" -T /usr/bin/codesign + security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k "$MACOS_CI_KEYCHAIN_PWD" build.keychain + # Install Nix and use that to run our tests so our environment matches exactly. - uses: cachix/install-nix-action@v19 with: nix_path: nixpkgs=channel:nixos-unstable - # Cross-compile the binary. We always use static building for this - # because its the only way to access the headers. - - name: Test Build + # GhosttyKit is the framework that is built from Zig for our native + # Mac app to access. + - name: Build GhosttyKit run: nix develop -c zig build -Dstatic=true + # The native app is built with native XCode tooling. This also does + # codesigning. IMPORTANT: this must NOT run in a Nix environment. + # Nix breaks xcodebuild so this has to be run outside. + - name: Build Ghostty.app + run: cd macos && xcodebuild + test: strategy: matrix: From 5d6e41557e56aefa26a76a411bff4172662d6e42 Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Tue, 14 Feb 2023 12:26:05 -0800 Subject: [PATCH 14/54] ci: try to xcodebuild --- .github/workflows/test.yml | 28 ++++++---------------------- 1 file changed, 6 insertions(+), 22 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 214f6df1c..21ad1bd62 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -53,26 +53,6 @@ jobs: submodules: recursive fetch-depth: 0 - - name: Install Signing Certificates - env: - MACOS_CERTIFICATE: ${{ secrets.PROD_MACOS_CERTIFICATE }} - MACOS_CERTIFICATE_PWD: ${{ secrets.PROD_MACOS_CERTIFICATE_PWD }} - MACOS_CERTIFICATE_NAME: ${{ secrets.PROD_MACOS_CERTIFICATE_NAME }} - MACOS_CI_KEYCHAIN_PWD: ${{ secrets.PROD_MACOS_CI_KEYCHAIN_PWD }} - run: | - # Turn our base64-encoded certificate back to a regular .p12 file - echo $MACOS_CERTIFICATE | base64 --decode > certificate.p12 - - # We need to create a new keychain, otherwise using the certificate will prompt - # with a UI dialog asking for the certificate password, which we can't - # use in a headless CI environment - security create-keychain -p "$MACOS_CI_KEYCHAIN_PWD" build.keychain - security set-keychain-settings -lut 21600 build.keychain - security default-keychain -s build.keychain - security unlock-keychain -p "$MACOS_CI_KEYCHAIN_PWD" build.keychain - security import certificate.p12 -k build.keychain -P "$MACOS_CERTIFICATE_PWD" -T /usr/bin/codesign - security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k "$MACOS_CI_KEYCHAIN_PWD" build.keychain - # Install Nix and use that to run our tests so our environment matches exactly. - uses: cachix/install-nix-action@v19 with: @@ -86,8 +66,12 @@ jobs: # The native app is built with native XCode tooling. This also does # codesigning. IMPORTANT: this must NOT run in a Nix environment. # Nix breaks xcodebuild so this has to be run outside. - - name: Build Ghostty.app - run: cd macos && xcodebuild + - uses: mxcl/xcodebuild@v1 + with: + code-sign-certificate: ${{ secrets.PROD_MACOS_CERTIFICATE }} + code-sign-certificate-passphrase: ${{ secrets.PROD_MACOS_CERTIFICATE_PWD }} + working-directory: macos + action: build test: strategy: From a2dd8d8abebdb1a8bde9990f343bc7fb5a103bef Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Tue, 14 Feb 2023 12:39:02 -0800 Subject: [PATCH 15/54] include: comment the modulemap --- include/module.modulemap | 3 +++ 1 file changed, 3 insertions(+) diff --git a/include/module.modulemap b/include/module.modulemap index 917796d89..8961f5c04 100644 --- a/include/module.modulemap +++ b/include/module.modulemap @@ -1,3 +1,6 @@ +// This makes Ghostty available to the XCode build for the macOS app. +// We append "Kit" to it not to be cute, but because targets have to have +// unique names and we use Ghostty for other things. module GhosttyKit { umbrella header "ghostty.h" export * From 6de6f100a982b13283d9da0b834eb91b7b20ea74 Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Tue, 14 Feb 2023 13:01:13 -0800 Subject: [PATCH 16/54] ci: revert back to scripting xcodebuild (broken) --- .github/workflows/test.yml | 28 ++++++++++++++++++++++------ 1 file changed, 22 insertions(+), 6 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 21ad1bd62..214f6df1c 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -53,6 +53,26 @@ jobs: submodules: recursive fetch-depth: 0 + - name: Install Signing Certificates + env: + MACOS_CERTIFICATE: ${{ secrets.PROD_MACOS_CERTIFICATE }} + MACOS_CERTIFICATE_PWD: ${{ secrets.PROD_MACOS_CERTIFICATE_PWD }} + MACOS_CERTIFICATE_NAME: ${{ secrets.PROD_MACOS_CERTIFICATE_NAME }} + MACOS_CI_KEYCHAIN_PWD: ${{ secrets.PROD_MACOS_CI_KEYCHAIN_PWD }} + run: | + # Turn our base64-encoded certificate back to a regular .p12 file + echo $MACOS_CERTIFICATE | base64 --decode > certificate.p12 + + # We need to create a new keychain, otherwise using the certificate will prompt + # with a UI dialog asking for the certificate password, which we can't + # use in a headless CI environment + security create-keychain -p "$MACOS_CI_KEYCHAIN_PWD" build.keychain + security set-keychain-settings -lut 21600 build.keychain + security default-keychain -s build.keychain + security unlock-keychain -p "$MACOS_CI_KEYCHAIN_PWD" build.keychain + security import certificate.p12 -k build.keychain -P "$MACOS_CERTIFICATE_PWD" -T /usr/bin/codesign + security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k "$MACOS_CI_KEYCHAIN_PWD" build.keychain + # Install Nix and use that to run our tests so our environment matches exactly. - uses: cachix/install-nix-action@v19 with: @@ -66,12 +86,8 @@ jobs: # The native app is built with native XCode tooling. This also does # codesigning. IMPORTANT: this must NOT run in a Nix environment. # Nix breaks xcodebuild so this has to be run outside. - - uses: mxcl/xcodebuild@v1 - with: - code-sign-certificate: ${{ secrets.PROD_MACOS_CERTIFICATE }} - code-sign-certificate-passphrase: ${{ secrets.PROD_MACOS_CERTIFICATE_PWD }} - working-directory: macos - action: build + - name: Build Ghostty.app + run: cd macos && xcodebuild test: strategy: From 4dd4bbf7e0a21f06de9ca6b03369cbaf6e43524b Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Tue, 14 Feb 2023 13:04:14 -0800 Subject: [PATCH 17/54] macos: disable code signing for now --- .github/workflows/test.yml | 20 -------------------- macos/Ghostty.xcodeproj/project.pbxproj | 8 ++++---- 2 files changed, 4 insertions(+), 24 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 214f6df1c..14f00e2be 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -53,26 +53,6 @@ jobs: submodules: recursive fetch-depth: 0 - - name: Install Signing Certificates - env: - MACOS_CERTIFICATE: ${{ secrets.PROD_MACOS_CERTIFICATE }} - MACOS_CERTIFICATE_PWD: ${{ secrets.PROD_MACOS_CERTIFICATE_PWD }} - MACOS_CERTIFICATE_NAME: ${{ secrets.PROD_MACOS_CERTIFICATE_NAME }} - MACOS_CI_KEYCHAIN_PWD: ${{ secrets.PROD_MACOS_CI_KEYCHAIN_PWD }} - run: | - # Turn our base64-encoded certificate back to a regular .p12 file - echo $MACOS_CERTIFICATE | base64 --decode > certificate.p12 - - # We need to create a new keychain, otherwise using the certificate will prompt - # with a UI dialog asking for the certificate password, which we can't - # use in a headless CI environment - security create-keychain -p "$MACOS_CI_KEYCHAIN_PWD" build.keychain - security set-keychain-settings -lut 21600 build.keychain - security default-keychain -s build.keychain - security unlock-keychain -p "$MACOS_CI_KEYCHAIN_PWD" build.keychain - security import certificate.p12 -k build.keychain -P "$MACOS_CERTIFICATE_PWD" -T /usr/bin/codesign - security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k "$MACOS_CI_KEYCHAIN_PWD" build.keychain - # Install Nix and use that to run our tests so our environment matches exactly. - uses: cachix/install-nix-action@v19 with: diff --git a/macos/Ghostty.xcodeproj/project.pbxproj b/macos/Ghostty.xcodeproj/project.pbxproj index 5e8e537a1..a766f2c0e 100644 --- a/macos/Ghostty.xcodeproj/project.pbxproj +++ b/macos/Ghostty.xcodeproj/project.pbxproj @@ -275,12 +275,12 @@ ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = NO; CODE_SIGN_ENTITLEMENTS = Ghostty.entitlements; - "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "-"; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; CURRENT_PROJECT_VERSION = 1; DEVELOPMENT_ASSET_PATHS = "\"Sources/Preview Content\""; - DEVELOPMENT_TEAM = GK79KXBF4F; + DEVELOPMENT_TEAM = ""; ENABLE_HARDENED_RUNTIME = YES; ENABLE_PREVIEWS = YES; GENERATE_INFOPLIST_FILE = YES; @@ -306,12 +306,12 @@ ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = NO; CODE_SIGN_ENTITLEMENTS = Ghostty.entitlements; - "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "-"; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; CURRENT_PROJECT_VERSION = 1; DEVELOPMENT_ASSET_PATHS = "\"Sources/Preview Content\""; - DEVELOPMENT_TEAM = GK79KXBF4F; + DEVELOPMENT_TEAM = ""; ENABLE_HARDENED_RUNTIME = YES; ENABLE_PREVIEWS = YES; GENERATE_INFOPLIST_FILE = YES; From 8b80e65928c8e38d9243d423eabdb164b7b1a4a0 Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Tue, 14 Feb 2023 13:56:43 -0800 Subject: [PATCH 18/54] lots of broken stuff --- build.zig | 48 ++++++++----- include/ghostty.h | 4 +- macos/Sources/GhosttyApp.swift | 6 +- src/App.zig | 16 ++++- src/main.zig | 122 ++++++++++++++++++++------------- src/main_c.zig | 8 +-- 6 files changed, 132 insertions(+), 72 deletions(-) diff --git a/build.zig b/build.zig index 539a0f148..311e6d6e2 100644 --- a/build.zig +++ b/build.zig @@ -140,6 +140,8 @@ pub fn build(b: *std.build.Builder) !void { static_lib.setTarget(target); static_lib.install(); static_lib.linkLibC(); + static_lib.addOptions("build_options", exe_options); + try addDeps(b, static_lib, true); b.default_step.dependOn(&static_lib.step); } @@ -150,8 +152,9 @@ pub fn build(b: *std.build.Builder) !void { const lib = b.addStaticLibrary("ghostty", "src/main_c.zig"); lib.setBuildMode(mode); lib.setTarget(try std.zig.CrossTarget.parse(.{ .arch_os_abi = "aarch64-macos" })); - lib.install(); lib.linkLibC(); + lib.addOptions("build_options", exe_options); + try addDeps(b, lib, true); b.default_step.dependOn(&lib.step); break :lib lib; }; @@ -160,8 +163,9 @@ pub fn build(b: *std.build.Builder) !void { const lib = b.addStaticLibrary("ghostty", "src/main_c.zig"); lib.setBuildMode(mode); lib.setTarget(try std.zig.CrossTarget.parse(.{ .arch_os_abi = "x86_64-macos" })); - lib.install(); lib.linkLibC(); + lib.addOptions("build_options", exe_options); + try addDeps(b, lib, true); b.default_step.dependOn(&lib.step); break :lib lib; }; @@ -368,12 +372,18 @@ fn addDeps( return; } + // If we're building a lib we have some different deps + const lib = step.kind == .lib; + + // We always require the system SDK so that our system headers are available. + // This makes things like `os/log.h` available for cross-compiling. + system_sdk.include(b, step, .{}); + // We always need the Zig packages if (enable_fontconfig) step.addModule("fontconfig", fontconfig.module(b)); step.addModule("freetype", freetype.module(b)); step.addModule("harfbuzz", harfbuzz.module(b)); step.addModule("imgui", imgui.module(b)); - step.addModule("glfw", glfw.module(b)); step.addModule("xev", libxev.module(b)); step.addModule("pixman", pixman.module(b)); step.addModule("stb_image_resize", stb_image_resize.module(b)); @@ -386,10 +396,6 @@ fn addDeps( _ = try macos.link(b, step, .{}); } - // We always statically compile glad - step.addIncludePath("vendor/glad/include/"); - step.addCSourceFile("vendor/glad/src/gl.c", &.{}); - // Tracy step.addModule("tracy", tracylib.module(b)); if (tracy) { @@ -403,13 +409,6 @@ fn addDeps( // utf8proc _ = try utf8proc.link(b, step); - // Glfw - const glfw_opts: glfw.Options = .{ - .metal = step.target.isDarwin(), - .opengl = false, - }; - try glfw.link(b, step, glfw_opts); - // Imgui, we have to do this later since we need some information const imgui_backends = if (step.target.isDarwin()) &[_][]const u8{ "glfw", "opengl3", "metal" } @@ -505,9 +504,24 @@ fn addDeps( imgui_opts.freetype.include = &freetype.include_paths; } - // Imgui - const imgui_step = try imgui.link(b, step, imgui_opts); - try glfw.link(b, imgui_step, glfw_opts); + if (!lib) { + step.addModule("glfw", glfw.module(b)); + + // We always statically compile glad + step.addIncludePath("vendor/glad/include/"); + step.addCSourceFile("vendor/glad/src/gl.c", &.{}); + + // Glfw + const glfw_opts: glfw.Options = .{ + .metal = step.target.isDarwin(), + .opengl = false, + }; + try glfw.link(b, step, glfw_opts); + + // Imgui + const imgui_step = try imgui.link(b, step, imgui_opts); + try glfw.link(b, imgui_step, glfw_opts); + } } fn benchSteps( diff --git a/include/ghostty.h b/include/ghostty.h index 2dedabefd..18940d6c5 100644 --- a/include/ghostty.h +++ b/include/ghostty.h @@ -7,7 +7,9 @@ extern "C" { #include -uint64_t ghostty_hello(void); +#define GHOSTTY_SUCCESS 0 + +int ghostty_init(void); #ifdef __cplusplus } diff --git a/macos/Sources/GhosttyApp.swift b/macos/Sources/GhosttyApp.swift index c05c5c1dd..53829b678 100644 --- a/macos/Sources/GhosttyApp.swift +++ b/macos/Sources/GhosttyApp.swift @@ -3,11 +3,13 @@ import GhosttyKit @main struct GhosttyApp: App { - @State private var num = ghostty_hello() + init() { + assert(ghostty_init() == GHOSTTY_SUCCESS, "ghostty failed to initialize"); + } var body: some Scene { WindowGroup { - Text(String(num)).font(.largeTitle) + Text("Hello!").font(.largeTitle) } } } diff --git a/src/App.zig b/src/App.zig index e1e01bd00..402937751 100644 --- a/src/App.zig +++ b/src/App.zig @@ -5,6 +5,7 @@ const App = @This(); const std = @import("std"); const builtin = @import("builtin"); +const assert = std.debug.assert; const Allocator = std.mem.Allocator; const apprt = @import("apprt.zig"); const Window = @import("Window.zig"); @@ -273,8 +274,7 @@ pub const Wasm = if (!builtin.target.isWasm()) struct {} else struct { const alloc = wasm.alloc; // export fn app_new(config: *Config) ?*App { - // return app_new_(config) catch |err| { - // log.err("error initializing app err={}", .{err}); + // return app_new_(config) catch |err| { log.err("error initializing app err={}", .{err}); // return null; // }; // } @@ -295,3 +295,15 @@ pub const Wasm = if (!builtin.target.isWasm()) struct {} else struct { // } // } }; + +pub const CAPI = struct { + const ProcessState = @import("main.zig").ProcessState; + var state: ?ProcessState = null; + + export fn ghostty_init() c_int { + assert(state == null); + state = undefined; + ProcessState.init(&state.?); + return 0; + } +}; diff --git a/src/main.zig b/src/main.zig index 61dc5e2ba..dad323b31 100644 --- a/src/main.zig +++ b/src/main.zig @@ -16,58 +16,88 @@ const App = @import("App.zig"); const cli_args = @import("cli_args.zig"); const Config = @import("config.zig").Config; -pub fn main() !void { - // Output some debug information right away - std.log.info("dependency harfbuzz={s}", .{harfbuzz.versionString()}); - if (options.fontconfig) { - std.log.info("dependency fontconfig={d}", .{fontconfig.version()}); - } - std.log.info("renderer={}", .{renderer.Renderer}); - std.log.info("libxev backend={}", .{xev.backend}); - - // First things first, we fix our file descriptors - internal_os.fixMaxFiles(); - - // We need to make sure the process locale is set properly. Locale - // affects a lot of behaviors in a shell. - internal_os.ensureLocale(); - +/// ProcessState represents the global process state. There should only +/// be one of these at any given moment. This is extracted into a dedicated +/// struct because it is reused by main and the static C lib. +/// +/// ProcessState.init should be one of the first things ever called +/// when using Ghostty. Ghostty calls this for you so this is more of a note +/// for maintainers. +pub const ProcessState = struct { const GPA = std.heap.GeneralPurposeAllocator(.{}); - var gpa: ?GPA = gpa: { - // Use the libc allocator if it is available beacuse it is WAY - // faster than GPA. We only do this in release modes so that we - // can get easy memory leak detection in debug modes. - if (builtin.link_libc) { - if (switch (builtin.mode) { - .ReleaseSafe, .ReleaseFast => true, - // We also use it if we can detect we're running under - // Valgrind since Valgrind only instruments the C allocator - else => std.valgrind.runningOnValgrind() > 0, - }) break :gpa null; + gpa: ?GPA, + alloc: std.mem.Allocator, + + pub fn init(self: *ProcessState) void { + // Output some debug information right away + std.log.info("dependency harfbuzz={s}", .{harfbuzz.versionString()}); + if (options.fontconfig) { + std.log.info("dependency fontconfig={d}", .{fontconfig.version()}); } + std.log.info("renderer={}", .{renderer.Renderer}); + std.log.info("libxev backend={}", .{xev.backend}); - break :gpa GPA{}; - }; - defer if (gpa) |*value| { - // We want to ensure that we deinit the GPA because this is - // the point at which it will output if there were safety violations. - _ = value.deinit(); - }; + // First things first, we fix our file descriptors + internal_os.fixMaxFiles(); - const alloc = alloc: { - const base = if (gpa) |*value| - value.allocator() - else if (builtin.link_libc) - std.heap.c_allocator - else - unreachable; + // We need to make sure the process locale is set properly. Locale + // affects a lot of behaviors in a shell. + internal_os.ensureLocale(); - // If we're tracing, wrap the allocator - if (!tracy.enabled) break :alloc base; - var tracy_alloc = tracy.allocator(base, null); - break :alloc tracy_alloc.allocator(); - }; + // Initialize ourself to nothing so we don't have any extra state. + self.* = .{ + .gpa = null, + .alloc = undefined, + }; + errdefer self.deinit(); + + self.gpa = gpa: { + // Use the libc allocator if it is available beacuse it is WAY + // faster than GPA. We only do this in release modes so that we + // can get easy memory leak detection in debug modes. + if (builtin.link_libc) { + if (switch (builtin.mode) { + .ReleaseSafe, .ReleaseFast => true, + + // We also use it if we can detect we're running under + // Valgrind since Valgrind only instruments the C allocator + else => std.valgrind.runningOnValgrind() > 0, + }) break :gpa null; + } + + break :gpa GPA{}; + }; + + self.alloc = alloc: { + const base = if (self.gpa) |*value| + value.allocator() + else if (builtin.link_libc) + std.heap.c_allocator + else + unreachable; + + // If we're tracing, wrap the allocator + if (!tracy.enabled) break :alloc base; + var tracy_alloc = tracy.allocator(base, null); + break :alloc tracy_alloc.allocator(); + }; + } + + pub fn deinit(self: *ProcessState) void { + if (self.gpa) |*value| { + // We want to ensure that we deinit the GPA because this is + // the point at which it will output if there were safety violations. + _ = value.deinit(); + } + } +}; + +pub fn main() !void { + var state: ProcessState = undefined; + ProcessState.init(&state); + defer state.deinit(); + const alloc = state.alloc; // Try reading our config var config = try Config.default(alloc); diff --git a/src/main_c.zig b/src/main_c.zig index 723698fb6..d00a5e62b 100644 --- a/src/main_c.zig +++ b/src/main_c.zig @@ -4,8 +4,8 @@ // support). const std = @import("std"); const builtin = @import("builtin"); +const main = @import("main.zig"); -// We're just testing right now. -export fn ghostty_hello() u64 { - return 42; -} +pub usingnamespace @import("App.zig").CAPI; + +pub const std_options = main.std_options; From 9fcc9ce3026a939526a0f356cf3bb6aa17743eb3 Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Tue, 14 Feb 2023 13:57:02 -0800 Subject: [PATCH 19/54] macos: add missing Preview Content folder --- macos/Sources/Preview Content/.gitkeep | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 macos/Sources/Preview Content/.gitkeep diff --git a/macos/Sources/Preview Content/.gitkeep b/macos/Sources/Preview Content/.gitkeep new file mode 100644 index 000000000..e69de29bb From d2dd3df86a8912854bb9dc4b801b35a998d3c02a Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Tue, 14 Feb 2023 14:15:34 -0800 Subject: [PATCH 20/54] libtoolstep --- build.zig | 60 +++++++++++++++++++++++++--------- src/build/LibtoolStep.zig | 68 +++++++++++++++++++++++++++++++++++++++ 2 files changed, 113 insertions(+), 15 deletions(-) create mode 100644 src/build/LibtoolStep.zig diff --git a/build.zig b/build.zig index 311e6d6e2..bf4179ae0 100644 --- a/build.zig +++ b/build.zig @@ -21,6 +21,7 @@ const zlib = @import("pkg/zlib/build.zig"); const tracylib = @import("pkg/tracy/build.zig"); const system_sdk = @import("vendor/mach/libs/glfw/system_sdk.zig"); const WasmTarget = @import("src/os/wasm/target.zig").Target; +const LibtoolStep = @import("src/build/LibtoolStep.zig"); const LipoStep = @import("src/build/LipoStep.zig"); const XCFrameworkStep = @import("src/build/XCFrameworkStep.zig"); @@ -122,7 +123,7 @@ pub fn build(b: *std.build.Builder) !void { exe.install(); // Add the shared dependencies - try addDeps(b, exe, static); + _ = try addDeps(b, exe, static); } // App (Mac) @@ -141,7 +142,7 @@ pub fn build(b: *std.build.Builder) !void { static_lib.install(); static_lib.linkLibC(); static_lib.addOptions("build_options", exe_options); - try addDeps(b, static_lib, true); + _ = try addDeps(b, static_lib, true); b.default_step.dependOn(&static_lib.step); } @@ -154,9 +155,19 @@ pub fn build(b: *std.build.Builder) !void { lib.setTarget(try std.zig.CrossTarget.parse(.{ .arch_os_abi = "aarch64-macos" })); lib.linkLibC(); lib.addOptions("build_options", exe_options); - try addDeps(b, lib, true); b.default_step.dependOn(&lib.step); - break :lib lib; + + // Create a single static lib with all our dependencies merged + var lib_list = try addDeps(b, lib, true); + try lib_list.append(.{ .generated = &lib.output_path_source }); + const libtool = LibtoolStep.create(b, .{ + .name = "ghostty", + .out_name = "libghostty-aarch64-fat.a", + .sources = lib_list.items, + }); + b.default_step.dependOn(&libtool.step); + + break :lib libtool; }; const static_lib_x86_64 = lib: { @@ -165,16 +176,26 @@ pub fn build(b: *std.build.Builder) !void { lib.setTarget(try std.zig.CrossTarget.parse(.{ .arch_os_abi = "x86_64-macos" })); lib.linkLibC(); lib.addOptions("build_options", exe_options); - try addDeps(b, lib, true); b.default_step.dependOn(&lib.step); - break :lib lib; + + // Create a single static lib with all our dependencies merged + var lib_list = try addDeps(b, lib, true); + try lib_list.append(.{ .generated = &lib.output_path_source }); + const libtool = LibtoolStep.create(b, .{ + .name = "ghostty", + .out_name = "libghostty-x86_64-fat.a", + .sources = lib_list.items, + }); + b.default_step.dependOn(&libtool.step); + + break :lib libtool; }; const static_lib_universal = LipoStep.create(b, .{ .name = "ghostty", .out_name = "libghostty.a", - .input_a = .{ .generated = &static_lib_aarch64.output_path_source }, - .input_b = .{ .generated = &static_lib_x86_64.output_path_source }, + .input_a = .{ .generated = &static_lib_aarch64.out_path }, + .input_b = .{ .generated = &static_lib_x86_64.out_path }, }); static_lib_universal.step.dependOn(&static_lib_aarch64.step); static_lib_universal.step.dependOn(&static_lib_x86_64.step); @@ -240,7 +261,7 @@ pub fn build(b: *std.build.Builder) !void { wasm.stack_protector = false; // Wasm-specific deps - try addDeps(b, wasm, true); + _ = try addDeps(b, wasm, true); const step = b.step("wasm", "Build the wasm library"); step.dependOn(&wasm.step); @@ -255,7 +276,7 @@ pub fn build(b: *std.build.Builder) !void { .target = wasm_target, }); main_test.addOptions("build_options", exe_options); - try addDeps(b, main_test, true); + _ = try addDeps(b, main_test, true); test_step.dependOn(&main_test.step); } @@ -299,7 +320,7 @@ pub fn build(b: *std.build.Builder) !void { main_test_exe.install(); } main_test.setFilter(test_filter); - try addDeps(b, main_test, true); + _ = try addDeps(b, main_test, true); main_test.addOptions("build_options", exe_options); var before = b.addLog("\x1b[" ++ color_map.get("cyan").? ++ "\x1b[" ++ color_map.get("b").? ++ "[{s} tests]" ++ "\x1b[" ++ color_map.get("d").? ++ " ----" ++ "\x1b[0m", .{"ghostty"}); @@ -327,7 +348,7 @@ pub fn build(b: *std.build.Builder) !void { .target = target, }); - try addDeps(b, test_run, true); + _ = try addDeps(b, test_run, true); // if (pkg.dependencies) |children| { // test_.packages = std.ArrayList(std.build.Pkg).init(b.allocator); // try test_.packages.appendSlice(children); @@ -352,12 +373,18 @@ pub fn build(b: *std.build.Builder) !void { } } +/// Used to keep track of a list of file sources. +const FileSourceList = std.ArrayList(std.build.FileSource); + /// Adds and links all of the primary dependencies for the exe. fn addDeps( b: *std.build.Builder, step: *std.build.LibExeObjStep, static: bool, -) !void { +) !FileSourceList { + var static_libs = FileSourceList.init(b.allocator); + errdefer static_libs.deinit(); + // Wasm we do manually since it is such a different build. if (step.target.getCpuArch() == .wasm32) { // We link this package but its a no-op since Tracy @@ -369,7 +396,7 @@ fn addDeps( // utf8proc _ = try utf8proc.link(b, step); - return; + return static_libs; } // If we're building a lib we have some different deps @@ -470,6 +497,7 @@ fn addDeps( }, }); system_sdk.include(b, harfbuzz_step, .{}); + try static_libs.append(.{ .generated = &harfbuzz_step.output_path_source }); // Pixman const pixman_step = try pixman.link(b, step, .{}); @@ -522,6 +550,8 @@ fn addDeps( const imgui_step = try imgui.link(b, step, imgui_opts); try glfw.link(b, imgui_step, glfw_opts); } + + return static_libs; } fn benchSteps( @@ -561,7 +591,7 @@ fn benchSteps( }); c_exe.setMainPkgPath("./src"); c_exe.install(); - try addDeps(b, c_exe, true); + _ = try addDeps(b, c_exe, true); } } diff --git a/src/build/LibtoolStep.zig b/src/build/LibtoolStep.zig new file mode 100644 index 000000000..0870073eb --- /dev/null +++ b/src/build/LibtoolStep.zig @@ -0,0 +1,68 @@ +//! A zig builder step that runs "lipo" on two binaries to create +//! a universal binary. +const LibtoolStep = @This(); + +const std = @import("std"); +const Step = std.build.Step; +const FileSource = std.build.FileSource; +const GeneratedFile = std.build.GeneratedFile; + +pub const Options = struct { + /// The name of the xcframework to create. + name: []const u8, + + /// The filename (not the path) of the file to create. + out_name: []const u8, + + /// Library file (dylib, a) to package. + sources: []FileSource, +}; + +step: Step, +builder: *std.build.Builder, + +/// Resulting binary +out_path: GeneratedFile, + +/// See Options +name: []const u8, +out_name: []const u8, +sources: []FileSource, + +pub fn create(builder: *std.build.Builder, opts: Options) *LibtoolStep { + const self = builder.allocator.create(LibtoolStep) catch @panic("OOM"); + self.* = .{ + .step = Step.init(.custom, builder.fmt("lipo {s}", .{opts.name}), builder.allocator, make), + .builder = builder, + .name = opts.name, + .out_path = .{ .step = &self.step }, + .out_name = opts.out_name, + .sources = opts.sources, + }; + return self; +} + +fn make(step: *Step) !void { + const self = @fieldParentPtr(LibtoolStep, "step", step); + + // TODO: use the zig cache system when it is in the stdlib + // https://github.com/ziglang/zig/pull/14571 + const output_path = self.builder.pathJoin(&.{ + self.builder.cache_root, self.out_name, + }); + + // We use a RunStep here to ease our configuration. + { + const run = std.build.RunStep.create(self.builder, self.builder.fmt( + "libtool {s}", + .{self.name}, + )); + run.addArgs(&.{ "libtool", "-static", "-o", output_path }); + for (self.sources) |source| { + run.addArg(source.getPath(self.builder)); + } + try run.step.make(); + } + + self.out_path.path = output_path; +} From d2d21801d87024060d873068c5da738582a50b22 Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Tue, 14 Feb 2023 14:21:26 -0800 Subject: [PATCH 21/54] macos: need to link to libstdc++ --- build.zig | 4 ++++ macos/Ghostty.xcodeproj/project.pbxproj | 2 ++ 2 files changed, 6 insertions(+) diff --git a/build.zig b/build.zig index bf4179ae0..f417039f3 100644 --- a/build.zig +++ b/build.zig @@ -462,12 +462,15 @@ fn addDeps( // Other dependencies, we may dynamically link if (static) { const zlib_step = try zlib.link(b, step); + try static_libs.append(.{ .generated = &zlib_step.output_path_source }); + const libpng_step = try libpng.link(b, step, .{ .zlib = .{ .step = zlib_step, .include = &zlib.include_paths, }, }); + try static_libs.append(.{ .generated = &libpng_step.output_path_source }); // Freetype const freetype_step = try freetype.link(b, step, .{ @@ -483,6 +486,7 @@ fn addDeps( .include = &zlib.include_paths, }, }); + try static_libs.append(.{ .generated = &freetype_step.output_path_source }); // Harfbuzz const harfbuzz_step = try harfbuzz.link(b, step, .{ diff --git a/macos/Ghostty.xcodeproj/project.pbxproj b/macos/Ghostty.xcodeproj/project.pbxproj index a766f2c0e..f9a804993 100644 --- a/macos/Ghostty.xcodeproj/project.pbxproj +++ b/macos/Ghostty.xcodeproj/project.pbxproj @@ -292,6 +292,7 @@ "@executable_path/../Frameworks", ); MARKETING_VERSION = 0.1; + "OTHER_LDFLAGS[arch=*]" = "-lstdc++"; PRODUCT_BUNDLE_IDENTIFIER = com.mitchellh.Ghostty; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_EMIT_LOC_STRINGS = YES; @@ -323,6 +324,7 @@ "@executable_path/../Frameworks", ); MARKETING_VERSION = 0.1; + "OTHER_LDFLAGS[arch=*]" = "-lstdc++"; PRODUCT_BUNDLE_IDENTIFIER = com.mitchellh.Ghostty; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_EMIT_LOC_STRINGS = YES; From 6fc4b144a24b7a4d2dd517b017aad4ef1bc11432 Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Tue, 14 Feb 2023 14:28:45 -0800 Subject: [PATCH 22/54] build: update libtool step docs --- src/build/LibtoolStep.zig | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/src/build/LibtoolStep.zig b/src/build/LibtoolStep.zig index 0870073eb..e3395c880 100644 --- a/src/build/LibtoolStep.zig +++ b/src/build/LibtoolStep.zig @@ -1,5 +1,5 @@ -//! A zig builder step that runs "lipo" on two binaries to create -//! a universal binary. +//! A zig builder step that runs "libtool" against a list of libraries +//! in order to create a single combined static library. const LibtoolStep = @This(); const std = @import("std"); @@ -8,13 +8,14 @@ const FileSource = std.build.FileSource; const GeneratedFile = std.build.GeneratedFile; pub const Options = struct { - /// The name of the xcframework to create. + /// The name of this step. name: []const u8, - /// The filename (not the path) of the file to create. + /// The filename (not the path) of the file to create. This will + /// be placed in a unique hashed directory. Use out_path to access. out_name: []const u8, - /// Library file (dylib, a) to package. + /// Library files (.a) to combine. sources: []FileSource, }; From 9bd527fe00a89aa34f396e82609e8913c2410e31 Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Tue, 14 Feb 2023 15:53:28 -0800 Subject: [PATCH 23/54] macos: config API --- build.zig | 12 ---- include/ghostty.h | 16 ++++- macos/Sources/GhosttyApp.swift | 61 +++++++++++++++++-- src/App.zig | 10 +--- src/config.zig | 53 +++++++++++++++++ src/main.zig | 89 +--------------------------- src/main_c.zig | 103 ++++++++++++++++++++++++++++++++- 7 files changed, 229 insertions(+), 115 deletions(-) diff --git a/build.zig b/build.zig index f417039f3..b877f1383 100644 --- a/build.zig +++ b/build.zig @@ -134,18 +134,6 @@ pub fn build(b: *std.build.Builder) !void { b.installFile("dist/macos/Ghostty.icns", "Ghostty.app/Contents/Resources/Ghostty.icns"); } - // c lib - { - const static_lib = b.addStaticLibrary("ghostty", "src/main_c.zig"); - static_lib.setBuildMode(mode); - static_lib.setTarget(target); - static_lib.install(); - static_lib.linkLibC(); - static_lib.addOptions("build_options", exe_options); - _ = try addDeps(b, static_lib, true); - b.default_step.dependOn(&static_lib.step); - } - // On Mac we can build the app. const macapp = b.step("macapp", "Build macOS app using XCode."); if (builtin.target.isDarwin()) { diff --git a/include/ghostty.h b/include/ghostty.h index 18940d6c5..36935c815 100644 --- a/include/ghostty.h +++ b/include/ghostty.h @@ -1,3 +1,10 @@ +// Ghostty embedding API. The documentation for the embedding API is +// only within the Zig source files that define the implementations. This +// isn't meant to be a general purpose embedding API (yet) so there hasn't +// been documentation or example work beyond that. +// +// The only consumer of this API is the macOS app, but the API is built to +// be more general purpose. #ifndef GHOSTTY_H #define GHOSTTY_H @@ -7,9 +14,14 @@ extern "C" { #include -#define GHOSTTY_SUCCESS 0 +typedef void *ghostty_t; +typedef void *ghostty_config_t; -int ghostty_init(void); +ghostty_t ghostty_init(void); +ghostty_config_t ghostty_config_new(ghostty_t); +void ghostty_config_free(ghostty_t, ghostty_config_t); +void ghostty_config_load_string(ghostty_t, ghostty_config_t, const char *, uintptr_t); +void ghostty_config_finalize(ghostty_config_t); #ifdef __cplusplus } diff --git a/macos/Sources/GhosttyApp.swift b/macos/Sources/GhosttyApp.swift index 53829b678..2373ea0a3 100644 --- a/macos/Sources/GhosttyApp.swift +++ b/macos/Sources/GhosttyApp.swift @@ -1,15 +1,68 @@ +import OSLog import SwiftUI import GhosttyKit @main struct GhosttyApp: App { - init() { - assert(ghostty_init() == GHOSTTY_SUCCESS, "ghostty failed to initialize"); - } + static let logger = Logger( + subsystem: Bundle.main.bundleIdentifier!, + category: String(describing: GhosttyApp.self) + ) + + /// The ghostty global state. Only one per process. + @StateObject private var ghostty = GhosttyState() var body: some Scene { WindowGroup { - Text("Hello!").font(.largeTitle) + switch ghostty.readiness { + case .error: + Text("Error") + case .ready: + Text("Hello!").font(.largeTitle) + } } } } + +class GhosttyState: ObservableObject { + enum Readiness { + case error, ready + } + + /// The readiness value of the state. + var readiness: Readiness { ghostty != nil ? .ready : .error } + + /// The ghostty global state. + var ghostty: ghostty_t? = nil + + /// The ghostty global configuration. + var config: ghostty_config_t? = nil + + init() { + // Initialize ghostty global state. This happens once per process. + guard let g = ghostty_init() else { + GhosttyApp.logger.critical("ghostty_init failed") + return + } + + // Initialize the global configuration. + guard let cfg = ghostty_config_new(g) else { + GhosttyApp.logger.critical("ghostty_config_new failed") + return + } + + // TODO: we'd probably do some config loading here... for now we'd + // have to do this synchronously. When we support config updating we can do + // this async and update later. + + // Finalize will make our defaults available. + ghostty_config_finalize(cfg) + + ghostty = g; + config = cfg; + } + + deinit { + ghostty_config_free(ghostty, config) + } +} diff --git a/src/App.zig b/src/App.zig index 402937751..aaeca8f86 100644 --- a/src/App.zig +++ b/src/App.zig @@ -297,13 +297,5 @@ pub const Wasm = if (!builtin.target.isWasm()) struct {} else struct { }; pub const CAPI = struct { - const ProcessState = @import("main.zig").ProcessState; - var state: ?ProcessState = null; - - export fn ghostty_init() c_int { - assert(state == null); - state = undefined; - ProcessState.init(&state.?); - return 0; - } + const Ghostty = @import("main_c.zig").Ghostty; }; diff --git a/src/config.zig b/src/config.zig index 0e9ee8943..ece999dac 100644 --- a/src/config.zig +++ b/src/config.zig @@ -583,6 +583,59 @@ pub const Wasm = if (!builtin.target.isWasm()) struct {} else struct { } }; +// Wasm API. +pub const CAPI = struct { + const Ghostty = @import("main_c.zig").Ghostty; + const cli_args = @import("cli_args.zig"); + + /// Create a new configuration filled with the initial default values. + export fn ghostty_config_new(g: *Ghostty) ?*Config { + const result = g.alloc.create(Config) catch |err| { + log.err("error allocating config err={}", .{err}); + return null; + }; + + result.* = Config.default(g.alloc) catch |err| { + log.err("error creating config err={}", .{err}); + return null; + }; + + return result; + } + + export fn ghostty_config_free(g: *Ghostty, ptr: ?*Config) void { + if (ptr) |v| { + v.deinit(); + g.alloc.destroy(v); + } + } + + /// Load the configuration from a string in the same format as + /// the file-based syntax for the desktop version of the terminal. + export fn ghostty_config_load_string( + g: *Ghostty, + self: *Config, + str: [*]const u8, + len: usize, + ) void { + config_load_string_(g, self, str[0..len]) catch |err| { + log.err("error loading config err={}", .{err}); + }; + } + + fn config_load_string_(g: *Ghostty, self: *Config, str: []const u8) !void { + var fbs = std.io.fixedBufferStream(str); + var iter = cli_args.lineIterator(fbs.reader()); + try cli_args.parse(Config, g.alloc, self, &iter); + } + + export fn ghostty_config_finalize(self: *Config) void { + self.finalize() catch |err| { + log.err("error finalizing config err={}", .{err}); + }; + } +}; + test { std.testing.refAllDecls(@This()); } diff --git a/src/main.zig b/src/main.zig index dad323b31..b4b1b7baf 100644 --- a/src/main.zig +++ b/src/main.zig @@ -2,100 +2,17 @@ const std = @import("std"); const builtin = @import("builtin"); const options = @import("build_options"); const glfw = @import("glfw"); -const fontconfig = @import("fontconfig"); -const freetype = @import("freetype"); -const harfbuzz = @import("harfbuzz"); const macos = @import("macos"); -const tracy = @import("tracy"); -const xev = @import("xev"); -const renderer = @import("renderer.zig"); const xdg = @import("xdg.zig"); -const internal_os = @import("os/main.zig"); const App = @import("App.zig"); const cli_args = @import("cli_args.zig"); const Config = @import("config.zig").Config; - -/// ProcessState represents the global process state. There should only -/// be one of these at any given moment. This is extracted into a dedicated -/// struct because it is reused by main and the static C lib. -/// -/// ProcessState.init should be one of the first things ever called -/// when using Ghostty. Ghostty calls this for you so this is more of a note -/// for maintainers. -pub const ProcessState = struct { - const GPA = std.heap.GeneralPurposeAllocator(.{}); - - gpa: ?GPA, - alloc: std.mem.Allocator, - - pub fn init(self: *ProcessState) void { - // Output some debug information right away - std.log.info("dependency harfbuzz={s}", .{harfbuzz.versionString()}); - if (options.fontconfig) { - std.log.info("dependency fontconfig={d}", .{fontconfig.version()}); - } - std.log.info("renderer={}", .{renderer.Renderer}); - std.log.info("libxev backend={}", .{xev.backend}); - - // First things first, we fix our file descriptors - internal_os.fixMaxFiles(); - - // We need to make sure the process locale is set properly. Locale - // affects a lot of behaviors in a shell. - internal_os.ensureLocale(); - - // Initialize ourself to nothing so we don't have any extra state. - self.* = .{ - .gpa = null, - .alloc = undefined, - }; - errdefer self.deinit(); - - self.gpa = gpa: { - // Use the libc allocator if it is available beacuse it is WAY - // faster than GPA. We only do this in release modes so that we - // can get easy memory leak detection in debug modes. - if (builtin.link_libc) { - if (switch (builtin.mode) { - .ReleaseSafe, .ReleaseFast => true, - - // We also use it if we can detect we're running under - // Valgrind since Valgrind only instruments the C allocator - else => std.valgrind.runningOnValgrind() > 0, - }) break :gpa null; - } - - break :gpa GPA{}; - }; - - self.alloc = alloc: { - const base = if (self.gpa) |*value| - value.allocator() - else if (builtin.link_libc) - std.heap.c_allocator - else - unreachable; - - // If we're tracing, wrap the allocator - if (!tracy.enabled) break :alloc base; - var tracy_alloc = tracy.allocator(base, null); - break :alloc tracy_alloc.allocator(); - }; - } - - pub fn deinit(self: *ProcessState) void { - if (self.gpa) |*value| { - // We want to ensure that we deinit the GPA because this is - // the point at which it will output if there were safety violations. - _ = value.deinit(); - } - } -}; +const Ghostty = @import("main_c.zig").Ghostty; pub fn main() !void { - var state: ProcessState = undefined; - ProcessState.init(&state); + var state: Ghostty = undefined; + Ghostty.init(&state); defer state.deinit(); const alloc = state.alloc; diff --git a/src/main_c.zig b/src/main_c.zig index d00a5e62b..04cde6282 100644 --- a/src/main_c.zig +++ b/src/main_c.zig @@ -2,10 +2,109 @@ // within other applications. Depending on the build settings some APIs // may not be available (i.e. embedding into macOS exposes various Metal // support). +// +// This currently isn't supported as a general purpose embedding API. +// This is currently used only to embed ghostty within a macOS app. However, +// it could be expanded to be general purpose in the future. const std = @import("std"); +const assert = std.debug.assert; const builtin = @import("builtin"); +const options = @import("build_options"); +const fontconfig = @import("fontconfig"); +const harfbuzz = @import("harfbuzz"); +const renderer = @import("renderer.zig"); +const tracy = @import("tracy"); +const xev = @import("xev"); +const internal_os = @import("os/main.zig"); const main = @import("main.zig"); -pub usingnamespace @import("App.zig").CAPI; - +/// Global options so we can log. This is identical to main. pub const std_options = main.std_options; + +pub usingnamespace @import("App.zig").CAPI; +pub usingnamespace @import("config.zig").CAPI; + +/// Initialize ghostty global state. It is possible to have more than +/// one global state but it has zero practical benefit. +export fn ghostty_init() ?*Ghostty { + assert(builtin.link_libc); + const alloc = std.heap.c_allocator; + const g = alloc.create(Ghostty) catch return null; + Ghostty.init(g); + return g; +} + +/// This represents the global process state. There should only +/// be one of these at any given moment. This is extracted into a dedicated +/// struct because it is reused by main and the static C lib. +/// +/// init should be one of the first things ever called when using Ghostty. +pub const Ghostty = struct { + const GPA = std.heap.GeneralPurposeAllocator(.{}); + + gpa: ?GPA, + alloc: std.mem.Allocator, + + pub fn init(self: *Ghostty) void { + // Output some debug information right away + std.log.info("dependency harfbuzz={s}", .{harfbuzz.versionString()}); + if (options.fontconfig) { + std.log.info("dependency fontconfig={d}", .{fontconfig.version()}); + } + std.log.info("renderer={}", .{renderer.Renderer}); + std.log.info("libxev backend={}", .{xev.backend}); + + // First things first, we fix our file descriptors + internal_os.fixMaxFiles(); + + // We need to make sure the process locale is set properly. Locale + // affects a lot of behaviors in a shell. + internal_os.ensureLocale(); + + // Initialize ourself to nothing so we don't have any extra state. + self.* = .{ + .gpa = null, + .alloc = undefined, + }; + errdefer self.deinit(); + + self.gpa = gpa: { + // Use the libc allocator if it is available beacuse it is WAY + // faster than GPA. We only do this in release modes so that we + // can get easy memory leak detection in debug modes. + if (builtin.link_libc) { + if (switch (builtin.mode) { + .ReleaseSafe, .ReleaseFast => true, + + // We also use it if we can detect we're running under + // Valgrind since Valgrind only instruments the C allocator + else => std.valgrind.runningOnValgrind() > 0, + }) break :gpa null; + } + + break :gpa GPA{}; + }; + + self.alloc = alloc: { + const base = if (self.gpa) |*value| + value.allocator() + else if (builtin.link_libc) + std.heap.c_allocator + else + unreachable; + + // If we're tracing, wrap the allocator + if (!tracy.enabled) break :alloc base; + var tracy_alloc = tracy.allocator(base, null); + break :alloc tracy_alloc.allocator(); + }; + } + + pub fn deinit(self: *Ghostty) void { + if (self.gpa) |*value| { + // We want to ensure that we deinit the GPA because this is + // the point at which it will output if there were safety violations. + _ = value.deinit(); + } + } +}; From c438d72f13370debe039da6b1824b15920e7d3c7 Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Tue, 14 Feb 2023 16:11:47 -0800 Subject: [PATCH 24/54] macos: add ErrorView --- ...9ff5fc30-a244-441e-9882-26070662adf9 1.png | Bin 0 -> 247497 bytes ...9ff5fc30-a244-441e-9882-26070662adf9 2.png | Bin 0 -> 247497 bytes ...1-9ff5fc30-a244-441e-9882-26070662adf9.png | Bin 0 -> 247497 bytes .../AppIconImage.imageset/Contents.json | 23 +++++++++++++++++ macos/Ghostty.xcodeproj/project.pbxproj | 12 ++++++--- macos/Sources/ErrorView.swift | 24 ++++++++++++++++++ macos/Sources/GhosttyApp.swift | 4 +-- 7 files changed, 57 insertions(+), 6 deletions(-) create mode 100644 macos/Assets.xcassets/AppIconImage.imageset/199110421-9ff5fc30-a244-441e-9882-26070662adf9 1.png create mode 100644 macos/Assets.xcassets/AppIconImage.imageset/199110421-9ff5fc30-a244-441e-9882-26070662adf9 2.png create mode 100644 macos/Assets.xcassets/AppIconImage.imageset/199110421-9ff5fc30-a244-441e-9882-26070662adf9.png create mode 100644 macos/Assets.xcassets/AppIconImage.imageset/Contents.json create mode 100644 macos/Sources/ErrorView.swift diff --git a/macos/Assets.xcassets/AppIconImage.imageset/199110421-9ff5fc30-a244-441e-9882-26070662adf9 1.png b/macos/Assets.xcassets/AppIconImage.imageset/199110421-9ff5fc30-a244-441e-9882-26070662adf9 1.png new file mode 100644 index 0000000000000000000000000000000000000000..3c572d2670f3b2aa8d55c23bccf7b3afd8e4c15c GIT binary patch literal 247497 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 $;j{!j|e+I8kBe-?qB6bwU*`X_M25 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 z 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 $;j{!j|e+I8kBe-?qB6bwU*`X_M25 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 z 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 $;j{!j|e+I8kBe-?qB6bwU*`X_M25 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 z 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"; }; A5B30531299BEAAA0047F10C /* Ghostty.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Ghostty.app; sourceTree = BUILT_PRODUCTS_DIR; }; A5B30534299BEAAA0047F10C /* GhosttyApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GhosttyApp.swift; sourceTree = ""; }; A5B30536299BEAAA0047F10C /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; }; @@ -40,6 +42,7 @@ A5D495A0299BEC2200DD1313 /* Preview Content */, A5B30534299BEAAA0047F10C /* GhosttyApp.swift */, A5B30536299BEAAA0047F10C /* ContentView.swift */, + A535B9D9299C569B0017E2E4 /* ErrorView.swift */, ); path = Sources; sourceTree = ""; @@ -148,6 +151,7 @@ buildActionMask = 2147483647; files = ( A5B30537299BEAAA0047F10C /* ContentView.swift in Sources */, + A535B9DA299C569B0017E2E4 /* ErrorView.swift in Sources */, A5B30535299BEAAA0047F10C /* GhosttyApp.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; @@ -275,12 +279,12 @@ ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = NO; CODE_SIGN_ENTITLEMENTS = Ghostty.entitlements; - "CODE_SIGN_IDENTITY[sdk=macosx*]" = "-"; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; CURRENT_PROJECT_VERSION = 1; DEVELOPMENT_ASSET_PATHS = "\"Sources/Preview Content\""; - DEVELOPMENT_TEAM = ""; + DEVELOPMENT_TEAM = GK79KXBF4F; ENABLE_HARDENED_RUNTIME = YES; ENABLE_PREVIEWS = YES; GENERATE_INFOPLIST_FILE = YES; @@ -307,12 +311,12 @@ ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = NO; CODE_SIGN_ENTITLEMENTS = Ghostty.entitlements; - "CODE_SIGN_IDENTITY[sdk=macosx*]" = "-"; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; CURRENT_PROJECT_VERSION = 1; DEVELOPMENT_ASSET_PATHS = "\"Sources/Preview Content\""; - DEVELOPMENT_TEAM = ""; + DEVELOPMENT_TEAM = GK79KXBF4F; ENABLE_HARDENED_RUNTIME = YES; ENABLE_PREVIEWS = YES; GENERATE_INFOPLIST_FILE = YES; diff --git a/macos/Sources/ErrorView.swift b/macos/Sources/ErrorView.swift new file mode 100644 index 000000000..3a921667d --- /dev/null +++ b/macos/Sources/ErrorView.swift @@ -0,0 +1,24 @@ +import SwiftUI + +struct ErrorView: View { + var body: some View { + HStack { + Image("AppIconImage") + .resizable() + .scaledToFit() + .frame(width: 128, height: 128) + + VStack(alignment: .leading) { + Text("Oh, no. 😭").font(.title) + Text("Something went fatally wrong.\nCheck the logs and restart Ghostty.") + } + } + .padding() + } +} + +struct ErrorView_Previews: PreviewProvider { + static var previews: some View { + ErrorView() + } +} diff --git a/macos/Sources/GhosttyApp.swift b/macos/Sources/GhosttyApp.swift index 2373ea0a3..819c6f1eb 100644 --- a/macos/Sources/GhosttyApp.swift +++ b/macos/Sources/GhosttyApp.swift @@ -16,9 +16,9 @@ struct GhosttyApp: App { WindowGroup { switch ghostty.readiness { case .error: - Text("Error") + ErrorView() case .ready: - Text("Hello!").font(.largeTitle) + ContentView() } } } From 2b3531378f71e2c779b14efb9a1de6c400e573a9 Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Tue, 14 Feb 2023 16:13:48 -0800 Subject: [PATCH 25/54] build: bundle compiler rt --- build.zig | 2 ++ macos/Ghostty.xcodeproj/project.pbxproj | 8 ++++---- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/build.zig b/build.zig index b877f1383..3c6e8818f 100644 --- a/build.zig +++ b/build.zig @@ -139,6 +139,7 @@ pub fn build(b: *std.build.Builder) !void { if (builtin.target.isDarwin()) { const static_lib_aarch64 = lib: { const lib = b.addStaticLibrary("ghostty", "src/main_c.zig"); + lib.bundle_compiler_rt = true; lib.setBuildMode(mode); lib.setTarget(try std.zig.CrossTarget.parse(.{ .arch_os_abi = "aarch64-macos" })); lib.linkLibC(); @@ -160,6 +161,7 @@ pub fn build(b: *std.build.Builder) !void { const static_lib_x86_64 = lib: { const lib = b.addStaticLibrary("ghostty", "src/main_c.zig"); + lib.bundle_compiler_rt = true; lib.setBuildMode(mode); lib.setTarget(try std.zig.CrossTarget.parse(.{ .arch_os_abi = "x86_64-macos" })); lib.linkLibC(); diff --git a/macos/Ghostty.xcodeproj/project.pbxproj b/macos/Ghostty.xcodeproj/project.pbxproj index 4dff2ce65..affcf56b3 100644 --- a/macos/Ghostty.xcodeproj/project.pbxproj +++ b/macos/Ghostty.xcodeproj/project.pbxproj @@ -279,12 +279,12 @@ ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = NO; CODE_SIGN_ENTITLEMENTS = Ghostty.entitlements; - "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "-"; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; CURRENT_PROJECT_VERSION = 1; DEVELOPMENT_ASSET_PATHS = "\"Sources/Preview Content\""; - DEVELOPMENT_TEAM = GK79KXBF4F; + DEVELOPMENT_TEAM = ""; ENABLE_HARDENED_RUNTIME = YES; ENABLE_PREVIEWS = YES; GENERATE_INFOPLIST_FILE = YES; @@ -311,12 +311,12 @@ ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = NO; CODE_SIGN_ENTITLEMENTS = Ghostty.entitlements; - "CODE_SIGN_IDENTITY[sdk=macosx*]" = "Apple Development"; + "CODE_SIGN_IDENTITY[sdk=macosx*]" = "-"; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; CURRENT_PROJECT_VERSION = 1; DEVELOPMENT_ASSET_PATHS = "\"Sources/Preview Content\""; - DEVELOPMENT_TEAM = GK79KXBF4F; + DEVELOPMENT_TEAM = ""; ENABLE_HARDENED_RUNTIME = YES; ENABLE_PREVIEWS = YES; GENERATE_INFOPLIST_FILE = YES; From 1f9d4eb9f458eb3653957e5873b384ec83090c74 Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Tue, 14 Feb 2023 21:18:17 -0800 Subject: [PATCH 26/54] update to latest build API, rebase --- build.zig | 18 ++++++++++++------ src/build/LibtoolStep.zig | 11 ++++++----- src/build/LipoStep.zig | 7 ++++--- 3 files changed, 22 insertions(+), 14 deletions(-) diff --git a/build.zig b/build.zig index 3c6e8818f..34f65af2c 100644 --- a/build.zig +++ b/build.zig @@ -138,10 +138,13 @@ pub fn build(b: *std.build.Builder) !void { const macapp = b.step("macapp", "Build macOS app using XCode."); if (builtin.target.isDarwin()) { const static_lib_aarch64 = lib: { - const lib = b.addStaticLibrary("ghostty", "src/main_c.zig"); + const lib = b.addStaticLibrary(.{ + .name = "ghostty", + .root_source_file = .{ .path = "src/main_c.zig" }, + .target = try std.zig.CrossTarget.parse(.{ .arch_os_abi = "aarch64-macos" }), + .optimize = optimize, + }); lib.bundle_compiler_rt = true; - lib.setBuildMode(mode); - lib.setTarget(try std.zig.CrossTarget.parse(.{ .arch_os_abi = "aarch64-macos" })); lib.linkLibC(); lib.addOptions("build_options", exe_options); b.default_step.dependOn(&lib.step); @@ -160,10 +163,13 @@ pub fn build(b: *std.build.Builder) !void { }; const static_lib_x86_64 = lib: { - const lib = b.addStaticLibrary("ghostty", "src/main_c.zig"); + const lib = b.addStaticLibrary(.{ + .name = "ghostty", + .root_source_file = .{ .path = "src/main_c.zig" }, + .target = try std.zig.CrossTarget.parse(.{ .arch_os_abi = "x86_64-macos" }), + .optimize = optimize, + }); lib.bundle_compiler_rt = true; - lib.setBuildMode(mode); - lib.setTarget(try std.zig.CrossTarget.parse(.{ .arch_os_abi = "x86_64-macos" })); lib.linkLibC(); lib.addOptions("build_options", exe_options); b.default_step.dependOn(&lib.step); diff --git a/src/build/LibtoolStep.zig b/src/build/LibtoolStep.zig index e3395c880..98d03017b 100644 --- a/src/build/LibtoolStep.zig +++ b/src/build/LibtoolStep.zig @@ -20,7 +20,7 @@ pub const Options = struct { }; step: Step, -builder: *std.build.Builder, +builder: *std.Build, /// Resulting binary out_path: GeneratedFile, @@ -30,7 +30,7 @@ name: []const u8, out_name: []const u8, sources: []FileSource, -pub fn create(builder: *std.build.Builder, opts: Options) *LibtoolStep { +pub fn create(builder: *std.Build, opts: Options) *LibtoolStep { const self = builder.allocator.create(LibtoolStep) catch @panic("OOM"); self.* = .{ .step = Step.init(.custom, builder.fmt("lipo {s}", .{opts.name}), builder.allocator, make), @@ -48,9 +48,10 @@ fn make(step: *Step) !void { // TODO: use the zig cache system when it is in the stdlib // https://github.com/ziglang/zig/pull/14571 - const output_path = self.builder.pathJoin(&.{ - self.builder.cache_root, self.out_name, - }); + const output_path = try self.builder.cache_root.join( + self.builder.allocator, + &.{self.out_name}, + ); // We use a RunStep here to ease our configuration. { diff --git a/src/build/LipoStep.zig b/src/build/LipoStep.zig index cc6f187ce..9570a54c6 100644 --- a/src/build/LipoStep.zig +++ b/src/build/LipoStep.zig @@ -50,9 +50,10 @@ fn make(step: *Step) !void { // TODO: use the zig cache system when it is in the stdlib // https://github.com/ziglang/zig/pull/14571 - const output_path = self.builder.pathJoin(&.{ - self.builder.cache_root, self.out_name, - }); + const output_path = try self.builder.cache_root.join( + self.builder.allocator, + &.{self.out_name}, + ); // We use a RunStep here to ease our configuration. { From f30d80cabec688d17585af3f8169a4fb9a39bd8a Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Tue, 14 Feb 2023 21:48:13 -0800 Subject: [PATCH 27/54] build: must set run condition to always now --- build.zig | 6 ++---- src/App.zig | 4 ---- src/build/LibtoolStep.zig | 1 + src/build/LipoStep.zig | 1 + src/build/XCFrameworkStep.zig | 2 ++ src/main_c.zig | 1 - 6 files changed, 6 insertions(+), 9 deletions(-) diff --git a/build.zig b/build.zig index 34f65af2c..bf2cfd5be 100644 --- a/build.zig +++ b/build.zig @@ -135,7 +135,6 @@ pub fn build(b: *std.build.Builder) !void { } // On Mac we can build the app. - const macapp = b.step("macapp", "Build macOS app using XCode."); if (builtin.target.isDarwin()) { const static_lib_aarch64 = lib: { const lib = b.addStaticLibrary(.{ @@ -147,7 +146,6 @@ pub fn build(b: *std.build.Builder) !void { lib.bundle_compiler_rt = true; lib.linkLibC(); lib.addOptions("build_options", exe_options); - b.default_step.dependOn(&lib.step); // Create a single static lib with all our dependencies merged var lib_list = try addDeps(b, lib, true); @@ -157,6 +155,7 @@ pub fn build(b: *std.build.Builder) !void { .out_name = "libghostty-aarch64-fat.a", .sources = lib_list.items, }); + libtool.step.dependOn(&lib.step); b.default_step.dependOn(&libtool.step); break :lib libtool; @@ -172,7 +171,6 @@ pub fn build(b: *std.build.Builder) !void { lib.bundle_compiler_rt = true; lib.linkLibC(); lib.addOptions("build_options", exe_options); - b.default_step.dependOn(&lib.step); // Create a single static lib with all our dependencies merged var lib_list = try addDeps(b, lib, true); @@ -182,6 +180,7 @@ pub fn build(b: *std.build.Builder) !void { .out_name = "libghostty-x86_64-fat.a", .sources = lib_list.items, }); + libtool.step.dependOn(&lib.step); b.default_step.dependOn(&libtool.step); break :lib libtool; @@ -206,7 +205,6 @@ pub fn build(b: *std.build.Builder) !void { }); xcframework.step.dependOn(&static_lib_universal.step); b.default_step.dependOn(&xcframework.step); - macapp.dependOn(&xcframework.step); } // wasm diff --git a/src/App.zig b/src/App.zig index aaeca8f86..685aea443 100644 --- a/src/App.zig +++ b/src/App.zig @@ -295,7 +295,3 @@ pub const Wasm = if (!builtin.target.isWasm()) struct {} else struct { // } // } }; - -pub const CAPI = struct { - const Ghostty = @import("main_c.zig").Ghostty; -}; diff --git a/src/build/LibtoolStep.zig b/src/build/LibtoolStep.zig index 98d03017b..09e5e7386 100644 --- a/src/build/LibtoolStep.zig +++ b/src/build/LibtoolStep.zig @@ -59,6 +59,7 @@ fn make(step: *Step) !void { "libtool {s}", .{self.name}, )); + run.condition = .always; run.addArgs(&.{ "libtool", "-static", "-o", output_path }); for (self.sources) |source| { run.addArg(source.getPath(self.builder)); diff --git a/src/build/LipoStep.zig b/src/build/LipoStep.zig index 9570a54c6..31fc0d5c6 100644 --- a/src/build/LipoStep.zig +++ b/src/build/LipoStep.zig @@ -61,6 +61,7 @@ fn make(step: *Step) !void { "lipo {s}", .{self.name}, )); + run.condition = .always; run.addArgs(&.{ "lipo", "-create", diff --git a/src/build/XCFrameworkStep.zig b/src/build/XCFrameworkStep.zig index 8522810df..c48fba4ff 100644 --- a/src/build/XCFrameworkStep.zig +++ b/src/build/XCFrameworkStep.zig @@ -59,6 +59,7 @@ fn make(step: *Step) !void { "xcframework delete {s}", .{self.name}, )); + run.condition = .always; run.addArgs(&.{ "rm", "-rf", output_path }); try run.step.make(); } @@ -67,6 +68,7 @@ fn make(step: *Step) !void { "xcframework {s}", .{self.name}, )); + run.condition = .always; run.addArgs(&.{ "xcodebuild", "-create-xcframework", "-library", self.library.getPath(self.builder), diff --git a/src/main_c.zig b/src/main_c.zig index 04cde6282..fba2a61d3 100644 --- a/src/main_c.zig +++ b/src/main_c.zig @@ -21,7 +21,6 @@ const main = @import("main.zig"); /// Global options so we can log. This is identical to main. pub const std_options = main.std_options; -pub usingnamespace @import("App.zig").CAPI; pub usingnamespace @import("config.zig").CAPI; /// Initialize ghostty global state. It is possible to have more than From 8673b90299f9a5971a3cbaf4f4f6aab00f036b3e Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Wed, 15 Feb 2023 14:49:09 -0800 Subject: [PATCH 28/54] build: use caching for Libtool and Lipo steps --- src/build/LibtoolStep.zig | 36 ++++++++++++++-------------------- src/build/LipoStep.zig | 37 ++++++++++++----------------------- src/build/XCFrameworkStep.zig | 13 ++++++------ 3 files changed, 34 insertions(+), 52 deletions(-) diff --git a/src/build/LibtoolStep.zig b/src/build/LibtoolStep.zig index 09e5e7386..1d114f097 100644 --- a/src/build/LibtoolStep.zig +++ b/src/build/LibtoolStep.zig @@ -46,26 +46,20 @@ pub fn create(builder: *std.Build, opts: Options) *LibtoolStep { fn make(step: *Step) !void { const self = @fieldParentPtr(LibtoolStep, "step", step); - // TODO: use the zig cache system when it is in the stdlib - // https://github.com/ziglang/zig/pull/14571 - const output_path = try self.builder.cache_root.join( - self.builder.allocator, - &.{self.out_name}, - ); - // We use a RunStep here to ease our configuration. - { - const run = std.build.RunStep.create(self.builder, self.builder.fmt( - "libtool {s}", - .{self.name}, - )); - run.condition = .always; - run.addArgs(&.{ "libtool", "-static", "-o", output_path }); - for (self.sources) |source| { - run.addArg(source.getPath(self.builder)); - } - try run.step.make(); - } - - self.out_path.path = output_path; + const run = std.build.RunStep.create(self.builder, self.builder.fmt( + "libtool {s}", + .{self.name}, + )); + run.addArgs(&.{ + "libtool", + "-static", + "-o", + }); + try run.argv.append(.{ .output = .{ + .generated_file = &self.out_path, + .basename = self.out_name, + } }); + for (self.sources) |source| run.addFileSourceArg(source); + try run.step.make(); } diff --git a/src/build/LipoStep.zig b/src/build/LipoStep.zig index 31fc0d5c6..f073ca15f 100644 --- a/src/build/LipoStep.zig +++ b/src/build/LipoStep.zig @@ -48,30 +48,17 @@ pub fn create(builder: *std.build.Builder, opts: Options) *LipoStep { fn make(step: *Step) !void { const self = @fieldParentPtr(LipoStep, "step", step); - // TODO: use the zig cache system when it is in the stdlib - // https://github.com/ziglang/zig/pull/14571 - const output_path = try self.builder.cache_root.join( - self.builder.allocator, - &.{self.out_name}, - ); - // We use a RunStep here to ease our configuration. - { - const run = std.build.RunStep.create(self.builder, self.builder.fmt( - "lipo {s}", - .{self.name}, - )); - run.condition = .always; - run.addArgs(&.{ - "lipo", - "-create", - "-output", - output_path, - self.input_a.getPath(self.builder), - self.input_b.getPath(self.builder), - }); - try run.step.make(); - } - - self.out_path.path = output_path; + const run = std.build.RunStep.create(self.builder, self.builder.fmt( + "lipo {s}", + .{self.name}, + )); + run.addArgs(&.{ "lipo", "-create", "-output" }); + try run.argv.append(.{ .output = .{ + .generated_file = &self.out_path, + .basename = self.out_name, + } }); + run.addFileSourceArg(self.input_a); + run.addFileSourceArg(self.input_b); + try run.step.make(); } diff --git a/src/build/XCFrameworkStep.zig b/src/build/XCFrameworkStep.zig index c48fba4ff..120609bf4 100644 --- a/src/build/XCFrameworkStep.zig +++ b/src/build/XCFrameworkStep.zig @@ -69,12 +69,13 @@ fn make(step: *Step) !void { .{self.name}, )); run.condition = .always; - run.addArgs(&.{ - "xcodebuild", "-create-xcframework", - "-library", self.library.getPath(self.builder), - "-headers", self.headers.getPath(self.builder), - "-output", output_path, - }); + run.addArgs(&.{ "xcodebuild", "-create-xcframework" }); + run.addArg("-library"); + run.addFileSourceArg(self.library); + run.addArg("-headers"); + run.addFileSourceArg(self.headers); + run.addArg("-output"); + run.addArg(output_path); try run.step.make(); } } From 26182611c616f6c5dd9f8bfb080c5b0c7a8c6729 Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Wed, 15 Feb 2023 15:38:51 -0800 Subject: [PATCH 29/54] move allocator to global state --- include/ghostty.h | 11 +++-- macos/Sources/GhosttyApp.swift | 21 ++++---- src/build_config.zig | 35 +++++++++++++ src/config.zig | 21 ++++---- src/main.zig | 89 ++++++++++++++++++++++++++++++++- src/main_c.zig | 90 ++-------------------------------- 6 files changed, 152 insertions(+), 115 deletions(-) create mode 100644 src/build_config.zig diff --git a/include/ghostty.h b/include/ghostty.h index 36935c815..ea8df672d 100644 --- a/include/ghostty.h +++ b/include/ghostty.h @@ -14,13 +14,14 @@ extern "C" { #include -typedef void *ghostty_t; +#define GHOSTTY_SUCCESS 0 + typedef void *ghostty_config_t; -ghostty_t ghostty_init(void); -ghostty_config_t ghostty_config_new(ghostty_t); -void ghostty_config_free(ghostty_t, ghostty_config_t); -void ghostty_config_load_string(ghostty_t, ghostty_config_t, const char *, uintptr_t); +int ghostty_init(void); +ghostty_config_t ghostty_config_new(); +void ghostty_config_free(ghostty_config_t); +void ghostty_config_load_string(ghostty_config_t, const char *, uintptr_t); void ghostty_config_finalize(ghostty_config_t); #ifdef __cplusplus diff --git a/macos/Sources/GhosttyApp.swift b/macos/Sources/GhosttyApp.swift index 819c6f1eb..e9429df57 100644 --- a/macos/Sources/GhosttyApp.swift +++ b/macos/Sources/GhosttyApp.swift @@ -15,6 +15,8 @@ struct GhosttyApp: App { var body: some Scene { WindowGroup { switch ghostty.readiness { + case .loading: + Text("Loading") case .error: ErrorView() case .ready: @@ -26,28 +28,27 @@ struct GhosttyApp: App { class GhosttyState: ObservableObject { enum Readiness { - case error, ready + case loading, error, ready } /// The readiness value of the state. - var readiness: Readiness { ghostty != nil ? .ready : .error } - - /// The ghostty global state. - var ghostty: ghostty_t? = nil + @Published var readiness: Readiness = .loading /// The ghostty global configuration. var config: ghostty_config_t? = nil init() { // Initialize ghostty global state. This happens once per process. - guard let g = ghostty_init() else { + guard ghostty_init() == GHOSTTY_SUCCESS else { GhosttyApp.logger.critical("ghostty_init failed") + readiness = .error return } // Initialize the global configuration. - guard let cfg = ghostty_config_new(g) else { + guard let cfg = ghostty_config_new() else { GhosttyApp.logger.critical("ghostty_config_new failed") + readiness = .error return } @@ -58,11 +59,11 @@ class GhosttyState: ObservableObject { // Finalize will make our defaults available. ghostty_config_finalize(cfg) - ghostty = g; - config = cfg; + config = cfg + readiness = .ready } deinit { - ghostty_config_free(ghostty, config) + ghostty_config_free(config) } } diff --git a/src/build_config.zig b/src/build_config.zig new file mode 100644 index 000000000..36a0ebec7 --- /dev/null +++ b/src/build_config.zig @@ -0,0 +1,35 @@ +//! Build options, available at comptime. Used to configure features. This +//! will reproduce some of the fields from builtin and build_options just +//! so we can limit the amount of imports we need AND give us the ability +//! to shim logic and values into them later. +const std = @import("std"); +const builtin = @import("builtin"); +const assert = std.debug.assert; + +/// The artifact we're producing. This can be used to determine if we're +/// building a standalone exe, an embedded lib, etc. +pub const artifact = Artifact.detect(); + +pub const Artifact = enum { + /// Standalone executable + exe, + + /// Embeddable library + lib, + + /// The WASM-targetted module. + wasm_module, + + pub fn detect() Artifact { + if (builtin.target.isWasm()) { + assert(builtin.output_mode == .Obj); + assert(builtin.link_mode == .Static); + return .wasm_module; + } + + return switch (builtin.output_mode) { + .Exe => .exe, + .Obj => .lib, + }; + } +}; diff --git a/src/config.zig b/src/config.zig index ece999dac..360959428 100644 --- a/src/config.zig +++ b/src/config.zig @@ -583,19 +583,19 @@ pub const Wasm = if (!builtin.target.isWasm()) struct {} else struct { } }; -// Wasm API. +// C API. pub const CAPI = struct { - const Ghostty = @import("main_c.zig").Ghostty; + const global = &@import("main.zig").state; const cli_args = @import("cli_args.zig"); /// Create a new configuration filled with the initial default values. - export fn ghostty_config_new(g: *Ghostty) ?*Config { - const result = g.alloc.create(Config) catch |err| { + export fn ghostty_config_new() ?*Config { + const result = global.alloc.create(Config) catch |err| { log.err("error allocating config err={}", .{err}); return null; }; - result.* = Config.default(g.alloc) catch |err| { + result.* = Config.default(global.alloc) catch |err| { log.err("error creating config err={}", .{err}); return null; }; @@ -603,30 +603,29 @@ pub const CAPI = struct { return result; } - export fn ghostty_config_free(g: *Ghostty, ptr: ?*Config) void { + export fn ghostty_config_free(ptr: ?*Config) void { if (ptr) |v| { v.deinit(); - g.alloc.destroy(v); + global.alloc.destroy(v); } } /// Load the configuration from a string in the same format as /// the file-based syntax for the desktop version of the terminal. export fn ghostty_config_load_string( - g: *Ghostty, self: *Config, str: [*]const u8, len: usize, ) void { - config_load_string_(g, self, str[0..len]) catch |err| { + config_load_string_(self, str[0..len]) catch |err| { log.err("error loading config err={}", .{err}); }; } - fn config_load_string_(g: *Ghostty, self: *Config, str: []const u8) !void { + fn config_load_string_(self: *Config, str: []const u8) !void { var fbs = std.io.fixedBufferStream(str); var iter = cli_args.lineIterator(fbs.reader()); - try cli_args.parse(Config, g.alloc, self, &iter); + try cli_args.parse(Config, global.alloc, self, &iter); } export fn ghostty_config_finalize(self: *Config) void { diff --git a/src/main.zig b/src/main.zig index b4b1b7baf..fc9b4d302 100644 --- a/src/main.zig +++ b/src/main.zig @@ -3,6 +3,12 @@ const builtin = @import("builtin"); const options = @import("build_options"); const glfw = @import("glfw"); const macos = @import("macos"); +const tracy = @import("tracy"); +const internal_os = @import("os/main.zig"); +const xev = @import("xev"); +const fontconfig = @import("fontconfig"); +const harfbuzz = @import("harfbuzz"); +const renderer = @import("renderer.zig"); const xdg = @import("xdg.zig"); const App = @import("App.zig"); @@ -10,9 +16,14 @@ const cli_args = @import("cli_args.zig"); const Config = @import("config.zig").Config; const Ghostty = @import("main_c.zig").Ghostty; +/// Global process state. This is initialized in main() for exe artifacts +/// and by ghostty_init() for lib artifacts. This should ONLY be used by +/// the C API. The Zig API should NOT use any global state and should +/// rely on allocators being passed in as parameters. +pub var state: GlobalState = undefined; + pub fn main() !void { - var state: Ghostty = undefined; - Ghostty.init(&state); + state.init(); defer state.deinit(); const alloc = state.alloc; @@ -153,6 +164,80 @@ fn glfwErrorCallback(code: glfw.ErrorCode, desc: [:0]const u8) void { } } +/// This represents the global process state. There should only +/// be one of these at any given moment. This is extracted into a dedicated +/// struct because it is reused by main and the static C lib. +pub const GlobalState = struct { + const GPA = std.heap.GeneralPurposeAllocator(.{}); + + gpa: ?GPA, + alloc: std.mem.Allocator, + + pub fn init(self: *GlobalState) void { + // Output some debug information right away + std.log.info("dependency harfbuzz={s}", .{harfbuzz.versionString()}); + if (options.fontconfig) { + std.log.info("dependency fontconfig={d}", .{fontconfig.version()}); + } + std.log.info("renderer={}", .{renderer.Renderer}); + std.log.info("libxev backend={}", .{xev.backend}); + + // First things first, we fix our file descriptors + internal_os.fixMaxFiles(); + + // We need to make sure the process locale is set properly. Locale + // affects a lot of behaviors in a shell. + internal_os.ensureLocale(); + + // Initialize ourself to nothing so we don't have any extra state. + self.* = .{ + .gpa = null, + .alloc = undefined, + }; + errdefer self.deinit(); + + self.gpa = gpa: { + // Use the libc allocator if it is available beacuse it is WAY + // faster than GPA. We only do this in release modes so that we + // can get easy memory leak detection in debug modes. + if (builtin.link_libc) { + if (switch (builtin.mode) { + .ReleaseSafe, .ReleaseFast => true, + + // We also use it if we can detect we're running under + // Valgrind since Valgrind only instruments the C allocator + else => std.valgrind.runningOnValgrind() > 0, + }) break :gpa null; + } + + break :gpa GPA{}; + }; + + self.alloc = alloc: { + const base = if (self.gpa) |*value| + value.allocator() + else if (builtin.link_libc) + std.heap.c_allocator + else + unreachable; + + // If we're tracing, wrap the allocator + if (!tracy.enabled) break :alloc base; + var tracy_alloc = tracy.allocator(base, null); + break :alloc tracy_alloc.allocator(); + }; + } + + /// Cleans up the global state. This doesn't _need_ to be called but + /// doing so in dev modes will check for memory leaks. + pub fn deinit(self: *GlobalState) void { + if (self.gpa) |*value| { + // We want to ensure that we deinit the GPA because this is + // the point at which it will output if there were safety violations. + _ = value.deinit(); + } + } +}; test { _ = @import("Pty.zig"); _ = @import("Command.zig"); diff --git a/src/main_c.zig b/src/main_c.zig index fba2a61d3..a6823260b 100644 --- a/src/main_c.zig +++ b/src/main_c.zig @@ -9,13 +9,6 @@ const std = @import("std"); const assert = std.debug.assert; const builtin = @import("builtin"); -const options = @import("build_options"); -const fontconfig = @import("fontconfig"); -const harfbuzz = @import("harfbuzz"); -const renderer = @import("renderer.zig"); -const tracy = @import("tracy"); -const xev = @import("xev"); -const internal_os = @import("os/main.zig"); const main = @import("main.zig"); /// Global options so we can log. This is identical to main. @@ -25,85 +18,8 @@ pub usingnamespace @import("config.zig").CAPI; /// Initialize ghostty global state. It is possible to have more than /// one global state but it has zero practical benefit. -export fn ghostty_init() ?*Ghostty { +export fn ghostty_init() c_int { assert(builtin.link_libc); - const alloc = std.heap.c_allocator; - const g = alloc.create(Ghostty) catch return null; - Ghostty.init(g); - return g; + main.state.init(); + return 0; } - -/// This represents the global process state. There should only -/// be one of these at any given moment. This is extracted into a dedicated -/// struct because it is reused by main and the static C lib. -/// -/// init should be one of the first things ever called when using Ghostty. -pub const Ghostty = struct { - const GPA = std.heap.GeneralPurposeAllocator(.{}); - - gpa: ?GPA, - alloc: std.mem.Allocator, - - pub fn init(self: *Ghostty) void { - // Output some debug information right away - std.log.info("dependency harfbuzz={s}", .{harfbuzz.versionString()}); - if (options.fontconfig) { - std.log.info("dependency fontconfig={d}", .{fontconfig.version()}); - } - std.log.info("renderer={}", .{renderer.Renderer}); - std.log.info("libxev backend={}", .{xev.backend}); - - // First things first, we fix our file descriptors - internal_os.fixMaxFiles(); - - // We need to make sure the process locale is set properly. Locale - // affects a lot of behaviors in a shell. - internal_os.ensureLocale(); - - // Initialize ourself to nothing so we don't have any extra state. - self.* = .{ - .gpa = null, - .alloc = undefined, - }; - errdefer self.deinit(); - - self.gpa = gpa: { - // Use the libc allocator if it is available beacuse it is WAY - // faster than GPA. We only do this in release modes so that we - // can get easy memory leak detection in debug modes. - if (builtin.link_libc) { - if (switch (builtin.mode) { - .ReleaseSafe, .ReleaseFast => true, - - // We also use it if we can detect we're running under - // Valgrind since Valgrind only instruments the C allocator - else => std.valgrind.runningOnValgrind() > 0, - }) break :gpa null; - } - - break :gpa GPA{}; - }; - - self.alloc = alloc: { - const base = if (self.gpa) |*value| - value.allocator() - else if (builtin.link_libc) - std.heap.c_allocator - else - unreachable; - - // If we're tracing, wrap the allocator - if (!tracy.enabled) break :alloc base; - var tracy_alloc = tracy.allocator(base, null); - break :alloc tracy_alloc.allocator(); - }; - } - - pub fn deinit(self: *Ghostty) void { - if (self.gpa) |*value| { - // We want to ensure that we deinit the GPA because this is - // the point at which it will output if there were safety violations. - _ = value.deinit(); - } - } -}; From ba8f142770a1103adc9ad799ffc566729af18972 Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Wed, 15 Feb 2023 21:53:14 -0800 Subject: [PATCH 30/54] app: only create first window in exe mode --- src/App.zig | 22 +++++++++++++++------- src/build_config.zig | 1 + src/main.zig | 2 +- 3 files changed, 17 insertions(+), 8 deletions(-) diff --git a/src/App.zig b/src/App.zig index 685aea443..78fccbdec 100644 --- a/src/App.zig +++ b/src/App.zig @@ -7,6 +7,7 @@ const std = @import("std"); const builtin = @import("builtin"); const assert = std.debug.assert; const Allocator = std.mem.Allocator; +const build_config = @import("build_config.zig"); const apprt = @import("apprt.zig"); const Window = @import("Window.zig"); const tracy = @import("tracy"); @@ -47,9 +48,11 @@ quit: bool, /// Mac settings darwin: if (Darwin.enabled) Darwin else void, -/// Mac-specific settings +/// Mac-specific settings. This is only enabled when the target is +/// Mac and the artifact is a standalone exe. We don't target libs because +/// the embedded API doesn't do windowing. pub const Darwin = struct { - pub const enabled = builtin.target.isDarwin(); + pub const enabled = builtin.target.isDarwin() and build_config.artifact == .exe; tabbing_id: *macos.foundation.String, @@ -87,8 +90,9 @@ pub fn create(alloc: Allocator, config: *const Config) !*App { }; errdefer app.windows.deinit(alloc); - // On Mac, we enable window tabbing - if (comptime builtin.target.isDarwin()) { + // On Mac, we enable window tabbing. We only do this if we're building + // a standalone exe. In embedded mode the host app handles this for us. + if (Darwin.enabled) { const NSWindow = objc.Class.getClass("NSWindow").?; NSWindow.msgSend(void, objc.sel("setAllowsAutomaticWindowTabbing:"), .{true}); @@ -107,8 +111,12 @@ pub fn create(alloc: Allocator, config: *const Config) !*App { } errdefer if (comptime builtin.target.isDarwin()) app.darwin.deinit(); - // Create the first window - _ = try app.newWindow(.{}); + // Create the first window if we're an executable. If we're a lib we + // do NOT create the first window because we expect the embedded API + // to do it via surfaces. + if (build_config.artifact == .exe) { + _ = try app.newWindow(.{}); + } return app; } @@ -117,7 +125,7 @@ pub fn destroy(self: *App) void { // Clean up all our windows for (self.windows.items) |window| window.destroy(); self.windows.deinit(self.alloc); - if (comptime builtin.target.isDarwin()) self.darwin.deinit(); + if (Darwin.enabled) self.darwin.deinit(); self.mailbox.destroy(self.alloc); self.alloc.destroy(self); diff --git a/src/build_config.zig b/src/build_config.zig index 36a0ebec7..1d1f538e9 100644 --- a/src/build_config.zig +++ b/src/build_config.zig @@ -30,6 +30,7 @@ pub const Artifact = enum { return switch (builtin.output_mode) { .Exe => .exe, .Obj => .lib, + else => unreachable, }; } }; diff --git a/src/main.zig b/src/main.zig index fc9b4d302..24f0b76d5 100644 --- a/src/main.zig +++ b/src/main.zig @@ -91,7 +91,7 @@ pub fn main() !void { // We want to log all our errors glfw.setErrorCallback(glfwErrorCallback); - // Run our app + // Run our app with a single initial window to start. var app = try App.create(alloc, &config); defer app.destroy(); try app.run(); From eed6979868573df6786406c568204bf02d01a27d Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Thu, 16 Feb 2023 08:52:40 -0800 Subject: [PATCH 31/54] apprt: start embedded implement, make App API available to C --- include/ghostty.h | 21 +++++++++++++++++++++ src/App.zig | 40 +++++++++++++++++++++++++++++++++++++-- src/DevMode.zig | 4 +++- src/apprt.zig | 10 ++++++---- src/apprt/embedded.zig | 43 ++++++++++++++++++++++++++++++++++++++++++ src/apprt/glfw.zig | 4 +++- src/build_config.zig | 11 +++++++++-- src/main.zig | 2 +- src/main_c.zig | 7 +++++++ 9 files changed, 131 insertions(+), 11 deletions(-) create mode 100644 src/apprt/embedded.zig diff --git a/include/ghostty.h b/include/ghostty.h index ea8df672d..a256b7364 100644 --- a/include/ghostty.h +++ b/include/ghostty.h @@ -16,14 +16,35 @@ extern "C" { #define GHOSTTY_SUCCESS 0 +//------------------------------------------------------------------- +// Types + +// Fully defined types. This MUST be kept in sync with equivalent Zig +// structs. To find the Zig struct, grep for this type name. The documentation +// for all of these types is available in the Zig source. +typedef void (*ghostty_runtime_wakeup_cb)(void *); +typedef struct { + void *userdata; + ghostty_runtime_wakeup_cb wakeup_cb; +} ghostty_runtime_config_s; + +// Opaque types +typedef void *ghostty_app_t; typedef void *ghostty_config_t; +//------------------------------------------------------------------- +// Published API + int ghostty_init(void); + ghostty_config_t ghostty_config_new(); void ghostty_config_free(ghostty_config_t); void ghostty_config_load_string(ghostty_config_t, const char *, uintptr_t); void ghostty_config_finalize(ghostty_config_t); +ghostty_app_t ghostty_app_new(ghostty_runtime_config_s *, ghostty_config_t); +void ghostty_app_free(ghostty_app_t); + #ifdef __cplusplus } #endif diff --git a/src/App.zig b/src/App.zig index 78fccbdec..731a6ee6b 100644 --- a/src/App.zig +++ b/src/App.zig @@ -65,9 +65,13 @@ pub const Darwin = struct { /// Initialize the main app instance. This creates the main window, sets /// up the renderer state, compiles the shaders, etc. This is the primary /// "startup" logic. -pub fn create(alloc: Allocator, config: *const Config) !*App { +pub fn create( + alloc: Allocator, + rt_opts: apprt.runtime.App.Options, + config: *const Config, +) !*App { // Initialize app runtime - var app_backend = try apprt.runtime.App.init(); + var app_backend = try apprt.runtime.App.init(rt_opts); errdefer app_backend.terminate(); // The mailbox for messaging this thread @@ -303,3 +307,35 @@ pub const Wasm = if (!builtin.target.isWasm()) struct {} else struct { // } // } }; + +// C API +pub const CAPI = struct { + const global = &@import("main.zig").state; + + /// Create a new app. + export fn ghostty_app_new( + opts: *const apprt.runtime.App.Options, + config: *const Config, + ) ?*App { + return app_new_(opts, config) catch |err| { + log.err("error initializing app err={}", .{err}); + return null; + }; + } + + fn app_new_( + opts: *const apprt.runtime.App.Options, + config: *const Config, + ) !*App { + const app = try App.create(global.alloc, opts.*, config); + errdefer app.destroy(); + return app; + } + + export fn ghostty_app_free(ptr: ?*App) void { + if (ptr) |v| { + v.destroy(); + v.alloc.destroy(v); + } + } +}; diff --git a/src/DevMode.zig b/src/DevMode.zig index 2df187b82..2b037ce2a 100644 --- a/src/DevMode.zig +++ b/src/DevMode.zig @@ -4,6 +4,7 @@ const DevMode = @This(); const std = @import("std"); const builtin = @import("builtin"); +const build_config = @import("build_config.zig"); const imgui = @import("imgui"); const Allocator = std.mem.Allocator; const assert = std.debug.assert; @@ -15,7 +16,8 @@ const Config = @import("config.zig").Config; /// If this is false, the rest of the terminal will be compiled without /// dev mode support at all. -pub const enabled = !builtin.target.isWasm(); +/// TODO: remove this and use build_config everywhere +pub const enabled = build_config.devmode_enabled; /// The global DevMode instance that can be used app-wide. Assume all functions /// are NOT thread-safe unless otherwise noted. diff --git a/src/apprt.zig b/src/apprt.zig index 4246d5a3c..36e2a2571 100644 --- a/src/apprt.zig +++ b/src/apprt.zig @@ -9,20 +9,22 @@ //! logic as possible, and to only reach out to platform-specific implementation //! code when absolutely necessary. const builtin = @import("builtin"); +const build_config = @import("build_config.zig"); pub usingnamespace @import("apprt/structs.zig"); pub const glfw = @import("apprt/glfw.zig"); pub const browser = @import("apprt/browser.zig"); +pub const embedded = @import("apprt/embedded.zig"); pub const Window = @import("apprt/Window.zig"); /// The implementation to use for the app runtime. This is comptime chosen /// so that every build has exactly one application runtime implementation. /// Note: it is very rare to use Runtime directly; most usage will use /// Window or something. -pub const runtime = if (builtin.target.isWasm()) - browser -else switch (builtin.os.tag) { - else => glfw, +pub const runtime = switch (build_config.artifact) { + .exe => glfw, + .lib => embedded, + .wasm_module => browser, }; test { diff --git a/src/apprt/embedded.zig b/src/apprt/embedded.zig new file mode 100644 index 000000000..fa61e85e5 --- /dev/null +++ b/src/apprt/embedded.zig @@ -0,0 +1,43 @@ +//! Application runtime for the embedded version of Ghostty. The embedded +//! version is when Ghostty is embedded within a parent host application, +//! rather than owning the application lifecycle itself. This is used for +//! example for the macOS build of Ghostty so that we can use a native +//! Swift+XCode-based application. + +pub const App = struct { + /// Because we only expect the embedding API to be used in embedded + /// environments, the options are extern so that we can expose it + /// directly to a C callconv and not pay for any translation costs. + /// + /// C type: ghostty_runtime_config_s + pub const Options = extern struct { + /// Userdata that is passed to all the callbacks. + userdata: ?*anyopaque = null, + + /// Callback called to wakeup the event loop. This should trigger + /// a full tick of the app loop. + wakeup: *const fn (?*anyopaque) callconv(.C) void, + }; + + pub fn init(_: Options) !App { + return .{}; + } + + pub fn terminate(self: App) void { + _ = self; + } + + pub fn wakeup(self: App) !void { + _ = self; + } + + pub fn wait(self: App) !void { + _ = self; + } +}; + +pub const Window = struct { + pub fn deinit(self: *Window) void { + _ = self; + } +}; diff --git a/src/apprt/glfw.zig b/src/apprt/glfw.zig index 0cb5fab8e..f64ad200d 100644 --- a/src/apprt/glfw.zig +++ b/src/apprt/glfw.zig @@ -26,7 +26,9 @@ const glfwNative = glfw.Native(.{ const log = std.log.scoped(.glfw); pub const App = struct { - pub fn init() !App { + pub const Options = struct {}; + + pub fn init(_: Options) !App { if (!glfw.init(.{})) return error.GlfwInitFailed; return .{}; } diff --git a/src/build_config.zig b/src/build_config.zig index 1d1f538e9..2baaa48b8 100644 --- a/src/build_config.zig +++ b/src/build_config.zig @@ -10,6 +10,10 @@ const assert = std.debug.assert; /// building a standalone exe, an embedded lib, etc. pub const artifact = Artifact.detect(); +/// Whether our devmode UI is enabled or not. This requires imgui to be +/// compiled. +pub const devmode_enabled = artifact == .exe; + pub const Artifact = enum { /// Standalone executable exe, @@ -29,8 +33,11 @@ pub const Artifact = enum { return switch (builtin.output_mode) { .Exe => .exe, - .Obj => .lib, - else => unreachable, + .Lib => .lib, + else => { + @compileLog(builtin.output_mode); + @compileError("unsupported artifact output mode"); + }, }; } }; diff --git a/src/main.zig b/src/main.zig index 24f0b76d5..8ad3186bf 100644 --- a/src/main.zig +++ b/src/main.zig @@ -92,7 +92,7 @@ pub fn main() !void { glfw.setErrorCallback(glfwErrorCallback); // Run our app with a single initial window to start. - var app = try App.create(alloc, &config); + var app = try App.create(alloc, .{}, &config); defer app.destroy(); try app.run(); } diff --git a/src/main_c.zig b/src/main_c.zig index a6823260b..344d477bb 100644 --- a/src/main_c.zig +++ b/src/main_c.zig @@ -11,10 +11,17 @@ const assert = std.debug.assert; const builtin = @import("builtin"); const main = @import("main.zig"); +// Some comptime assertions that our C API depends on. +comptime { + const apprt = @import("apprt.zig"); + assert(apprt.runtime == apprt.embedded); +} + /// Global options so we can log. This is identical to main. pub const std_options = main.std_options; pub usingnamespace @import("config.zig").CAPI; +pub usingnamespace @import("App.zig").CAPI; /// Initialize ghostty global state. It is possible to have more than /// one global state but it has zero practical benefit. From 085d462a688d68e900bd437551097e7f0c9ff479 Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Fri, 17 Feb 2023 08:49:43 -0800 Subject: [PATCH 32/54] lots of stubbing so window will kind of compile for embedded --- include/ghostty.h | 1 + src/App.zig | 47 +++++++++++++++++++++++++----------- src/apprt/embedded.zig | 54 ++++++++++++++++++++++++++++++++++++++++++ src/renderer/Metal.zig | 26 +++++++++++--------- 4 files changed, 103 insertions(+), 25 deletions(-) diff --git a/include/ghostty.h b/include/ghostty.h index a256b7364..8ed455aea 100644 --- a/include/ghostty.h +++ b/include/ghostty.h @@ -44,6 +44,7 @@ void ghostty_config_finalize(ghostty_config_t); ghostty_app_t ghostty_app_new(ghostty_runtime_config_s *, ghostty_config_t); void ghostty_app_free(ghostty_app_t); +int ghostty_app_tick(ghostty_app_t); #ifdef __cplusplus } diff --git a/src/App.zig b/src/App.zig index 731a6ee6b..462847d14 100644 --- a/src/App.zig +++ b/src/App.zig @@ -147,25 +147,31 @@ pub fn wakeup(self: App) void { /// application quits or every window is closed. pub fn run(self: *App) !void { while (!self.quit and self.windows.items.len > 0) { - // Block for any events. - try self.runtime.wait(); + try self.tick(); + } +} - // If any windows are closing, destroy them - var i: usize = 0; - while (i < self.windows.items.len) { - const window = self.windows.items[i]; - if (window.shouldClose()) { - window.destroy(); - _ = self.windows.swapRemove(i); - continue; - } +/// Tick ticks the app loop. This will drain our mailbox and process those +/// events. +pub fn tick(self: *App) !void { + // Block for any events. + try self.runtime.wait(); - i += 1; + // If any windows are closing, destroy them + var i: usize = 0; + while (i < self.windows.items.len) { + const window = self.windows.items[i]; + if (window.shouldClose()) { + window.destroy(); + _ = self.windows.swapRemove(i); + continue; } - // Drain our mailbox only if we're not quitting. - if (!self.quit) try self.drainMailbox(); + i += 1; } + + // Drain our mailbox only if we're not quitting. + if (!self.quit) try self.drainMailbox(); } /// Drain the mailbox. @@ -201,6 +207,11 @@ fn newTab(self: *App, msg: Message.NewWindow) !void { return; } + if (comptime build_config.artifact != .exe) { + log.warn("tabbing is not supported in embedded mode", .{}); + return; + } + const parent = msg.parent orelse { log.warn("parent must be set in new_tab message", .{}); return; @@ -332,6 +343,14 @@ pub const CAPI = struct { return app; } + /// Tick the event loop. This should be called whenever the "wakeup" + /// callback is invoked for the runtime. + export fn ghostty_app_tick(v: *App) void { + v.tick() catch |err| { + log.err("error app tick err={}", .{err}); + }; + } + export fn ghostty_app_free(ptr: ?*App) void { if (ptr) |v| { v.destroy(); diff --git a/src/apprt/embedded.zig b/src/apprt/embedded.zig index fa61e85e5..596b36f5d 100644 --- a/src/apprt/embedded.zig +++ b/src/apprt/embedded.zig @@ -4,6 +4,14 @@ //! example for the macOS build of Ghostty so that we can use a native //! Swift+XCode-based application. +const std = @import("std"); +const builtin = @import("builtin"); +const assert = std.debug.assert; +const Allocator = std.mem.Allocator; +const apprt = @import("../apprt.zig"); +const CoreApp = @import("../App.zig"); +const CoreWindow = @import("../Window.zig"); + pub const App = struct { /// Because we only expect the embedding API to be used in embedded /// environments, the options are extern so that we can expose it @@ -40,4 +48,50 @@ pub const Window = struct { pub fn deinit(self: *Window) void { _ = self; } + + pub fn init(app: *const CoreApp, core_win: *CoreWindow) !Window { + _ = app; + _ = core_win; + return .{}; + } + + pub fn getContentScale(self: *const Window) !apprt.ContentScale { + _ = self; + return apprt.ContentScale{ .x = 1, .y = 1 }; + } + + pub fn getSize(self: *const Window) !apprt.WindowSize { + _ = self; + return apprt.WindowSize{ .width = 1, .height = 1 }; + } + + pub fn setSizeLimits(self: *Window, min: apprt.WindowSize, max_: ?apprt.WindowSize) !void { + _ = self; + _ = min; + _ = max_; + } + + pub fn setTitle(self: *Window, slice: [:0]const u8) !void { + _ = self; + _ = slice; + } + + pub fn getClipboardString(self: *const Window) ![:0]const u8 { + _ = self; + return ""; + } + + pub fn setClipboardString(self: *const Window, val: [:0]const u8) !void { + _ = self; + _ = val; + } + + pub fn setShouldClose(self: *Window) void { + _ = self; + } + + pub fn shouldClose(self: *const Window) bool { + _ = self; + return false; + } }; diff --git a/src/renderer/Metal.zig b/src/renderer/Metal.zig index 6ee656e6f..e15233d44 100644 --- a/src/renderer/Metal.zig +++ b/src/renderer/Metal.zig @@ -308,6 +308,7 @@ pub fn finalizeWindowInit(self: *const Metal, win: apprt.runtime.Window) !void { // Set our window backing layer to be our swapchain const nswindow = switch (apprt.runtime) { apprt.glfw => objc.Object.fromId(glfwNative.getCocoaWindow(win.window).?), + apprt.embedded => @panic("TODO"), else => @compileError("unsupported apprt for metal"), }; const contentView = objc.Object.fromId(nswindow.getProperty(?*anyopaque, "contentView").?); @@ -613,16 +614,18 @@ pub fn render( state.mutex.lock(); defer state.mutex.unlock(); - if (state.devmode) |dm| { - if (dm.visible) { - imgui.ImplMetal.newFrame(desc.value); - imgui.ImplGlfw.newFrame(); - try dm.update(); - imgui.ImplMetal.renderDrawData( - try dm.render(), - buffer.value, - encoder.value, - ); + if (DevMode.enabled) { + if (state.devmode) |dm| { + if (dm.visible) { + imgui.ImplMetal.newFrame(desc.value); + imgui.ImplGlfw.newFrame(); + try dm.update(); + imgui.ImplMetal.renderDrawData( + try dm.render(), + buffer.value, + encoder.value, + ); + } } } } @@ -690,7 +693,8 @@ pub fn setScreenSize(self: *Metal, _: renderer.ScreenSize) !void { // and we split them equal across all boundaries. const padding = self.padding.explicit.add(if (self.padding.balance) renderer.Padding.balanced(dim, grid_size, self.cell_size) - else .{}); + else + .{}); const padded_dim = dim.subPadding(padding); // Update our shaper From c68f8082df8dfffe1730394d1a5b4c0b6798f751 Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Fri, 17 Feb 2023 09:03:23 -0800 Subject: [PATCH 33/54] apprt: can pass options through to Windows --- include/ghostty.h | 1 + src/App.zig | 6 +++++- src/Window.zig | 9 +++++++-- src/apprt/embedded.zig | 13 +++++++++---- src/apprt/glfw.zig | 6 +++++- 5 files changed, 27 insertions(+), 8 deletions(-) diff --git a/include/ghostty.h b/include/ghostty.h index 8ed455aea..5557844ea 100644 --- a/include/ghostty.h +++ b/include/ghostty.h @@ -31,6 +31,7 @@ typedef struct { // Opaque types typedef void *ghostty_app_t; typedef void *ghostty_config_t; +typedef void *ghostty_surface_t; //------------------------------------------------------------------- // Published API diff --git a/src/App.zig b/src/App.zig index 462847d14..c55f22d67 100644 --- a/src/App.zig +++ b/src/App.zig @@ -189,7 +189,11 @@ fn drainMailbox(self: *App) !void { /// Create a new window fn newWindow(self: *App, msg: Message.NewWindow) !*Window { - var window = try Window.create(self.alloc, self, self.config); + if (comptime build_config.artifact != .exe) { + @panic("newWindow is not supported for embedded ghostty"); + } + + var window = try Window.create(self.alloc, self, self.config, .{}); errdefer window.destroy(); try self.windows.append(self.alloc, window); errdefer _ = self.windows.pop(); diff --git a/src/Window.zig b/src/Window.zig index c43f68b08..423432409 100644 --- a/src/Window.zig +++ b/src/Window.zig @@ -128,12 +128,17 @@ const Mouse = struct { /// Create a new window. This allocates and returns a pointer because we /// need a stable pointer for user data callbacks. Therefore, a stack-only /// initialization is not currently possible. -pub fn create(alloc: Allocator, app: *App, config: *const Config) !*Window { +pub fn create( + alloc: Allocator, + app: *App, + config: *const Config, + rt_opts: apprt.runtime.Window.Options, +) !*Window { var self = try alloc.create(Window); errdefer alloc.destroy(self); // Create the windowing system - var window = try apprt.runtime.Window.init(app, self); + var window = try apprt.runtime.Window.init(app, self, rt_opts); errdefer window.deinit(); // Initialize our renderer with our initialized windowing system. diff --git a/src/apprt/embedded.zig b/src/apprt/embedded.zig index 596b36f5d..3faa445b3 100644 --- a/src/apprt/embedded.zig +++ b/src/apprt/embedded.zig @@ -45,16 +45,21 @@ pub const App = struct { }; pub const Window = struct { - pub fn deinit(self: *Window) void { - _ = self; - } + pub const Options = extern struct { + id: usize, + }; - pub fn init(app: *const CoreApp, core_win: *CoreWindow) !Window { + pub fn init(app: *const CoreApp, core_win: *CoreWindow, opts: Options) !Window { _ = app; _ = core_win; + _ = opts; return .{}; } + pub fn deinit(self: *Window) void { + _ = self; + } + pub fn getContentScale(self: *const Window) !apprt.ContentScale { _ = self; return apprt.ContentScale{ .x = 1, .y = 1 }; diff --git a/src/apprt/glfw.zig b/src/apprt/glfw.zig index f64ad200d..1e03f30e9 100644 --- a/src/apprt/glfw.zig +++ b/src/apprt/glfw.zig @@ -58,7 +58,11 @@ pub const Window = struct { /// The glfw mouse cursor handle. cursor: glfw.Cursor, - pub fn init(app: *const CoreApp, core_win: *CoreWindow) !Window { + pub const Options = struct {}; + + pub fn init(app: *const CoreApp, core_win: *CoreWindow, opts: Options) !Window { + _ = opts; + // Create our window const win = glfw.Window.create( 640, From 6ceb5b847b09339373d94ba2bab5fe36d9bd048b Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Fri, 17 Feb 2023 10:42:22 -0800 Subject: [PATCH 34/54] macos: terminal surface view --- macos/Ghostty.xcodeproj/project.pbxproj | 4 ++ macos/Sources/GhosttyApp.swift | 2 +- macos/Sources/TerminalSurfaceView.swift | 59 +++++++++++++++++++++++++ 3 files changed, 64 insertions(+), 1 deletion(-) create mode 100644 macos/Sources/TerminalSurfaceView.swift diff --git a/macos/Ghostty.xcodeproj/project.pbxproj b/macos/Ghostty.xcodeproj/project.pbxproj index affcf56b3..77399b2e8 100644 --- a/macos/Ghostty.xcodeproj/project.pbxproj +++ b/macos/Ghostty.xcodeproj/project.pbxproj @@ -7,6 +7,7 @@ objects = { /* Begin PBXBuildFile section */ + A507573E299FF33C009D7DC7 /* TerminalSurfaceView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A507573D299FF33C009D7DC7 /* TerminalSurfaceView.swift */; }; A535B9DA299C569B0017E2E4 /* ErrorView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A535B9D9299C569B0017E2E4 /* ErrorView.swift */; }; A5B30535299BEAAA0047F10C /* GhosttyApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5B30534299BEAAA0047F10C /* GhosttyApp.swift */; }; A5B30537299BEAAA0047F10C /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5B30536299BEAAA0047F10C /* ContentView.swift */; }; @@ -15,6 +16,7 @@ /* End PBXBuildFile section */ /* Begin PBXFileReference section */ + A507573D299FF33C009D7DC7 /* TerminalSurfaceView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TerminalSurfaceView.swift; sourceTree = ""; }; A535B9D9299C569B0017E2E4 /* ErrorView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ErrorView.swift; sourceTree = ""; }; A5B30531299BEAAA0047F10C /* Ghostty.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Ghostty.app; sourceTree = BUILT_PRODUCTS_DIR; }; A5B30534299BEAAA0047F10C /* GhosttyApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GhosttyApp.swift; sourceTree = ""; }; @@ -43,6 +45,7 @@ A5B30534299BEAAA0047F10C /* GhosttyApp.swift */, A5B30536299BEAAA0047F10C /* ContentView.swift */, A535B9D9299C569B0017E2E4 /* ErrorView.swift */, + A507573D299FF33C009D7DC7 /* TerminalSurfaceView.swift */, ); path = Sources; sourceTree = ""; @@ -150,6 +153,7 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + A507573E299FF33C009D7DC7 /* TerminalSurfaceView.swift in Sources */, A5B30537299BEAAA0047F10C /* ContentView.swift in Sources */, A535B9DA299C569B0017E2E4 /* ErrorView.swift in Sources */, A5B30535299BEAAA0047F10C /* GhosttyApp.swift in Sources */, diff --git a/macos/Sources/GhosttyApp.swift b/macos/Sources/GhosttyApp.swift index e9429df57..11f6a80e7 100644 --- a/macos/Sources/GhosttyApp.swift +++ b/macos/Sources/GhosttyApp.swift @@ -20,7 +20,7 @@ struct GhosttyApp: App { case .error: ErrorView() case .ready: - ContentView() + TerminalSurfaceView() } } } diff --git a/macos/Sources/TerminalSurfaceView.swift b/macos/Sources/TerminalSurfaceView.swift new file mode 100644 index 000000000..dcff76146 --- /dev/null +++ b/macos/Sources/TerminalSurfaceView.swift @@ -0,0 +1,59 @@ +import SwiftUI + +/// A surface is terminology in Ghostty for a terminal surface, or a place where a terminal is actually drawn +/// and interacted with. The word "surface" is used because a surface may represent a window, a tab, +/// a split, a small preview pane, etc. It is ANYTHING that has a terminal drawn to it. +/// +/// We just wrap an AppKit NSView here at the moment so that we can behave as low level as possible +/// since that is what the Metal renderer in Ghostty expects. In the future, it may make more sense to +/// wrap an MTKView and use that, but for legacy reasons we didn't do that to begin with. +struct TerminalSurfaceView: NSViewRepresentable { + @StateObject private var state = TerminalSurfaceState() + + func makeNSView(context: Context) -> TerminalSurfaceView_Real { + // We need the view as part of the state to be created previously because + // the view is sent to the Ghostty API so that it can manipulate it + // directly since we draw on a render thread. + return state.view; + } + + func updateNSView(_ view: TerminalSurfaceView_Real, context: Context) { + // Nothing we need to do here. + } +} + +/// The state for the terminal surface view. +class TerminalSurfaceState: ObservableObject { + var view: TerminalSurfaceView_Real; + + init() { + view = TerminalSurfaceView_Real() + } +} + +// The actual NSView implementation for the terminal surface. +class TerminalSurfaceView_Real: NSView { + // We need to support being a first responder so that we can get input events + override var acceptsFirstResponder: Bool { return true } + + override func draw(_ dirtyRect: NSRect) { + print("DRAW: \(dirtyRect)") + NSColor.green.setFill() + dirtyRect.fill() + super.draw(dirtyRect) + } + + override func mouseDown(with event: NSEvent) { + print("Mouse down: \(event)") + } + + override func keyDown(with event: NSEvent) { + print("Key down: \(event)") + } +} + +struct TerminalSurfaceView_Previews: PreviewProvider { + static var previews: some View { + TerminalSurfaceView() + } +} From 55b05b22bb9c3f83eafc55ab80f3819d741f68eb Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Fri, 17 Feb 2023 12:31:35 -0800 Subject: [PATCH 35/54] c: create/destroy surface API --- include/ghostty.h | 4 +++ src/App.zig | 82 +++++++++++++++++++++++++++++------------- src/apprt/embedded.zig | 2 +- src/main.zig | 1 + 4 files changed, 64 insertions(+), 25 deletions(-) diff --git a/include/ghostty.h b/include/ghostty.h index 5557844ea..7c612e8a0 100644 --- a/include/ghostty.h +++ b/include/ghostty.h @@ -27,6 +27,7 @@ typedef struct { void *userdata; ghostty_runtime_wakeup_cb wakeup_cb; } ghostty_runtime_config_s; +typedef struct {} ghostty_surface_config_s; // Opaque types typedef void *ghostty_app_t; @@ -47,6 +48,9 @@ ghostty_app_t ghostty_app_new(ghostty_runtime_config_s *, ghostty_config_t); void ghostty_app_free(ghostty_app_t); int ghostty_app_tick(ghostty_app_t); +ghostty_surface_t ghostty_surface_new(ghostty_app_t, ghostty_surface_config_s*); +void ghostty_surface_free(ghostty_app_t, ghostty_surface_t); + #ifdef __cplusplus } #endif diff --git a/src/App.zig b/src/App.zig index c55f22d67..2c70d399f 100644 --- a/src/App.zig +++ b/src/App.zig @@ -115,13 +115,6 @@ pub fn create( } errdefer if (comptime builtin.target.isDarwin()) app.darwin.deinit(); - // Create the first window if we're an executable. If we're a lib we - // do NOT create the first window because we expect the embedded API - // to do it via surfaces. - if (build_config.artifact == .exe) { - _ = try app.newWindow(.{}); - } - return app; } @@ -174,6 +167,37 @@ pub fn tick(self: *App) !void { if (!self.quit) try self.drainMailbox(); } +/// Create a new window. This can be called only on the main thread. This +/// can be called prior to ever running the app loop. +pub fn newWindow(self: *App, msg: Message.NewWindow) !*Window { + var window = try Window.create(self.alloc, self, self.config, msg.runtime); + errdefer window.destroy(); + + try self.windows.append(self.alloc, window); + errdefer _ = self.windows.pop(); + + // Set initial font size if given + if (msg.font_size) |size| window.setFontSize(size); + + return window; +} + +/// Close a window and free all resources associated with it. This can +/// only be called from the main thread. +pub fn closeWindow(self: *App, window: *Window) void { + var i: usize = 0; + while (i < self.windows.items.len) { + const current = self.windows.items[i]; + if (window == current) { + window.destroy(); + _ = self.windows.swapRemove(i); + return; + } + + i += 1; + } +} + /// Drain the mailbox. fn drainMailbox(self: *App) !void { while (self.mailbox.pop()) |message| { @@ -187,23 +211,6 @@ fn drainMailbox(self: *App) !void { } } -/// Create a new window -fn newWindow(self: *App, msg: Message.NewWindow) !*Window { - if (comptime build_config.artifact != .exe) { - @panic("newWindow is not supported for embedded ghostty"); - } - - var window = try Window.create(self.alloc, self, self.config, .{}); - errdefer window.destroy(); - try self.windows.append(self.alloc, window); - errdefer _ = self.windows.pop(); - - // Set initial font size if given - if (msg.font_size) |size| window.setFontSize(size); - - return window; -} - /// Create a new tab in the parent window fn newTab(self: *App, msg: Message.NewWindow) !void { if (comptime !builtin.target.isDarwin()) { @@ -286,6 +293,9 @@ pub const Message = union(enum) { }, const NewWindow = struct { + /// Runtime-specific window options. + runtime: apprt.runtime.Window.Options = .{}, + /// The parent window, only used for new tabs. parent: ?*Window = null, @@ -361,4 +371,28 @@ pub const CAPI = struct { v.alloc.destroy(v); } } + + /// Create a new surface as part of an app. + export fn ghostty_surface_new( + app: *App, + opts: *const apprt.runtime.Window.Options, + ) ?*Window { + return surface_new_(app, opts) catch |err| { + log.err("error initializing surface err={}", .{err}); + return null; + }; + } + + fn surface_new_( + app: *App, + opts: *const apprt.runtime.Window.Options, + ) !*Window { + _ = opts; + const w = try app.newWindow(.{}); + return w; + } + + export fn ghostty_surface_free(ptr: ?*Window) void { + if (ptr) |v| v.app.closeWindow(v); + } }; diff --git a/src/apprt/embedded.zig b/src/apprt/embedded.zig index 3faa445b3..97f1ca58f 100644 --- a/src/apprt/embedded.zig +++ b/src/apprt/embedded.zig @@ -46,7 +46,7 @@ pub const App = struct { pub const Window = struct { pub const Options = extern struct { - id: usize, + id: usize = 0, }; pub fn init(app: *const CoreApp, core_win: *CoreWindow, opts: Options) !Window { diff --git a/src/main.zig b/src/main.zig index 8ad3186bf..b84322af6 100644 --- a/src/main.zig +++ b/src/main.zig @@ -94,6 +94,7 @@ pub fn main() !void { // Run our app with a single initial window to start. var app = try App.create(alloc, .{}, &config); defer app.destroy(); + _ = try app.newWindow(.{}); try app.run(); } From ff9af8a07b88ff075ede0c7ebca919a18668be71 Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Fri, 17 Feb 2023 15:49:19 -0800 Subject: [PATCH 36/54] lots of progress running a surface but still crashes --- build.zig | 14 ++++++-- include/ghostty.h | 9 +++-- macos/Ghostty.xcodeproj/project.pbxproj | 8 ++--- macos/Sources/AppError.swift | 3 ++ macos/Sources/ContentView.swift | 19 ---------- macos/Sources/GhosttyApp.swift | 29 +++++++++++++-- macos/Sources/TerminalSurfaceView.swift | 47 ++++++++++++++++++++----- pkg/pixman/build.zig | 2 +- src/App.zig | 5 +-- src/apprt/embedded.zig | 22 +++++++++--- src/renderer/Metal.zig | 40 +++++++++++++++------ src/renderer/size.zig | 19 +++++++--- 12 files changed, 156 insertions(+), 61 deletions(-) create mode 100644 macos/Sources/AppError.swift delete mode 100644 macos/Sources/ContentView.swift diff --git a/build.zig b/build.zig index bf2cfd5be..a7f42383e 100644 --- a/build.zig +++ b/build.zig @@ -147,6 +147,9 @@ pub fn build(b: *std.build.Builder) !void { lib.linkLibC(); lib.addOptions("build_options", exe_options); + // See the comment in this file + lib.addCSourceFile("src/renderer/metal_workaround.c", &.{}); + // Create a single static lib with all our dependencies merged var lib_list = try addDeps(b, lib, true); try lib_list.append(.{ .generated = &lib.output_path_source }); @@ -172,6 +175,9 @@ pub fn build(b: *std.build.Builder) !void { lib.linkLibC(); lib.addOptions("build_options", exe_options); + // See the comment in this file + lib.addCSourceFile("src/renderer/metal_workaround.c", &.{}); + // Create a single static lib with all our dependencies merged var lib_list = try addDeps(b, lib, true); try lib_list.append(.{ .generated = &lib.output_path_source }); @@ -425,10 +431,12 @@ fn addDeps( } // stb_image_resize - _ = try stb_image_resize.link(b, step, .{}); + const stb_image_resize_step = try stb_image_resize.link(b, step, .{}); + try static_libs.append(.{ .generated = &stb_image_resize_step.output_path_source }); // utf8proc - _ = try utf8proc.link(b, step); + const utf8proc_step = try utf8proc.link(b, step); + try static_libs.append(.{ .generated = &utf8proc_step.output_path_source }); // Imgui, we have to do this later since we need some information const imgui_backends = if (step.target.isDarwin()) @@ -499,7 +507,7 @@ fn addDeps( // Pixman const pixman_step = try pixman.link(b, step, .{}); - _ = pixman_step; + try static_libs.append(.{ .generated = &pixman_step.output_path_source }); // Only Linux gets fontconfig if (enable_fontconfig) { diff --git a/include/ghostty.h b/include/ghostty.h index 7c612e8a0..367f14207 100644 --- a/include/ghostty.h +++ b/include/ghostty.h @@ -27,7 +27,10 @@ typedef struct { void *userdata; ghostty_runtime_wakeup_cb wakeup_cb; } ghostty_runtime_config_s; -typedef struct {} ghostty_surface_config_s; +typedef struct { + void *nsview; + double scale_factor; +} ghostty_surface_config_s; // Opaque types typedef void *ghostty_app_t; @@ -44,12 +47,12 @@ void ghostty_config_free(ghostty_config_t); void ghostty_config_load_string(ghostty_config_t, const char *, uintptr_t); void ghostty_config_finalize(ghostty_config_t); -ghostty_app_t ghostty_app_new(ghostty_runtime_config_s *, ghostty_config_t); +ghostty_app_t ghostty_app_new(const ghostty_runtime_config_s *, ghostty_config_t); void ghostty_app_free(ghostty_app_t); int ghostty_app_tick(ghostty_app_t); ghostty_surface_t ghostty_surface_new(ghostty_app_t, ghostty_surface_config_s*); -void ghostty_surface_free(ghostty_app_t, ghostty_surface_t); +void ghostty_surface_free(ghostty_surface_t); #ifdef __cplusplus } diff --git a/macos/Ghostty.xcodeproj/project.pbxproj b/macos/Ghostty.xcodeproj/project.pbxproj index 77399b2e8..7eef0edd0 100644 --- a/macos/Ghostty.xcodeproj/project.pbxproj +++ b/macos/Ghostty.xcodeproj/project.pbxproj @@ -9,8 +9,8 @@ /* Begin PBXBuildFile section */ A507573E299FF33C009D7DC7 /* TerminalSurfaceView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A507573D299FF33C009D7DC7 /* TerminalSurfaceView.swift */; }; A535B9DA299C569B0017E2E4 /* ErrorView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A535B9D9299C569B0017E2E4 /* ErrorView.swift */; }; + A55685E029A03A9F004303CE /* AppError.swift in Sources */ = {isa = PBXBuildFile; fileRef = A55685DF29A03A9F004303CE /* AppError.swift */; }; A5B30535299BEAAA0047F10C /* GhosttyApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5B30534299BEAAA0047F10C /* GhosttyApp.swift */; }; - A5B30537299BEAAA0047F10C /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5B30536299BEAAA0047F10C /* ContentView.swift */; }; A5B30539299BEAAB0047F10C /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = A5B30538299BEAAB0047F10C /* Assets.xcassets */; }; A5D495A2299BEC7E00DD1313 /* GhosttyKit.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = A5D495A1299BEC7E00DD1313 /* GhosttyKit.xcframework */; }; /* End PBXBuildFile section */ @@ -18,9 +18,9 @@ /* Begin PBXFileReference section */ A507573D299FF33C009D7DC7 /* TerminalSurfaceView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TerminalSurfaceView.swift; sourceTree = ""; }; A535B9D9299C569B0017E2E4 /* ErrorView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ErrorView.swift; sourceTree = ""; }; + A55685DF29A03A9F004303CE /* AppError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppError.swift; sourceTree = ""; }; A5B30531299BEAAA0047F10C /* Ghostty.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Ghostty.app; sourceTree = BUILT_PRODUCTS_DIR; }; A5B30534299BEAAA0047F10C /* GhosttyApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GhosttyApp.swift; sourceTree = ""; }; - A5B30536299BEAAA0047F10C /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; }; A5B30538299BEAAB0047F10C /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; A5B3053D299BEAAB0047F10C /* Ghostty.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = Ghostty.entitlements; sourceTree = ""; }; A5D495A1299BEC7E00DD1313 /* GhosttyKit.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; path = GhosttyKit.xcframework; sourceTree = ""; }; @@ -43,9 +43,9 @@ children = ( A5D495A0299BEC2200DD1313 /* Preview Content */, A5B30534299BEAAA0047F10C /* GhosttyApp.swift */, - A5B30536299BEAAA0047F10C /* ContentView.swift */, A535B9D9299C569B0017E2E4 /* ErrorView.swift */, A507573D299FF33C009D7DC7 /* TerminalSurfaceView.swift */, + A55685DF29A03A9F004303CE /* AppError.swift */, ); path = Sources; sourceTree = ""; @@ -153,8 +153,8 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + A55685E029A03A9F004303CE /* AppError.swift in Sources */, A507573E299FF33C009D7DC7 /* TerminalSurfaceView.swift in Sources */, - A5B30537299BEAAA0047F10C /* ContentView.swift in Sources */, A535B9DA299C569B0017E2E4 /* ErrorView.swift in Sources */, A5B30535299BEAAA0047F10C /* GhosttyApp.swift in Sources */, ); diff --git a/macos/Sources/AppError.swift b/macos/Sources/AppError.swift new file mode 100644 index 000000000..55f191d3d --- /dev/null +++ b/macos/Sources/AppError.swift @@ -0,0 +1,3 @@ +enum AppError: Error { + case surfaceCreateError +} diff --git a/macos/Sources/ContentView.swift b/macos/Sources/ContentView.swift deleted file mode 100644 index f54deaba8..000000000 --- a/macos/Sources/ContentView.swift +++ /dev/null @@ -1,19 +0,0 @@ -import SwiftUI - -struct ContentView: View { - var body: some View { - VStack { - Image(systemName: "globe") - .imageScale(.large) - .foregroundColor(.accentColor) - Text("Hello, world!") - } - .padding() - } -} - -struct ContentView_Previews: PreviewProvider { - static var previews: some View { - ContentView() - } -} diff --git a/macos/Sources/GhosttyApp.swift b/macos/Sources/GhosttyApp.swift index 11f6a80e7..2654ac5b3 100644 --- a/macos/Sources/GhosttyApp.swift +++ b/macos/Sources/GhosttyApp.swift @@ -20,7 +20,7 @@ struct GhosttyApp: App { case .error: ErrorView() case .ready: - TerminalSurfaceView() + TerminalSurfaceView(app: ghostty.app!) } } } @@ -37,6 +37,10 @@ class GhosttyState: ObservableObject { /// The ghostty global configuration. var config: ghostty_config_t? = nil + /// The ghostty app instance. We only have one of these for the entire app, although I guess + /// in theory you can have multiple... I don't know why you would... + var app: ghostty_app_t? = nil + init() { // Initialize ghostty global state. This happens once per process. guard ghostty_init() == GHOSTTY_SUCCESS else { @@ -51,6 +55,7 @@ class GhosttyState: ObservableObject { readiness = .error return } + self.config = cfg; // TODO: we'd probably do some config loading here... for now we'd // have to do this synchronously. When we support config updating we can do @@ -59,11 +64,29 @@ class GhosttyState: ObservableObject { // Finalize will make our defaults available. ghostty_config_finalize(cfg) - config = cfg - readiness = .ready + // Create our "runtime" config. The "runtime" is the configuration that ghostty + // uses to interface with the application runtime environment. + var runtime_cfg = ghostty_runtime_config_s( + userdata: nil, + wakeup_cb: { userdata in GhosttyState.wakeup() }) + + // Create the ghostty app. + guard let app = ghostty_app_new(&runtime_cfg, cfg) else { + GhosttyApp.logger.critical("ghostty_app_new failed") + readiness = .error + return + } + self.app = app + + self.readiness = .ready + } + + static func wakeup() { + // TODO } deinit { + ghostty_app_free(app) ghostty_config_free(config) } } diff --git a/macos/Sources/TerminalSurfaceView.swift b/macos/Sources/TerminalSurfaceView.swift index dcff76146..41505c5a3 100644 --- a/macos/Sources/TerminalSurfaceView.swift +++ b/macos/Sources/TerminalSurfaceView.swift @@ -1,4 +1,6 @@ +import OSLog import SwiftUI +import GhosttyKit /// A surface is terminology in Ghostty for a terminal surface, or a place where a terminal is actually drawn /// and interacted with. The word "surface" is used because a surface may represent a window, a tab, @@ -8,7 +10,11 @@ import SwiftUI /// since that is what the Metal renderer in Ghostty expects. In the future, it may make more sense to /// wrap an MTKView and use that, but for legacy reasons we didn't do that to begin with. struct TerminalSurfaceView: NSViewRepresentable { - @StateObject private var state = TerminalSurfaceState() + @StateObject private var state: TerminalSurfaceState + + init(app: ghostty_app_t) { + self._state = StateObject(wrappedValue: TerminalSurfaceState(app)) + } func makeNSView(context: Context) -> TerminalSurfaceView_Real { // We need the view as part of the state to be created previously because @@ -24,10 +30,33 @@ struct TerminalSurfaceView: NSViewRepresentable { /// The state for the terminal surface view. class TerminalSurfaceState: ObservableObject { - var view: TerminalSurfaceView_Real; + static let logger = Logger( + subsystem: Bundle.main.bundleIdentifier!, + category: String(describing: TerminalSurfaceState.self) + ) - init() { + var view: TerminalSurfaceView_Real + private var surface: ghostty_surface_t? = nil + private var error: Error? = nil + + init(_ app: ghostty_app_t) { view = TerminalSurfaceView_Real() + + var surface_cfg = ghostty_surface_config_s( + nsview: Unmanaged.passUnretained(view).toOpaque(), + scale_factor: 2.0) + guard let surface = ghostty_surface_new(app, &surface_cfg) else { + self.error = AppError.surfaceCreateError + return + } + + self.surface = surface; + } + + deinit { + if let surface = self.surface { + ghostty_surface_free(surface) + } } } @@ -52,8 +81,10 @@ class TerminalSurfaceView_Real: NSView { } } -struct TerminalSurfaceView_Previews: PreviewProvider { - static var previews: some View { - TerminalSurfaceView() - } -} +/* + struct TerminalSurfaceView_Previews: PreviewProvider { + static var previews: some View { + TerminalSurfaceView() + } + } + */ diff --git a/pkg/pixman/build.zig b/pkg/pixman/build.zig index 16df1f85d..4a1650a21 100644 --- a/pkg/pixman/build.zig +++ b/pkg/pixman/build.zig @@ -138,7 +138,7 @@ const srcs = &.{ root ++ "pixman/pixman-region16.c", root ++ "pixman/pixman-region32.c", root ++ "pixman/pixman-solid-fill.c", - root ++ "pixman/pixman-timer.c", + //root ++ "pixman/pixman-timer.c", root ++ "pixman/pixman-trap.c", root ++ "pixman/pixman-utils.c", }; diff --git a/src/App.zig b/src/App.zig index 2c70d399f..1d4b833f8 100644 --- a/src/App.zig +++ b/src/App.zig @@ -387,8 +387,9 @@ pub const CAPI = struct { app: *App, opts: *const apprt.runtime.Window.Options, ) !*Window { - _ = opts; - const w = try app.newWindow(.{}); + const w = try app.newWindow(.{ + .runtime = opts.*, + }); return w; } diff --git a/src/apprt/embedded.zig b/src/apprt/embedded.zig index 97f1ca58f..38e5a1193 100644 --- a/src/apprt/embedded.zig +++ b/src/apprt/embedded.zig @@ -8,6 +8,7 @@ const std = @import("std"); const builtin = @import("builtin"); const assert = std.debug.assert; const Allocator = std.mem.Allocator; +const objc = @import("objc"); const apprt = @import("../apprt.zig"); const CoreApp = @import("../App.zig"); const CoreWindow = @import("../Window.zig"); @@ -45,15 +46,25 @@ pub const App = struct { }; pub const Window = struct { + nsview: objc.Object, + scale_factor: f64, + pub const Options = extern struct { - id: usize = 0, + /// The pointer to the backing NSView for the surface. + nsview: *anyopaque = undefined, + + /// The scale factor of the screen. + scale_factor: f64 = 1, }; pub fn init(app: *const CoreApp, core_win: *CoreWindow, opts: Options) !Window { _ = app; _ = core_win; - _ = opts; - return .{}; + + return .{ + .nsview = objc.Object.fromId(opts.nsview), + .scale_factor = opts.scale_factor, + }; } pub fn deinit(self: *Window) void { @@ -67,7 +78,10 @@ pub const Window = struct { pub fn getSize(self: *const Window) !apprt.WindowSize { _ = self; - return apprt.WindowSize{ .width = 1, .height = 1 }; + + // Initially our window will have a zero size. Until we can determine + // the size of the window, we just send down this value. + return apprt.WindowSize{ .width = 800, .height = 600 }; } pub fn setSizeLimits(self: *Window, min: apprt.WindowSize, max_: ?apprt.WindowSize) !void { diff --git a/src/renderer/Metal.zig b/src/renderer/Metal.zig index e15233d44..c57dd7c99 100644 --- a/src/renderer/Metal.zig +++ b/src/renderer/Metal.zig @@ -305,22 +305,42 @@ pub fn deinit(self: *Metal) void { /// This is called just prior to spinning up the renderer thread for /// final main thread setup requirements. pub fn finalizeWindowInit(self: *const Metal, win: apprt.runtime.Window) !void { - // Set our window backing layer to be our swapchain - const nswindow = switch (apprt.runtime) { - apprt.glfw => objc.Object.fromId(glfwNative.getCocoaWindow(win.window).?), - apprt.embedded => @panic("TODO"), + const Info = struct { + view: objc.Object, + scaleFactor: f64, + }; + + // Get the view and scale factor for our surface. + const info: Info = switch (apprt.runtime) { + apprt.glfw => info: { + // Everything in glfw is window-oriented so we grab the backing + // window, then derive everything from that. + const nswindow = objc.Object.fromId(glfwNative.getCocoaWindow(win.window).?); + const contentView = objc.Object.fromId(nswindow.getProperty(?*anyopaque, "contentView").?); + const scaleFactor = nswindow.getProperty(macos.graphics.c.CGFloat, "backingScaleFactor"); + break :info .{ + .view = contentView, + .scaleFactor = scaleFactor, + }; + }, + + apprt.embedded => .{ + .view = win.nsview, + .scaleFactor = win.scale_factor, + }, + else => @compileError("unsupported apprt for metal"), }; - const contentView = objc.Object.fromId(nswindow.getProperty(?*anyopaque, "contentView").?); - contentView.setProperty("layer", self.swapchain.value); - contentView.setProperty("wantsLayer", true); + + // Make our view layer-backed with our Metal layer + info.view.setProperty("layer", self.swapchain.value); + info.view.setProperty("wantsLayer", true); // Ensure that our metal layer has a content scale set to match the // scale factor of the window. This avoids magnification issues leading // to blurry rendering. - const layer = contentView.getProperty(objc.Object, "layer"); - const scaleFactor = nswindow.getProperty(macos.graphics.c.CGFloat, "backingScaleFactor"); - layer.setProperty("contentsScale", scaleFactor); + const layer = info.view.getProperty(objc.Object, "layer"); + layer.setProperty("contentsScale", info.scaleFactor); } /// This is called if this renderer runs DevMode. diff --git a/src/renderer/size.zig b/src/renderer/size.zig index a96ae160e..0be4e6476 100644 --- a/src/renderer/size.zig +++ b/src/renderer/size.zig @@ -106,10 +106,10 @@ pub const Padding = struct { const padding_bot = space_bot - padding_top; return .{ - .top = padding_top, - .bottom = padding_bot, - .right = padding_right, - .left = padding_left, + .top = @max(0, padding_top), + .bottom = @max(0, padding_bot), + .right = @max(0, padding_right), + .left = @max(0, padding_left), }; } @@ -124,6 +124,17 @@ pub const Padding = struct { } }; +test "Padding balanced on zero" { + // On some systems, our screen can be zero-sized for a bit, and we + // don't want to end up with negative padding. + const testing = std.testing; + const grid: GridSize = .{ .columns = 100, .rows = 37 }; + const cell: CellSize = .{ .width = 10, .height = 20 }; + const screen: ScreenSize = .{ .width = 0, .height = 0 }; + const padding = Padding.balanced(screen, grid, cell); + try testing.expectEqual(padding, .{}); +} + test "GridSize update exact" { const testing = std.testing; From cd77408efc9f4867296838d73ee8bc1f3ad9a1f8 Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Fri, 17 Feb 2023 20:07:51 -0800 Subject: [PATCH 37/54] it draws! --- include/ghostty.h | 1 + macos/Sources/TerminalSurfaceView.swift | 44 ++++++++++++------------- src/App.zig | 6 ++++ src/apprt/embedded.zig | 18 +++++++++- src/renderer/Metal.zig | 33 +++++++++++-------- 5 files changed, 66 insertions(+), 36 deletions(-) diff --git a/include/ghostty.h b/include/ghostty.h index 367f14207..796f9200b 100644 --- a/include/ghostty.h +++ b/include/ghostty.h @@ -53,6 +53,7 @@ int ghostty_app_tick(ghostty_app_t); ghostty_surface_t ghostty_surface_new(ghostty_app_t, ghostty_surface_config_s*); void ghostty_surface_free(ghostty_surface_t); +void ghostty_surface_set_size(ghostty_surface_t, uint32_t, uint32_t); #ifdef __cplusplus } diff --git a/macos/Sources/TerminalSurfaceView.swift b/macos/Sources/TerminalSurfaceView.swift index 41505c5a3..2e7343441 100644 --- a/macos/Sources/TerminalSurfaceView.swift +++ b/macos/Sources/TerminalSurfaceView.swift @@ -10,17 +10,17 @@ import GhosttyKit /// since that is what the Metal renderer in Ghostty expects. In the future, it may make more sense to /// wrap an MTKView and use that, but for legacy reasons we didn't do that to begin with. struct TerminalSurfaceView: NSViewRepresentable { - @StateObject private var state: TerminalSurfaceState + @StateObject private var state: TerminalSurfaceView_Real init(app: ghostty_app_t) { - self._state = StateObject(wrappedValue: TerminalSurfaceState(app)) + self._state = StateObject(wrappedValue: TerminalSurfaceView_Real(app)) } func makeNSView(context: Context) -> TerminalSurfaceView_Real { // We need the view as part of the state to be created previously because // the view is sent to the Ghostty API so that it can manipulate it // directly since we draw on a render thread. - return state.view; + return state; } func updateNSView(_ view: TerminalSurfaceView_Real, context: Context) { @@ -28,22 +28,23 @@ struct TerminalSurfaceView: NSViewRepresentable { } } -/// The state for the terminal surface view. -class TerminalSurfaceState: ObservableObject { - static let logger = Logger( - subsystem: Bundle.main.bundleIdentifier!, - category: String(describing: TerminalSurfaceState.self) - ) +// The actual NSView implementation for the terminal surface. +class TerminalSurfaceView_Real: NSView, ObservableObject { + // We need to support being a first responder so that we can get input events + override var acceptsFirstResponder: Bool { return true } - var view: TerminalSurfaceView_Real private var surface: ghostty_surface_t? = nil private var error: Error? = nil init(_ app: ghostty_app_t) { - view = TerminalSurfaceView_Real() + // Initialize with some default frame size. The important thing is that this + // is non-zero so that our layer bounds are non-zero so that our renderer + // can do SOMETHING. + super.init(frame: NSMakeRect(0, 0, 800, 600)) + // Setup our surface. This will also initialize all the terminal IO. var surface_cfg = ghostty_surface_config_s( - nsview: Unmanaged.passUnretained(view).toOpaque(), + nsview: Unmanaged.passUnretained(self).toOpaque(), scale_factor: 2.0) guard let surface = ghostty_surface_new(app, &surface_cfg) else { self.error = AppError.surfaceCreateError @@ -53,17 +54,16 @@ class TerminalSurfaceState: ObservableObject { self.surface = surface; } - deinit { - if let surface = self.surface { - ghostty_surface_free(surface) - } + required init?(coder: NSCoder) { + fatalError("init(coder:) is not supported for this view") + } + + override func resize(withOldSuperviewSize oldSize: NSSize) { + print("LAYER: \(self.layer?.bounds)") + super.resize(withOldSuperviewSize: oldSize) + print("RESIZE: \(oldSize) NEW: \(self.bounds)") + print("LAYER: \(self.layer?.bounds)") } -} - -// The actual NSView implementation for the terminal surface. -class TerminalSurfaceView_Real: NSView { - // We need to support being a first responder so that we can get input events - override var acceptsFirstResponder: Bool { return true } override func draw(_ dirtyRect: NSRect) { print("DRAW: \(dirtyRect)") diff --git a/src/App.zig b/src/App.zig index 1d4b833f8..982deb6b0 100644 --- a/src/App.zig +++ b/src/App.zig @@ -396,4 +396,10 @@ pub const CAPI = struct { export fn ghostty_surface_free(ptr: ?*Window) void { if (ptr) |v| v.app.closeWindow(v); } + + /// Update the size of a surface. This will trigger resize notifications + /// to the pty and the renderer. + export fn ghostty_surface_set_size(win: *Window, w: u32, h: u32) void { + win.window.updateSize(w, h); + } }; diff --git a/src/apprt/embedded.zig b/src/apprt/embedded.zig index 38e5a1193..c0dc8dba8 100644 --- a/src/apprt/embedded.zig +++ b/src/apprt/embedded.zig @@ -13,6 +13,8 @@ const apprt = @import("../apprt.zig"); const CoreApp = @import("../App.zig"); const CoreWindow = @import("../Window.zig"); +const log = std.log.scoped(.embedded_window); + pub const App = struct { /// Because we only expect the embedding API to be used in embedded /// environments, the options are extern so that we can expose it @@ -48,6 +50,7 @@ pub const App = struct { pub const Window = struct { nsview: objc.Object, scale_factor: f64, + core_win: *CoreWindow, pub const Options = extern struct { /// The pointer to the backing NSView for the surface. @@ -59,9 +62,9 @@ pub const Window = struct { pub fn init(app: *const CoreApp, core_win: *CoreWindow, opts: Options) !Window { _ = app; - _ = core_win; return .{ + .core_win = core_win, .nsview = objc.Object.fromId(opts.nsview), .scale_factor = opts.scale_factor, }; @@ -113,4 +116,17 @@ pub const Window = struct { _ = self; return false; } + + pub fn updateSize(self: *const Window, width: u32, height: u32) void { + const size: apprt.WindowSize = .{ + .width = width, + .height = height, + }; + + // Call the primary callback. + self.core_win.sizeCallback(size) catch |err| { + log.err("error in size callback err={}", .{err}); + return; + }; + } }; diff --git a/src/renderer/Metal.zig b/src/renderer/Metal.zig index c57dd7c99..77c269e48 100644 --- a/src/renderer/Metal.zig +++ b/src/renderer/Metal.zig @@ -568,9 +568,14 @@ pub fn render( .{@as(c_ulong, 0)}, ); + // Texture is a property of CAMetalDrawable but if you run + // Ghostty in XCode in debug mode it returns a CaptureMTLDrawable + // which ironically doesn't implement CAMetalDrawable as a + // property so we just send a message. + const texture = surface.msgSend(objc.c.id, objc.sel("texture"), .{}); attachment.setProperty("loadAction", @enumToInt(MTLLoadAction.clear)); attachment.setProperty("storeAction", @enumToInt(MTLStoreAction.store)); - attachment.setProperty("texture", surface.getProperty(objc.c.id, "texture").?); + attachment.setProperty("texture", texture); attachment.setProperty("clearColor", MTLClearColor{ .red = @intToFloat(f32, critical.bg.r) / 255, .green = @intToFloat(f32, critical.bg.g) / 255, @@ -673,18 +678,20 @@ fn drawCells( .{ buf.value, @as(c_ulong, 0), @as(c_ulong, 0) }, ); - encoder.msgSend( - void, - objc.sel("drawIndexedPrimitives:indexCount:indexType:indexBuffer:indexBufferOffset:instanceCount:"), - .{ - @enumToInt(MTLPrimitiveType.triangle), - @as(c_ulong, 6), - @enumToInt(MTLIndexType.uint16), - self.buf_instance.value, - @as(c_ulong, 0), - @as(c_ulong, cells.items.len), - }, - ); + if (cells.items.len > 0) { + encoder.msgSend( + void, + objc.sel("drawIndexedPrimitives:indexCount:indexType:indexBuffer:indexBufferOffset:instanceCount:"), + .{ + @enumToInt(MTLPrimitiveType.triangle), + @as(c_ulong, 6), + @enumToInt(MTLIndexType.uint16), + self.buf_instance.value, + @as(c_ulong, 0), + @as(c_ulong, cells.items.len), + }, + ); + } } /// Resize the screen. From 20f76a71ef19b7c2f85d8bcb89d935823cfb5f66 Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Fri, 17 Feb 2023 20:16:20 -0800 Subject: [PATCH 38/54] update size --- macos/Sources/TerminalSurfaceView.swift | 16 +++++----------- src/apprt/embedded.zig | 14 ++++++-------- 2 files changed, 11 insertions(+), 19 deletions(-) diff --git a/macos/Sources/TerminalSurfaceView.swift b/macos/Sources/TerminalSurfaceView.swift index 2e7343441..498ac9c30 100644 --- a/macos/Sources/TerminalSurfaceView.swift +++ b/macos/Sources/TerminalSurfaceView.swift @@ -45,7 +45,7 @@ class TerminalSurfaceView_Real: NSView, ObservableObject { // Setup our surface. This will also initialize all the terminal IO. var surface_cfg = ghostty_surface_config_s( nsview: Unmanaged.passUnretained(self).toOpaque(), - scale_factor: 2.0) + scale_factor: 1.0) guard let surface = ghostty_surface_new(app, &surface_cfg) else { self.error = AppError.surfaceCreateError return @@ -59,17 +59,11 @@ class TerminalSurfaceView_Real: NSView, ObservableObject { } override func resize(withOldSuperviewSize oldSize: NSSize) { - print("LAYER: \(self.layer?.bounds)") super.resize(withOldSuperviewSize: oldSize) - print("RESIZE: \(oldSize) NEW: \(self.bounds)") - print("LAYER: \(self.layer?.bounds)") - } - - override func draw(_ dirtyRect: NSRect) { - print("DRAW: \(dirtyRect)") - NSColor.green.setFill() - dirtyRect.fill() - super.draw(dirtyRect) + + if let surface = self.surface { + ghostty_surface_set_size(surface, UInt32(self.bounds.size.width), UInt32(self.bounds.size.height)) + } } override func mouseDown(with event: NSEvent) { diff --git a/src/apprt/embedded.zig b/src/apprt/embedded.zig index c0dc8dba8..aafc95b4a 100644 --- a/src/apprt/embedded.zig +++ b/src/apprt/embedded.zig @@ -51,6 +51,7 @@ pub const Window = struct { nsview: objc.Object, scale_factor: f64, core_win: *CoreWindow, + size: apprt.WindowSize, pub const Options = extern struct { /// The pointer to the backing NSView for the surface. @@ -67,6 +68,7 @@ pub const Window = struct { .core_win = core_win, .nsview = objc.Object.fromId(opts.nsview), .scale_factor = opts.scale_factor, + .size = .{ .width = 800, .height = 600 }, }; } @@ -80,11 +82,7 @@ pub const Window = struct { } pub fn getSize(self: *const Window) !apprt.WindowSize { - _ = self; - - // Initially our window will have a zero size. Until we can determine - // the size of the window, we just send down this value. - return apprt.WindowSize{ .width = 800, .height = 600 }; + return self.size; } pub fn setSizeLimits(self: *Window, min: apprt.WindowSize, max_: ?apprt.WindowSize) !void { @@ -117,14 +115,14 @@ pub const Window = struct { return false; } - pub fn updateSize(self: *const Window, width: u32, height: u32) void { - const size: apprt.WindowSize = .{ + pub fn updateSize(self: *Window, width: u32, height: u32) void { + self.size = .{ .width = width, .height = height, }; // Call the primary callback. - self.core_win.sizeCallback(size) catch |err| { + self.core_win.sizeCallback(self.size) catch |err| { log.err("error in size callback err={}", .{err}); return; }; From 57551e399097fc36fb24642bd66d3d15d6d1f71b Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Fri, 17 Feb 2023 20:51:14 -0800 Subject: [PATCH 39/54] macos: disable sandbox --- macos/Ghostty.entitlements | 7 +------ macos/Ghostty.xcodeproj/project.pbxproj | 5 +++-- src/Pty.zig | 11 +++++++++-- 3 files changed, 13 insertions(+), 10 deletions(-) diff --git a/macos/Ghostty.entitlements b/macos/Ghostty.entitlements index f2ef3ae02..0c67376eb 100644 --- a/macos/Ghostty.entitlements +++ b/macos/Ghostty.entitlements @@ -1,10 +1,5 @@ - - com.apple.security.app-sandbox - - com.apple.security.files.user-selected.read-only - - + diff --git a/macos/Ghostty.xcodeproj/project.pbxproj b/macos/Ghostty.xcodeproj/project.pbxproj index 7eef0edd0..a0a9e76dd 100644 --- a/macos/Ghostty.xcodeproj/project.pbxproj +++ b/macos/Ghostty.xcodeproj/project.pbxproj @@ -301,7 +301,7 @@ ); MARKETING_VERSION = 0.1; "OTHER_LDFLAGS[arch=*]" = "-lstdc++"; - PRODUCT_BUNDLE_IDENTIFIER = com.mitchellh.Ghostty; + PRODUCT_BUNDLE_IDENTIFIER = com.mitchellh.ghostty; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_EMIT_LOC_STRINGS = YES; SWIFT_VERSION = 5.0; @@ -323,6 +323,7 @@ DEVELOPMENT_TEAM = ""; ENABLE_HARDENED_RUNTIME = YES; ENABLE_PREVIEWS = YES; + GCC_OPTIMIZATION_LEVEL = fast; GENERATE_INFOPLIST_FILE = YES; INFOPLIST_KEY_CFBundleDisplayName = Ghostty; INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.developer-tools"; @@ -333,7 +334,7 @@ ); MARKETING_VERSION = 0.1; "OTHER_LDFLAGS[arch=*]" = "-lstdc++"; - PRODUCT_BUNDLE_IDENTIFIER = com.mitchellh.Ghostty; + PRODUCT_BUNDLE_IDENTIFIER = com.mitchellh.ghostty; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_EMIT_LOC_STRINGS = YES; SWIFT_VERSION = 5.0; diff --git a/src/Pty.zig b/src/Pty.zig index a09b2519e..c61c9feb9 100644 --- a/src/Pty.zig +++ b/src/Pty.zig @@ -19,6 +19,8 @@ const c = switch (builtin.os.tag) { }), }; +const log = std.log.scoped(.pty); + // https://github.com/ziglang/zig/issues/13277 // Once above is fixed, use `c.TIOCSCTTY` const TIOCSCTTY = if (builtin.os.tag == .macos) 536900705 else c.TIOCSCTTY; @@ -102,8 +104,13 @@ pub fn childPreExec(self: Pty) !void { if (setsid() < 0) return error.ProcessGroupFailed; // Set controlling terminal - if (c.ioctl(self.slave, TIOCSCTTY, @as(c_ulong, 0)) < 0) - return error.SetControllingTerminalFailed; + switch (std.os.system.getErrno(c.ioctl(self.slave, TIOCSCTTY, @as(c_ulong, 0)))) { + .SUCCESS => {}, + else => |err| { + log.err("error setting controlling terminal errno={}", .{err}); + return error.SetControllingTerminalFailed; + }, + } // Can close master/slave pair now std.os.close(self.slave); From 074664398a1c30f1f75bb8f363a86234b927150c Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Fri, 17 Feb 2023 21:45:52 -0800 Subject: [PATCH 40/54] macos: correct scale factor propagated --- include/ghostty.h | 2 ++ macos/Sources/TerminalSurfaceView.swift | 36 +++++++++++++++++++++++-- src/App.zig | 10 +++++++ src/apprt/embedded.zig | 24 ++++++++++++++--- src/renderer/Metal.zig | 2 +- 5 files changed, 67 insertions(+), 7 deletions(-) diff --git a/include/ghostty.h b/include/ghostty.h index 796f9200b..5bf1fd588 100644 --- a/include/ghostty.h +++ b/include/ghostty.h @@ -53,6 +53,8 @@ int ghostty_app_tick(ghostty_app_t); ghostty_surface_t ghostty_surface_new(ghostty_app_t, ghostty_surface_config_s*); void ghostty_surface_free(ghostty_surface_t); +void ghostty_surface_refresh(ghostty_surface_t); +void ghostty_surface_set_content_scale(ghostty_surface_t, double, double); void ghostty_surface_set_size(ghostty_surface_t, uint32_t, uint32_t); #ifdef __cplusplus diff --git a/macos/Sources/TerminalSurfaceView.swift b/macos/Sources/TerminalSurfaceView.swift index 498ac9c30..822c2beff 100644 --- a/macos/Sources/TerminalSurfaceView.swift +++ b/macos/Sources/TerminalSurfaceView.swift @@ -33,6 +33,10 @@ class TerminalSurfaceView_Real: NSView, ObservableObject { // We need to support being a first responder so that we can get input events override var acceptsFirstResponder: Bool { return true } + // I don't thikn we need this but this lets us know we should redraw our layer + // so we'll use that to tell ghostty to refresh. + override var wantsUpdateLayer: Bool { return true } + private var surface: ghostty_surface_t? = nil private var error: Error? = nil @@ -45,7 +49,7 @@ class TerminalSurfaceView_Real: NSView, ObservableObject { // Setup our surface. This will also initialize all the terminal IO. var surface_cfg = ghostty_surface_config_s( nsview: Unmanaged.passUnretained(self).toOpaque(), - scale_factor: 1.0) + scale_factor: NSScreen.main!.backingScaleFactor) guard let surface = ghostty_surface_new(app, &surface_cfg) else { self.error = AppError.surfaceCreateError return @@ -62,16 +66,44 @@ class TerminalSurfaceView_Real: NSView, ObservableObject { super.resize(withOldSuperviewSize: oldSize) if let surface = self.surface { - ghostty_surface_set_size(surface, UInt32(self.bounds.size.width), UInt32(self.bounds.size.height)) + // Ghostty wants to know the actual framebuffer size... + let fbFrame = self.convertToBacking(self.frame); + ghostty_surface_set_size(surface, UInt32(fbFrame.size.width), UInt32(fbFrame.size.height)) } } + override func viewDidChangeBackingProperties() { + guard let surface = self.surface else { return } + + // Detect our X/Y scale factor so we can update our surface + let fbFrame = self.convertToBacking(self.frame) + let xScale = fbFrame.size.width / self.frame.size.width + let yScale = fbFrame.size.height / self.frame.size.height + ghostty_surface_set_content_scale(surface, xScale, yScale) + + // When our scale factor changes, so does our fb size so we send that too + ghostty_surface_set_size(surface, UInt32(fbFrame.size.width), UInt32(fbFrame.size.height)) + } + + override func updateLayer() { + guard let surface = self.surface else { return } + ghostty_surface_refresh(surface); + } + override func mouseDown(with event: NSEvent) { print("Mouse down: \(event)") } override func keyDown(with event: NSEvent) { print("Key down: \(event)") + self.interpretKeyEvents([event]) + } + + override func doCommand(by selector: Selector) { + // This currently just prevents NSBeep from interpretKeyEvents but in the future + // we may want to make some of this work. + + // print("SEL: \(selector)") } } diff --git a/src/App.zig b/src/App.zig index 982deb6b0..71793666c 100644 --- a/src/App.zig +++ b/src/App.zig @@ -397,9 +397,19 @@ pub const CAPI = struct { if (ptr) |v| v.app.closeWindow(v); } + /// Tell the surface that it needs to schedule a render + export fn ghostty_surface_refresh(win: *Window) void { + win.window.refresh(); + } + /// Update the size of a surface. This will trigger resize notifications /// to the pty and the renderer. export fn ghostty_surface_set_size(win: *Window, w: u32, h: u32) void { win.window.updateSize(w, h); } + + /// Update the content scale of the surface. + export fn ghostty_surface_set_content_scale(win: *Window, x: f64, y: f64) void { + win.window.updateContentScale(x, y); + } }; diff --git a/src/apprt/embedded.zig b/src/apprt/embedded.zig index aafc95b4a..d53b4a80d 100644 --- a/src/apprt/embedded.zig +++ b/src/apprt/embedded.zig @@ -49,8 +49,8 @@ pub const App = struct { pub const Window = struct { nsview: objc.Object, - scale_factor: f64, core_win: *CoreWindow, + content_scale: apprt.ContentScale, size: apprt.WindowSize, pub const Options = extern struct { @@ -67,7 +67,10 @@ pub const Window = struct { return .{ .core_win = core_win, .nsview = objc.Object.fromId(opts.nsview), - .scale_factor = opts.scale_factor, + .content_scale = .{ + .x = @floatCast(f32, opts.scale_factor), + .y = @floatCast(f32, opts.scale_factor), + }, .size = .{ .width = 800, .height = 600 }, }; } @@ -77,8 +80,7 @@ pub const Window = struct { } pub fn getContentScale(self: *const Window) !apprt.ContentScale { - _ = self; - return apprt.ContentScale{ .x = 1, .y = 1 }; + return self.content_scale; } pub fn getSize(self: *const Window) !apprt.WindowSize { @@ -115,6 +117,20 @@ pub const Window = struct { return false; } + pub fn refresh(self: *Window) void { + self.core_win.refreshCallback() catch |err| { + log.err("error in refresh callback err={}", .{err}); + return; + }; + } + + pub fn updateContentScale(self: *Window, x: f64, y: f64) void { + self.content_scale = .{ + .x = @floatCast(f32, x), + .y = @floatCast(f32, y), + }; + } + pub fn updateSize(self: *Window, width: u32, height: u32) void { self.size = .{ .width = width, diff --git a/src/renderer/Metal.zig b/src/renderer/Metal.zig index 77c269e48..abd8ad06a 100644 --- a/src/renderer/Metal.zig +++ b/src/renderer/Metal.zig @@ -326,7 +326,7 @@ pub fn finalizeWindowInit(self: *const Metal, win: apprt.runtime.Window) !void { apprt.embedded => .{ .view = win.nsview, - .scaleFactor = win.scale_factor, + .scaleFactor = @floatCast(f64, win.content_scale.x), }, else => @compileError("unsupported apprt for metal"), From 573b163636d5c76ff2592d07bfdff434d2671dd0 Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Fri, 17 Feb 2023 22:12:03 -0800 Subject: [PATCH 41/54] start input, its broken but we're getting there --- include/ghostty.h | 150 ++++++++++++++++++++++++ macos/Sources/TerminalSurfaceView.swift | 7 ++ src/App.zig | 11 ++ src/apprt/embedded.zig | 13 ++ src/input/key.zig | 21 +++- src/termio/Exec.zig | 2 +- 6 files changed, 199 insertions(+), 5 deletions(-) diff --git a/include/ghostty.h b/include/ghostty.h index 5bf1fd588..c7d65e4b0 100644 --- a/include/ghostty.h +++ b/include/ghostty.h @@ -14,8 +14,19 @@ extern "C" { #include +//------------------------------------------------------------------- +// Macros + #define GHOSTTY_SUCCESS 0 +// Masks for input modifiers +#define GHOSTTY_INPUT_SHIFT 1 +#define GHOSTTY_INPUT_CTRL 2 +#define GHOSTTY_INPUT_ALT 4 +#define GHOSTTY_INPUT_SUPER 8 +#define GHOSTTY_INPUT_CAPS 16 +#define GHOSTTY_INPUT_NUM 32 + //------------------------------------------------------------------- // Types @@ -23,15 +34,153 @@ extern "C" { // structs. To find the Zig struct, grep for this type name. The documentation // for all of these types is available in the Zig source. typedef void (*ghostty_runtime_wakeup_cb)(void *); + typedef struct { void *userdata; ghostty_runtime_wakeup_cb wakeup_cb; } ghostty_runtime_config_s; + typedef struct { void *nsview; double scale_factor; } ghostty_surface_config_s; +typedef enum { release, press, repeat } ghostty_input_action_e; +typedef enum { + invalid, + + // a-z + a, + b, + c, + d, + e, + f, + g, + h, + i, + j, + k, + l, + m, + n, + o, + p, + q, + r, + s, + t, + u, + v, + w, + x, + y, + z, + + // numbers + zero, + one, + two, + three, + four, + five, + six, + seven, + eight, + nine, + + // puncuation + semicolon, + space, + apostrophe, + comma, + grave_accent, // ` + period, + slash, + minus, + equal, + left_bracket, // [ + right_bracket, // ] + backslash, // / + + // control + up, + down, + right, + left, + home, + end, + insert, + delete, + caps_lock, + scroll_lock, + num_lock, + page_up, + page_down, + escape, + enter, + tab, + backspace, + print_screen, + pause, + + // function keys + f1, + f2, + f3, + f4, + f5, + f6, + f7, + f8, + f9, + f10, + f11, + f12, + f13, + f14, + f15, + f16, + f17, + f18, + f19, + f20, + f21, + f22, + f23, + f24, + f25, + + // keypad + kp_0, + kp_1, + kp_2, + kp_3, + kp_4, + kp_5, + kp_6, + kp_7, + kp_8, + kp_9, + kp_decimal, + kp_divide, + kp_multiply, + kp_subtract, + kp_add, + kp_enter, + kp_equal, + + // modifiers + left_shift, + left_control, + left_alt, + left_super, + right_shift, + right_control, + right_alt, + right_super, +} ghostty_input_key_e; + // Opaque types typedef void *ghostty_app_t; typedef void *ghostty_config_t; @@ -56,6 +205,7 @@ void ghostty_surface_free(ghostty_surface_t); void ghostty_surface_refresh(ghostty_surface_t); void ghostty_surface_set_content_scale(ghostty_surface_t, double, double); void ghostty_surface_set_size(ghostty_surface_t, uint32_t, uint32_t); +void ghostty_surface_key(ghostty_surface_t, ghostty_input_action_e, ghostty_input_key_e, uint8_t); #ifdef __cplusplus } diff --git a/macos/Sources/TerminalSurfaceView.swift b/macos/Sources/TerminalSurfaceView.swift index 822c2beff..f8c51a860 100644 --- a/macos/Sources/TerminalSurfaceView.swift +++ b/macos/Sources/TerminalSurfaceView.swift @@ -96,6 +96,13 @@ class TerminalSurfaceView_Real: NSView, ObservableObject { override func keyDown(with event: NSEvent) { print("Key down: \(event)") + + if let surface = self.surface { + if (event.keyCode == 36) { + ghostty_surface_key(surface, press, enter, 0) + } + } + self.interpretKeyEvents([event]) } diff --git a/src/App.zig b/src/App.zig index 71793666c..e28f3b76e 100644 --- a/src/App.zig +++ b/src/App.zig @@ -11,6 +11,7 @@ const build_config = @import("build_config.zig"); const apprt = @import("apprt.zig"); const Window = @import("Window.zig"); const tracy = @import("tracy"); +const input = @import("input.zig"); const Config = @import("config.zig").Config; const BlockingQueue = @import("./blocking_queue.zig").BlockingQueue; const renderer = @import("renderer.zig"); @@ -412,4 +413,14 @@ pub const CAPI = struct { export fn ghostty_surface_set_content_scale(win: *Window, x: f64, y: f64) void { win.window.updateContentScale(x, y); } + + /// Tell the surface that it needs to schedule a render + export fn ghostty_surface_key( + win: *Window, + action: input.Action, + key: input.Key, + mods: input.Mods, + ) void { + win.window.keyCallback(action, key, mods); + } }; diff --git a/src/apprt/embedded.zig b/src/apprt/embedded.zig index d53b4a80d..0cb101b0e 100644 --- a/src/apprt/embedded.zig +++ b/src/apprt/embedded.zig @@ -10,6 +10,7 @@ const assert = std.debug.assert; const Allocator = std.mem.Allocator; const objc = @import("objc"); const apprt = @import("../apprt.zig"); +const input = @import("../input.zig"); const CoreApp = @import("../App.zig"); const CoreWindow = @import("../Window.zig"); @@ -143,4 +144,16 @@ pub const Window = struct { return; }; } + + pub fn keyCallback( + self: *const Window, + action: input.Action, + key: input.Key, + mods: input.Mods, + ) void { + self.core_win.keyCallback(action, key, mods) catch |err| { + log.err("error in key callback err={}", .{err}); + return; + }; + } }; diff --git a/src/input/key.zig b/src/input/key.zig index 78b5175da..6892fc72a 100644 --- a/src/input/key.zig +++ b/src/input/key.zig @@ -3,7 +3,7 @@ const Allocator = std.mem.Allocator; /// A bitmask for all key modifiers. This is taken directly from the /// GLFW representation, but we use this generically. -pub const Mods = packed struct { +pub const Mods = packed struct(u8) { shift: bool = false, ctrl: bool = false, alt: bool = false, @@ -11,10 +11,21 @@ pub const Mods = packed struct { caps_lock: bool = false, num_lock: bool = false, _padding: u2 = 0, + + // For our own understanding + test { + const testing = std.testing; + try testing.expectEqual(@bitCast(u8, Mods{}), @as(u8, 0b0)); + try testing.expectEqual( + @bitCast(u8, Mods{ .shift = true }), + @as(u8, 0b0000_0001), + ); + } }; -/// The action associated with an input event. -pub const Action = enum { +/// The action associated with an input event. This is backed by a c_int +/// so that we can use the enum as-is for our embedding API. +pub const Action = enum(c_int) { release, press, repeat, @@ -25,7 +36,9 @@ pub const Action = enum { /// this only needs to accomodate what maps to a key. If a key is not bound /// to anything and the key can be mapped to a printable character, then that /// unicode character is sent directly to the pty. -pub const Key = enum { +/// +/// This is backed by a c_int so we can use this as-is for our embedding API. +pub const Key = enum(c_int) { invalid, // a-z diff --git a/src/termio/Exec.zig b/src/termio/Exec.zig index c6e382750..d4fc39abb 100644 --- a/src/termio/Exec.zig +++ b/src/termio/Exec.zig @@ -529,7 +529,7 @@ const ReadThread = struct { return; }; - // log.info("DATA: {d}", .{n}); + log.info("DATA: {d}", .{n}); @call(.always_inline, process, .{ ev, buf[0..n] }); } } From 7fc9d1bf528131e524df6089eaf24a2834ac1c54 Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Sat, 18 Feb 2023 09:46:49 -0800 Subject: [PATCH 42/54] termio: remove xcode-injected env vars --- src/termio/Exec.zig | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/src/termio/Exec.zig b/src/termio/Exec.zig index d4fc39abb..01e0d300a 100644 --- a/src/termio/Exec.zig +++ b/src/termio/Exec.zig @@ -3,6 +3,7 @@ pub const Exec = @This(); const std = @import("std"); const builtin = @import("builtin"); +const build_config = @import("../build_config.zig"); const assert = std.debug.assert; const Allocator = std.mem.Allocator; const termio = @import("../termio.zig"); @@ -361,6 +362,21 @@ const Subprocess = struct { try env.put("TERM", "xterm-256color"); try env.put("COLORTERM", "truecolor"); + // When embedding in macOS and running via XCode, XCode injects + // a bunch of things that break our shell process. We remove those. + if (comptime builtin.target.isDarwin() and build_config.artifact == .lib) { + if (env.get("__XCODE_BUILT_PRODUCTS_DIR_PATHS") != null) { + env.remove("__XCODE_BUILT_PRODUCTS_DIR_PATHS"); + env.remove("__XPC_DYLD_LIBRARY_PATH"); + env.remove("DYLD_FRAMEWORK_PATH"); + env.remove("DYLD_INSERT_LIBRARIES"); + env.remove("DYLD_LIBRARY_PATH"); + env.remove("LD_LIBRARY_PATH"); + env.remove("SECURITYSESSIONID"); + env.remove("XPC_SERVICE_NAME"); + } + } + return .{ .env = env, .cwd = opts.config.@"working-directory", @@ -529,7 +545,7 @@ const ReadThread = struct { return; }; - log.info("DATA: {d}", .{n}); + // log.info("DATA: {d}", .{n}); @call(.always_inline, process, .{ ev, buf[0..n] }); } } From 4b44b2bc95ae94088f3e891f19b517a83e0d52eb Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Sat, 18 Feb 2023 09:59:45 -0800 Subject: [PATCH 43/54] c: fix enums for input --- include/ghostty.h | 262 ++++++++++++------------ macos/Sources/TerminalSurfaceView.swift | 2 +- src/App.zig | 8 +- src/input/key.zig | 6 + 4 files changed, 147 insertions(+), 131 deletions(-) diff --git a/include/ghostty.h b/include/ghostty.h index c7d65e4b0..95b1cd3cc 100644 --- a/include/ghostty.h +++ b/include/ghostty.h @@ -19,14 +19,6 @@ extern "C" { #define GHOSTTY_SUCCESS 0 -// Masks for input modifiers -#define GHOSTTY_INPUT_SHIFT 1 -#define GHOSTTY_INPUT_CTRL 2 -#define GHOSTTY_INPUT_ALT 4 -#define GHOSTTY_INPUT_SUPER 8 -#define GHOSTTY_INPUT_CAPS 16 -#define GHOSTTY_INPUT_NUM 32 - //------------------------------------------------------------------- // Types @@ -45,140 +37,154 @@ typedef struct { double scale_factor; } ghostty_surface_config_s; -typedef enum { release, press, repeat } ghostty_input_action_e; typedef enum { - invalid, + GHOSTTY_MODS_NONE = 0, + GHOSTTY_MODS_CTRL = 1 << 1, + GHOSTTY_MODS_ALT = 1 << 2, + GHOSTTY_MODS_SUPER = 1 << 3, + GHOSTTY_MODS_CAPS = 1 << 4, + GHOSTTY_MODS_NUM = 1 << 5, +} ghostty_input_mods_e; + +typedef enum { + GHOSTTY_ACTION_RELEASE, + GHOSTTY_ACTION_PRESS, + GHOSTTY_ACTION_REPEAT, +} ghostty_input_action_e; + +typedef enum { + GHOSTTY_KEY_INVALID, // a-z - a, - b, - c, - d, - e, - f, - g, - h, - i, - j, - k, - l, - m, - n, - o, - p, - q, - r, - s, - t, - u, - v, - w, - x, - y, - z, + GHOSTTY_KEY_A, + GHOSTTY_KEY_B, + GHOSTTY_KEY_C, + GHOSTTY_KEY_D, + GHOSTTY_KEY_E, + GHOSTTY_KEY_F, + GHOSTTY_KEY_G, + GHOSTTY_KEY_H, + GHOSTTY_KEY_I, + GHOSTTY_KEY_J, + GHOSTTY_KEY_K, + GHOSTTY_KEY_L, + GHOSTTY_KEY_M, + GHOSTTY_KEY_N, + GHOSTTY_KEY_O, + GHOSTTY_KEY_P, + GHOSTTY_KEY_Q, + GHOSTTY_KEY_R, + GHOSTTY_KEY_S, + GHOSTTY_KEY_T, + GHOSTTY_KEY_U, + GHOSTTY_KEY_V, + GHOSTTY_KEY_W, + GHOSTTY_KEY_X, + GHOSTTY_KEY_Y, + GHOSTTY_KEY_Z, // numbers - zero, - one, - two, - three, - four, - five, - six, - seven, - eight, - nine, + GHOSTTY_KEY_ZERO, + GHOSTTY_KEY_ONE, + GHOSTTY_KEY_TWO, + GHOSTTY_KEY_THREE, + GHOSTTY_KEY_FOUR, + GHOSTTY_KEY_FIVE, + GHOSTTY_KEY_SIX, + GHOSTTY_KEY_SEVEN, + GHOSTTY_KEY_EIGHT, + GHOSTTY_KEY_NINE, // puncuation - semicolon, - space, - apostrophe, - comma, - grave_accent, // ` - period, - slash, - minus, - equal, - left_bracket, // [ - right_bracket, // ] - backslash, // / + GHOSTTY_KEY_SEMICOLON, + GHOSTTY_KEY_SPACE, + GHOSTTY_KEY_APOSTROPHE, + GHOSTTY_KEY_COMMA, + GHOSTTY_KEY_GRAVE_ACCENT, // ` + GHOSTTY_KEY_PERIOD, + GHOSTTY_KEY_SLASH, + GHOSTTY_KEY_MINUS, + GHOSTTY_KEY_EQUAL, + GHOSTTY_KEY_LEFT_BRACKET, // [ + GHOSTTY_KEY_RIGHT_BRACKET, // ] + GHOSTTY_KEY_BACKSLASH, // / // control - up, - down, - right, - left, - home, - end, - insert, - delete, - caps_lock, - scroll_lock, - num_lock, - page_up, - page_down, - escape, - enter, - tab, - backspace, - print_screen, - pause, + GHOSTTY_KEY_UP, + GHOSTTY_KEY_DOWN, + GHOSTTY_KEY_RIGHT, + GHOSTTY_KEY_LEFT, + GHOSTTY_KEY_HOME, + GHOSTTY_KEY_END, + GHOSTTY_KEY_INSERT, + GHOSTTY_KEY_DELETE, + GHOSTTY_KEY_CAPS_LOCK, + GHOSTTY_KEY_SCROLL_LOCK, + GHOSTTY_KEY_NUM_LOCK, + GHOSTTY_KEY_PAGE_UP, + GHOSTTY_KEY_PAGE_DOWN, + GHOSTTY_KEY_ESCAPE, + GHOSTTY_KEY_ENTER, + GHOSTTY_KEY_TAB, + GHOSTTY_KEY_BACKSPACE, + GHOSTTY_KEY_PRINT_SCREEN, + GHOSTTY_KEY_PAUSE, // function keys - f1, - f2, - f3, - f4, - f5, - f6, - f7, - f8, - f9, - f10, - f11, - f12, - f13, - f14, - f15, - f16, - f17, - f18, - f19, - f20, - f21, - f22, - f23, - f24, - f25, + GHOSTTY_KEY_F1, + GHOSTTY_KEY_F2, + GHOSTTY_KEY_F3, + GHOSTTY_KEY_F4, + GHOSTTY_KEY_F5, + GHOSTTY_KEY_F6, + GHOSTTY_KEY_F7, + GHOSTTY_KEY_F8, + GHOSTTY_KEY_F9, + GHOSTTY_KEY_F10, + GHOSTTY_KEY_F11, + GHOSTTY_KEY_F12, + GHOSTTY_KEY_F13, + GHOSTTY_KEY_F14, + GHOSTTY_KEY_F15, + GHOSTTY_KEY_F16, + GHOSTTY_KEY_F17, + GHOSTTY_KEY_F18, + GHOSTTY_KEY_F19, + GHOSTTY_KEY_F20, + GHOSTTY_KEY_F21, + GHOSTTY_KEY_F22, + GHOSTTY_KEY_F23, + GHOSTTY_KEY_F24, + GHOSTTY_KEY_F25, // keypad - kp_0, - kp_1, - kp_2, - kp_3, - kp_4, - kp_5, - kp_6, - kp_7, - kp_8, - kp_9, - kp_decimal, - kp_divide, - kp_multiply, - kp_subtract, - kp_add, - kp_enter, - kp_equal, + GHOSTTY_KEY_KP_0, + GHOSTTY_KEY_KP_1, + GHOSTTY_KEY_KP_2, + GHOSTTY_KEY_KP_3, + GHOSTTY_KEY_KP_4, + GHOSTTY_KEY_KP_5, + GHOSTTY_KEY_KP_6, + GHOSTTY_KEY_KP_7, + GHOSTTY_KEY_KP_8, + GHOSTTY_KEY_KP_9, + GHOSTTY_KEY_KP_DECIMAL, + GHOSTTY_KEY_KP_DIVIDE, + GHOSTTY_KEY_KP_MULTIPLY, + GHOSTTY_KEY_KP_SUBTRACT, + GHOSTTY_KEY_KP_ADD, + GHOSTTY_KEY_KP_ENTER, + GHOSTTY_KEY_KP_EQUAL, // modifiers - left_shift, - left_control, - left_alt, - left_super, - right_shift, - right_control, - right_alt, - right_super, + GHOSTTY_KEY_LEFT_SHIFT, + GHOSTTY_KEY_LEFT_CONTROL, + GHOSTTY_KEY_LEFT_ALT, + GHOSTTY_KEY_LEFT_SUPER, + GHOSTTY_KEY_RIGHT_SHIFT, + GHOSTTY_KEY_RIGHT_CONTROL, + GHOSTTY_KEY_RIGHT_ALT, + GHOSTTY_KEY_RIGHT_SUPER, } ghostty_input_key_e; // Opaque types @@ -205,7 +211,7 @@ void ghostty_surface_free(ghostty_surface_t); void ghostty_surface_refresh(ghostty_surface_t); void ghostty_surface_set_content_scale(ghostty_surface_t, double, double); void ghostty_surface_set_size(ghostty_surface_t, uint32_t, uint32_t); -void ghostty_surface_key(ghostty_surface_t, ghostty_input_action_e, ghostty_input_key_e, uint8_t); +void ghostty_surface_key(ghostty_surface_t, ghostty_input_action_e, ghostty_input_key_e, ghostty_input_mods_e); #ifdef __cplusplus } diff --git a/macos/Sources/TerminalSurfaceView.swift b/macos/Sources/TerminalSurfaceView.swift index f8c51a860..d68781211 100644 --- a/macos/Sources/TerminalSurfaceView.swift +++ b/macos/Sources/TerminalSurfaceView.swift @@ -99,7 +99,7 @@ class TerminalSurfaceView_Real: NSView, ObservableObject { if let surface = self.surface { if (event.keyCode == 36) { - ghostty_surface_key(surface, press, enter, 0) + ghostty_surface_key(surface, GHOSTTY_ACTION_PRESS, GHOSTTY_KEY_ENTER, GHOSTTY_MODS_NONE) } } diff --git a/src/App.zig b/src/App.zig index e28f3b76e..129214fa3 100644 --- a/src/App.zig +++ b/src/App.zig @@ -419,8 +419,12 @@ pub const CAPI = struct { win: *Window, action: input.Action, key: input.Key, - mods: input.Mods, + mods: c_int, ) void { - win.window.keyCallback(action, key, mods); + win.window.keyCallback( + action, + key, + @bitCast(input.Mods, @truncate(u8, @bitCast(c_uint, mods))), + ); } }; diff --git a/src/input/key.zig b/src/input/key.zig index 6892fc72a..cf0cb4bca 100644 --- a/src/input/key.zig +++ b/src/input/key.zig @@ -3,6 +3,8 @@ const Allocator = std.mem.Allocator; /// A bitmask for all key modifiers. This is taken directly from the /// GLFW representation, but we use this generically. +/// +/// IMPORTANT: Any changes here update include/ghostty.h pub const Mods = packed struct(u8) { shift: bool = false, ctrl: bool = false, @@ -25,6 +27,8 @@ pub const Mods = packed struct(u8) { /// The action associated with an input event. This is backed by a c_int /// so that we can use the enum as-is for our embedding API. +/// +/// IMPORTANT: Any changes here update include/ghostty.h pub const Action = enum(c_int) { release, press, @@ -38,6 +42,8 @@ pub const Action = enum(c_int) { /// unicode character is sent directly to the pty. /// /// This is backed by a c_int so we can use this as-is for our embedding API. +/// +/// IMPORTANT: Any changes here update include/ghostty.h pub const Key = enum(c_int) { invalid, From 7a368da0991ea47b75232af3e0b51651996e91b5 Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Sat, 18 Feb 2023 11:08:54 -0800 Subject: [PATCH 44/54] macos: hook up text input --- include/ghostty.h | 2 + macos/Sources/TerminalSurfaceView.swift | 223 +++++++++++++++++++++++- src/App.zig | 5 + src/apprt/embedded.zig | 9 + 4 files changed, 230 insertions(+), 9 deletions(-) diff --git a/include/ghostty.h b/include/ghostty.h index 95b1cd3cc..097e8ea18 100644 --- a/include/ghostty.h +++ b/include/ghostty.h @@ -39,6 +39,7 @@ typedef struct { typedef enum { GHOSTTY_MODS_NONE = 0, + GHOSTTY_MODS_SHIFT = 1 << 0, GHOSTTY_MODS_CTRL = 1 << 1, GHOSTTY_MODS_ALT = 1 << 2, GHOSTTY_MODS_SUPER = 1 << 3, @@ -212,6 +213,7 @@ void ghostty_surface_refresh(ghostty_surface_t); void ghostty_surface_set_content_scale(ghostty_surface_t, double, double); void ghostty_surface_set_size(ghostty_surface_t, uint32_t, uint32_t); void ghostty_surface_key(ghostty_surface_t, ghostty_input_action_e, ghostty_input_key_e, ghostty_input_mods_e); +void ghostty_surface_char(ghostty_surface_t, uint32_t); #ifdef __cplusplus } diff --git a/macos/Sources/TerminalSurfaceView.swift b/macos/Sources/TerminalSurfaceView.swift index d68781211..0987c48a0 100644 --- a/macos/Sources/TerminalSurfaceView.swift +++ b/macos/Sources/TerminalSurfaceView.swift @@ -29,7 +29,7 @@ struct TerminalSurfaceView: NSViewRepresentable { } // The actual NSView implementation for the terminal surface. -class TerminalSurfaceView_Real: NSView, ObservableObject { +class TerminalSurfaceView_Real: NSView, NSTextInputClient, ObservableObject { // We need to support being a first responder so that we can get input events override var acceptsFirstResponder: Bool { return true } @@ -39,8 +39,128 @@ class TerminalSurfaceView_Real: NSView, ObservableObject { private var surface: ghostty_surface_t? = nil private var error: Error? = nil + private var markedText: NSMutableAttributedString; + + // Mapping of event keyCode to ghostty input key values. This is cribbed from + // glfw mostly since we started as a glfw-based app way back in the day! + static let keycodes: [UInt16 : ghostty_input_key_e] = [ + 0x1D: GHOSTTY_KEY_ZERO, + 0x12: GHOSTTY_KEY_ONE, + 0x13: GHOSTTY_KEY_TWO, + 0x14: GHOSTTY_KEY_THREE, + 0x15: GHOSTTY_KEY_FOUR, + 0x17: GHOSTTY_KEY_FIVE, + 0x16: GHOSTTY_KEY_SIX, + 0x1A: GHOSTTY_KEY_SEVEN, + 0x1C: GHOSTTY_KEY_EIGHT, + 0x19: GHOSTTY_KEY_NINE, + 0x00: GHOSTTY_KEY_A, + 0x0B: GHOSTTY_KEY_B, + 0x08: GHOSTTY_KEY_C, + 0x02: GHOSTTY_KEY_D, + 0x0E: GHOSTTY_KEY_E, + 0x03: GHOSTTY_KEY_F, + 0x05: GHOSTTY_KEY_G, + 0x04: GHOSTTY_KEY_H, + 0x22: GHOSTTY_KEY_I, + 0x26: GHOSTTY_KEY_J, + 0x28: GHOSTTY_KEY_K, + 0x25: GHOSTTY_KEY_L, + 0x2E: GHOSTTY_KEY_M, + 0x2D: GHOSTTY_KEY_N, + 0x1F: GHOSTTY_KEY_O, + 0x23: GHOSTTY_KEY_P, + 0x0C: GHOSTTY_KEY_Q, + 0x0F: GHOSTTY_KEY_R, + 0x01: GHOSTTY_KEY_S, + 0x11: GHOSTTY_KEY_T, + 0x20: GHOSTTY_KEY_U, + 0x09: GHOSTTY_KEY_V, + 0x0D: GHOSTTY_KEY_W, + 0x07: GHOSTTY_KEY_X, + 0x10: GHOSTTY_KEY_Y, + 0x06: GHOSTTY_KEY_Z, + + 0x27: GHOSTTY_KEY_APOSTROPHE, + 0x2A: GHOSTTY_KEY_BACKSLASH, + 0x2B: GHOSTTY_KEY_COMMA, + 0x18: GHOSTTY_KEY_EQUAL, + 0x32: GHOSTTY_KEY_GRAVE_ACCENT, + 0x21: GHOSTTY_KEY_LEFT_BRACKET, + 0x1B: GHOSTTY_KEY_MINUS, + 0x2F: GHOSTTY_KEY_PERIOD, + 0x1E: GHOSTTY_KEY_RIGHT_BRACKET, + 0x29: GHOSTTY_KEY_SEMICOLON, + 0x2C: GHOSTTY_KEY_SLASH, + + 0x33: GHOSTTY_KEY_BACKSPACE, + 0x39: GHOSTTY_KEY_CAPS_LOCK, + 0x75: GHOSTTY_KEY_DELETE, + 0x7D: GHOSTTY_KEY_DOWN, + 0x77: GHOSTTY_KEY_END, + 0x24: GHOSTTY_KEY_ENTER, + 0x35: GHOSTTY_KEY_ESCAPE, + 0x7A: GHOSTTY_KEY_F1, + 0x78: GHOSTTY_KEY_F2, + 0x63: GHOSTTY_KEY_F3, + 0x76: GHOSTTY_KEY_F4, + 0x60: GHOSTTY_KEY_F5, + 0x61: GHOSTTY_KEY_F6, + 0x62: GHOSTTY_KEY_F7, + 0x64: GHOSTTY_KEY_F8, + 0x65: GHOSTTY_KEY_F9, + 0x6D: GHOSTTY_KEY_F10, + 0x67: GHOSTTY_KEY_F11, + 0x6F: GHOSTTY_KEY_F12, + 0x69: GHOSTTY_KEY_PRINT_SCREEN, + 0x6B: GHOSTTY_KEY_F14, + 0x71: GHOSTTY_KEY_F15, + 0x6A: GHOSTTY_KEY_F16, + 0x40: GHOSTTY_KEY_F17, + 0x4F: GHOSTTY_KEY_F18, + 0x50: GHOSTTY_KEY_F19, + 0x5A: GHOSTTY_KEY_F20, + 0x73: GHOSTTY_KEY_HOME, + 0x72: GHOSTTY_KEY_INSERT, + 0x7B: GHOSTTY_KEY_LEFT, + 0x3A: GHOSTTY_KEY_LEFT_ALT, + 0x3B: GHOSTTY_KEY_LEFT_CONTROL, + 0x38: GHOSTTY_KEY_LEFT_SHIFT, + 0x37: GHOSTTY_KEY_LEFT_SUPER, + 0x47: GHOSTTY_KEY_NUM_LOCK, + 0x79: GHOSTTY_KEY_PAGE_DOWN, + 0x74: GHOSTTY_KEY_PAGE_UP, + 0x7C: GHOSTTY_KEY_RIGHT, + 0x3D: GHOSTTY_KEY_RIGHT_ALT, + 0x3E: GHOSTTY_KEY_RIGHT_CONTROL, + 0x3C: GHOSTTY_KEY_RIGHT_SHIFT, + 0x36: GHOSTTY_KEY_RIGHT_SUPER, + 0x31: GHOSTTY_KEY_SPACE, + 0x30: GHOSTTY_KEY_TAB, + 0x7E: GHOSTTY_KEY_UP, + + 0x52: GHOSTTY_KEY_KP_0, + 0x53: GHOSTTY_KEY_KP_1, + 0x54: GHOSTTY_KEY_KP_2, + 0x55: GHOSTTY_KEY_KP_3, + 0x56: GHOSTTY_KEY_KP_4, + 0x57: GHOSTTY_KEY_KP_5, + 0x58: GHOSTTY_KEY_KP_6, + 0x59: GHOSTTY_KEY_KP_7, + 0x5B: GHOSTTY_KEY_KP_8, + 0x5C: GHOSTTY_KEY_KP_9, + 0x45: GHOSTTY_KEY_KP_ADD, + 0x41: GHOSTTY_KEY_KP_DECIMAL, + 0x4B: GHOSTTY_KEY_KP_DIVIDE, + 0x4C: GHOSTTY_KEY_KP_ENTER, + 0x51: GHOSTTY_KEY_KP_EQUAL, + 0x43: GHOSTTY_KEY_KP_MULTIPLY, + 0x4E: GHOSTTY_KEY_KP_SUBTRACT, + ]; init(_ app: ghostty_app_t) { + self.markedText = NSMutableAttributedString() + // Initialize with some default frame size. The important thing is that this // is non-zero so that our layer bounds are non-zero so that our renderer // can do SOMETHING. @@ -95,22 +215,107 @@ class TerminalSurfaceView_Real: NSView, ObservableObject { } override func keyDown(with event: NSEvent) { - print("Key down: \(event)") - - if let surface = self.surface { - if (event.keyCode == 36) { - ghostty_surface_key(surface, GHOSTTY_ACTION_PRESS, GHOSTTY_KEY_ENTER, GHOSTTY_MODS_NONE) - } - } + guard let surface = self.surface else { return } + let key = Self.keycodes[event.keyCode] ?? GHOSTTY_KEY_INVALID + let mods = Self.translateFlags(event.modifierFlags) + let action = event.isARepeat ? GHOSTTY_ACTION_REPEAT : GHOSTTY_ACTION_PRESS + ghostty_surface_key(surface, action, key, mods) self.interpretKeyEvents([event]) } + override func keyUp(with event: NSEvent) { + guard let surface = self.surface else { return } + let key = Self.keycodes[event.keyCode] ?? GHOSTTY_KEY_INVALID + let mods = Self.translateFlags(event.modifierFlags) + ghostty_surface_key(surface, GHOSTTY_ACTION_RELEASE, key, mods) + } + + // MARK: NSTextInputClient + + func hasMarkedText() -> Bool { + return markedText.length > 0 + } + + func markedRange() -> NSRange { + guard markedText.length > 0 else { return NSRange() } + return NSRange(0...(markedText.length-1)) + } + + func selectedRange() -> NSRange { + return NSRange() + } + + func setMarkedText(_ string: Any, selectedRange: NSRange, replacementRange: NSRange) { + switch string { + case let v as NSAttributedString: + self.markedText = NSMutableAttributedString(attributedString: v) + + case let v as String: + self.markedText = NSMutableAttributedString(string: v) + + default: + print("unknown marked text: \(string)") + } + } + + func unmarkText() { + self.markedText.mutableString.setString("") + } + + func validAttributesForMarkedText() -> [NSAttributedString.Key] { + return [] + } + + func attributedSubstring(forProposedRange range: NSRange, actualRange: NSRangePointer?) -> NSAttributedString? { + return nil + } + + func characterIndex(for point: NSPoint) -> Int { + return 0 + } + + func firstRect(forCharacterRange range: NSRange, actualRange: NSRangePointer?) -> NSRect { + return NSMakeRect(frame.origin.x, frame.origin.y, 0, 0) + } + + func insertText(_ string: Any, replacementRange: NSRange) { + // We must have an associated event + guard NSApp.currentEvent != nil else { return } + guard let surface = self.surface else { return } + + // We want the string view of the any value + var chars = "" + switch (string) { + case let v as NSAttributedString: + chars = v.string + case let v as String: + chars = v + default: + return + } + + for codepoint in chars.unicodeScalars { + ghostty_surface_char(surface, codepoint.value) + } + } + override func doCommand(by selector: Selector) { // This currently just prevents NSBeep from interpretKeyEvents but in the future // we may want to make some of this work. - // print("SEL: \(selector)") + print("SEL: \(selector)") + } + + private static func translateFlags(_ flags: NSEvent.ModifierFlags) -> ghostty_input_mods_e { + var mods: UInt32 = GHOSTTY_MODS_NONE.rawValue + if (flags.contains(.shift)) { mods |= GHOSTTY_MODS_SHIFT.rawValue } + if (flags.contains(.control)) { mods |= GHOSTTY_MODS_CTRL.rawValue } + if (flags.contains(.option)) { mods |= GHOSTTY_MODS_ALT.rawValue } + if (flags.contains(.command)) { mods |= GHOSTTY_MODS_SUPER.rawValue } + if (flags.contains(.capsLock)) { mods |= GHOSTTY_MODS_CAPS.rawValue } + + return ghostty_input_mods_e(mods) } } diff --git a/src/App.zig b/src/App.zig index 129214fa3..3a6e50971 100644 --- a/src/App.zig +++ b/src/App.zig @@ -427,4 +427,9 @@ pub const CAPI = struct { @bitCast(input.Mods, @truncate(u8, @bitCast(c_uint, mods))), ); } + + /// Tell the surface that it needs to schedule a render + export fn ghostty_surface_char(win: *Window, codepoint: u32) void { + win.window.charCallback(codepoint); + } }; diff --git a/src/apprt/embedded.zig b/src/apprt/embedded.zig index 0cb101b0e..8bb820cd9 100644 --- a/src/apprt/embedded.zig +++ b/src/apprt/embedded.zig @@ -151,9 +151,18 @@ pub const Window = struct { key: input.Key, mods: input.Mods, ) void { + // log.warn("key action={} key={} mods={}", .{ action, key, mods }); self.core_win.keyCallback(action, key, mods) catch |err| { log.err("error in key callback err={}", .{err}); return; }; } + + pub fn charCallback(self: *const Window, cp_: u32) void { + const cp = std.math.cast(u21, cp_) orelse return; + self.core_win.charCallback(cp) catch |err| { + log.err("error in char callback err={}", .{err}); + return; + }; + } }; From 7af516e7e61ce614cb8248b72ac2cce558933312 Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Sat, 18 Feb 2023 15:18:44 -0800 Subject: [PATCH 45/54] embedded wakeup calls callback --- macos/Sources/GhosttyApp.swift | 25 ++++++++++++++++++------- src/apprt/embedded.zig | 8 +++++--- 2 files changed, 23 insertions(+), 10 deletions(-) diff --git a/macos/Sources/GhosttyApp.swift b/macos/Sources/GhosttyApp.swift index 2654ac5b3..a7dc3ed04 100644 --- a/macos/Sources/GhosttyApp.swift +++ b/macos/Sources/GhosttyApp.swift @@ -40,7 +40,7 @@ class GhosttyState: ObservableObject { /// The ghostty app instance. We only have one of these for the entire app, although I guess /// in theory you can have multiple... I don't know why you would... var app: ghostty_app_t? = nil - + init() { // Initialize ghostty global state. This happens once per process. guard ghostty_init() == GHOSTTY_SUCCESS else { @@ -67,9 +67,9 @@ class GhosttyState: ObservableObject { // Create our "runtime" config. The "runtime" is the configuration that ghostty // uses to interface with the application runtime environment. var runtime_cfg = ghostty_runtime_config_s( - userdata: nil, - wakeup_cb: { userdata in GhosttyState.wakeup() }) - + userdata: Unmanaged.passUnretained(self).toOpaque(), + wakeup_cb: { userdata in GhosttyState.wakeup(userdata) }) + // Create the ghostty app. guard let app = ghostty_app_new(&runtime_cfg, cfg) else { GhosttyApp.logger.critical("ghostty_app_new failed") @@ -77,12 +77,23 @@ class GhosttyState: ObservableObject { return } self.app = app - + self.readiness = .ready } - static func wakeup() { - // TODO + func appTick() { + guard let app = self.app else { return } + ghostty_app_tick(app) + } + + static func wakeup(_ userdata: UnsafeMutableRawPointer?) { + let state = Unmanaged.fromOpaque(userdata!).takeUnretainedValue() + + // Wakeup can be called from any thread so we schedule the app tick + // from the main thread. There is probably some improvements we can make + // to coalesce multiple ticks but I don't think it matters from a performance + // standpoint since we don't do this much. + DispatchQueue.main.async { state.appTick() } } deinit { diff --git a/src/apprt/embedded.zig b/src/apprt/embedded.zig index 8bb820cd9..aff88477e 100644 --- a/src/apprt/embedded.zig +++ b/src/apprt/embedded.zig @@ -31,8 +31,10 @@ pub const App = struct { wakeup: *const fn (?*anyopaque) callconv(.C) void, }; - pub fn init(_: Options) !App { - return .{}; + opts: Options, + + pub fn init(opts: Options) !App { + return .{ .opts = opts }; } pub fn terminate(self: App) void { @@ -40,7 +42,7 @@ pub const App = struct { } pub fn wakeup(self: App) !void { - _ = self; + self.opts.wakeup(self.opts.userdata); } pub fn wait(self: App) !void { From 78754ff3ac0ae179732af37e1f30d931400272ab Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Sat, 18 Feb 2023 15:21:44 -0800 Subject: [PATCH 46/54] macos: clean up surface on close --- macos/Sources/TerminalSurfaceView.swift | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/macos/Sources/TerminalSurfaceView.swift b/macos/Sources/TerminalSurfaceView.swift index 0987c48a0..6f54a80f8 100644 --- a/macos/Sources/TerminalSurfaceView.swift +++ b/macos/Sources/TerminalSurfaceView.swift @@ -182,6 +182,11 @@ class TerminalSurfaceView_Real: NSView, NSTextInputClient, ObservableObject { fatalError("init(coder:) is not supported for this view") } + deinit { + guard let surface = self.surface else { return } + ghostty_surface_free(surface) + } + override func resize(withOldSuperviewSize oldSize: NSSize) { super.resize(withOldSuperviewSize: oldSize) From 6b450f7c7d597dac5debe33452a6e83fac830aaa Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Sat, 18 Feb 2023 16:51:36 -0800 Subject: [PATCH 47/54] macos: track surface focus state --- include/ghostty.h | 1 + macos/Ghostty.xcodeproj/project.pbxproj | 10 +++- macos/Sources/GhosttyApp.swift | 3 +- macos/Sources/TerminalSurfaceView.swift | 11 +++- macos/Sources/TerminalView.swift | 19 ++++++ macos/Sources/WindowTracker.swift | 80 +++++++++++++++++++++++++ src/App.zig | 5 ++ src/apprt/embedded.zig | 7 +++ 8 files changed, 132 insertions(+), 4 deletions(-) create mode 100644 macos/Sources/TerminalView.swift create mode 100644 macos/Sources/WindowTracker.swift diff --git a/include/ghostty.h b/include/ghostty.h index 097e8ea18..4a4d84e7f 100644 --- a/include/ghostty.h +++ b/include/ghostty.h @@ -211,6 +211,7 @@ ghostty_surface_t ghostty_surface_new(ghostty_app_t, ghostty_surface_config_s*); void ghostty_surface_free(ghostty_surface_t); void ghostty_surface_refresh(ghostty_surface_t); void ghostty_surface_set_content_scale(ghostty_surface_t, double, double); +void ghostty_surface_set_focus(ghostty_surface_t, bool); void ghostty_surface_set_size(ghostty_surface_t, uint32_t, uint32_t); void ghostty_surface_key(ghostty_surface_t, ghostty_input_action_e, ghostty_input_key_e, ghostty_input_mods_e); void ghostty_surface_char(ghostty_surface_t, uint32_t); diff --git a/macos/Ghostty.xcodeproj/project.pbxproj b/macos/Ghostty.xcodeproj/project.pbxproj index a0a9e76dd..71f0d767e 100644 --- a/macos/Ghostty.xcodeproj/project.pbxproj +++ b/macos/Ghostty.xcodeproj/project.pbxproj @@ -8,6 +8,8 @@ /* Begin PBXBuildFile section */ A507573E299FF33C009D7DC7 /* TerminalSurfaceView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A507573D299FF33C009D7DC7 /* TerminalSurfaceView.swift */; }; + A518502429A197C700E4CC4F /* TerminalView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A518502329A197C700E4CC4F /* TerminalView.swift */; }; + A518502629A1A45100E4CC4F /* WindowTracker.swift in Sources */ = {isa = PBXBuildFile; fileRef = A518502529A1A45100E4CC4F /* WindowTracker.swift */; }; A535B9DA299C569B0017E2E4 /* ErrorView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A535B9D9299C569B0017E2E4 /* ErrorView.swift */; }; A55685E029A03A9F004303CE /* AppError.swift in Sources */ = {isa = PBXBuildFile; fileRef = A55685DF29A03A9F004303CE /* AppError.swift */; }; A5B30535299BEAAA0047F10C /* GhosttyApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5B30534299BEAAA0047F10C /* GhosttyApp.swift */; }; @@ -17,6 +19,8 @@ /* Begin PBXFileReference section */ A507573D299FF33C009D7DC7 /* TerminalSurfaceView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TerminalSurfaceView.swift; sourceTree = ""; }; + A518502329A197C700E4CC4F /* TerminalView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TerminalView.swift; sourceTree = ""; }; + A518502529A1A45100E4CC4F /* WindowTracker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WindowTracker.swift; sourceTree = ""; }; A535B9D9299C569B0017E2E4 /* ErrorView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ErrorView.swift; sourceTree = ""; }; A55685DF29A03A9F004303CE /* AppError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppError.swift; sourceTree = ""; }; A5B30531299BEAAA0047F10C /* Ghostty.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Ghostty.app; sourceTree = BUILT_PRODUCTS_DIR; }; @@ -44,8 +48,10 @@ A5D495A0299BEC2200DD1313 /* Preview Content */, A5B30534299BEAAA0047F10C /* GhosttyApp.swift */, A535B9D9299C569B0017E2E4 /* ErrorView.swift */, - A507573D299FF33C009D7DC7 /* TerminalSurfaceView.swift */, A55685DF29A03A9F004303CE /* AppError.swift */, + A518502329A197C700E4CC4F /* TerminalView.swift */, + A507573D299FF33C009D7DC7 /* TerminalSurfaceView.swift */, + A518502529A1A45100E4CC4F /* WindowTracker.swift */, ); path = Sources; sourceTree = ""; @@ -153,6 +159,8 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( + A518502629A1A45100E4CC4F /* WindowTracker.swift in Sources */, + A518502429A197C700E4CC4F /* TerminalView.swift in Sources */, A55685E029A03A9F004303CE /* AppError.swift in Sources */, A507573E299FF33C009D7DC7 /* TerminalSurfaceView.swift in Sources */, A535B9DA299C569B0017E2E4 /* ErrorView.swift in Sources */, diff --git a/macos/Sources/GhosttyApp.swift b/macos/Sources/GhosttyApp.swift index a7dc3ed04..b6a7066c9 100644 --- a/macos/Sources/GhosttyApp.swift +++ b/macos/Sources/GhosttyApp.swift @@ -20,7 +20,8 @@ struct GhosttyApp: App { case .error: ErrorView() case .ready: - TerminalSurfaceView(app: ghostty.app!) + TerminalView(app: ghostty.app!) + .modifier(WindowObservationModifier()) } } } diff --git a/macos/Sources/TerminalSurfaceView.swift b/macos/Sources/TerminalSurfaceView.swift index 6f54a80f8..cd4659f6f 100644 --- a/macos/Sources/TerminalSurfaceView.swift +++ b/macos/Sources/TerminalSurfaceView.swift @@ -10,10 +10,12 @@ import GhosttyKit /// since that is what the Metal renderer in Ghostty expects. In the future, it may make more sense to /// wrap an MTKView and use that, but for legacy reasons we didn't do that to begin with. struct TerminalSurfaceView: NSViewRepresentable { + var hasFocus: Bool @StateObject private var state: TerminalSurfaceView_Real - init(app: ghostty_app_t) { + init(app: ghostty_app_t, hasFocus: Bool) { self._state = StateObject(wrappedValue: TerminalSurfaceView_Real(app)) + self.hasFocus = hasFocus } func makeNSView(context: Context) -> TerminalSurfaceView_Real { @@ -24,7 +26,7 @@ struct TerminalSurfaceView: NSViewRepresentable { } func updateNSView(_ view: TerminalSurfaceView_Real, context: Context) { - // Nothing we need to do here. + state.focusDidChange(hasFocus) } } @@ -187,6 +189,11 @@ class TerminalSurfaceView_Real: NSView, NSTextInputClient, ObservableObject { ghostty_surface_free(surface) } + func focusDidChange(_ focused: Bool) { + guard let surface = self.surface else { return } + ghostty_surface_set_focus(surface, focused ? 1 : 0) + } + override func resize(withOldSuperviewSize oldSize: NSSize) { super.resize(withOldSuperviewSize: oldSize) diff --git a/macos/Sources/TerminalView.swift b/macos/Sources/TerminalView.swift new file mode 100644 index 000000000..b04a7ff4f --- /dev/null +++ b/macos/Sources/TerminalView.swift @@ -0,0 +1,19 @@ +import SwiftUI +import GhosttyKit + +struct TerminalView: View { + let app: ghostty_app_t + @FocusState private var surfaceFocus: Bool + @Environment(\.isKeyWindow) private var isKeyWindow: Bool + + // This is true if the terminal is considered "focused". The terminal is focused if + // it is both individually focused and the containing window is key. + private var hasFocus: Bool { surfaceFocus && isKeyWindow } + + var body: some View { + VStack { + TerminalSurfaceView(app: app, hasFocus: hasFocus) + .focused($surfaceFocus) + } + } +} diff --git a/macos/Sources/WindowTracker.swift b/macos/Sources/WindowTracker.swift new file mode 100644 index 000000000..c936db253 --- /dev/null +++ b/macos/Sources/WindowTracker.swift @@ -0,0 +1,80 @@ +import SwiftUI + +/// This modifier tracks whether the window is the key window in the isKeyWindow environment value. +struct WindowObservationModifier: ViewModifier { + @StateObject var windowObserver: WindowObserver = WindowObserver() + + func body(content: Content) -> some View { + content.background( + HostingWindowFinder { [weak windowObserver] window in + windowObserver?.window = window + } + ).environment(\.isKeyWindow, windowObserver.isKeyWindow) + } +} + +extension EnvironmentValues { + struct IsKeyWindowKey: EnvironmentKey { + static var defaultValue: Bool = false + typealias Value = Bool + } + + fileprivate(set) var isKeyWindow: Bool { + get { + self[IsKeyWindowKey.self] + } + set { + self[IsKeyWindowKey.self] = newValue + } + } +} + +class WindowObserver: ObservableObject { + @Published public private(set) var isKeyWindow: Bool = false + + private var becomeKeyobserver: NSObjectProtocol? + private var resignKeyobserver: NSObjectProtocol? + + weak var window: NSWindow? { + didSet { + self.isKeyWindow = window?.isKeyWindow ?? false + guard let window = window else { + self.becomeKeyobserver = nil + self.resignKeyobserver = nil + return + } + + self.becomeKeyobserver = NotificationCenter.default.addObserver( + forName: NSWindow.didBecomeKeyNotification, + object: window, + queue: .main + ) { (n) in + self.isKeyWindow = true + } + + self.resignKeyobserver = NotificationCenter.default.addObserver( + forName: NSWindow.didResignKeyNotification, + object: window, + queue: .main + ) { (n) in + self.isKeyWindow = false + } + } + } +} + +/// This view calls the callback with the window value that hosts the view. +struct HostingWindowFinder: NSViewRepresentable { + var callback: (NSWindow?) -> () + + func makeNSView(context: Self.Context) -> NSView { + let view = NSView() + view.translatesAutoresizingMaskIntoConstraints = false + DispatchQueue.main.async { [weak view] in + self.callback(view?.window) + } + return view + } + + func updateNSView(_ nsView: NSView, context: Context) {} +} diff --git a/src/App.zig b/src/App.zig index 3a6e50971..948e409c1 100644 --- a/src/App.zig +++ b/src/App.zig @@ -414,6 +414,11 @@ pub const CAPI = struct { win.window.updateContentScale(x, y); } + /// Update the focused state of a surface. + export fn ghostty_surface_set_focus(win: *Window, focused: bool) void { + win.window.focusCallback(focused); + } + /// Tell the surface that it needs to schedule a render export fn ghostty_surface_key( win: *Window, diff --git a/src/apprt/embedded.zig b/src/apprt/embedded.zig index aff88477e..a4ddb90a7 100644 --- a/src/apprt/embedded.zig +++ b/src/apprt/embedded.zig @@ -167,4 +167,11 @@ pub const Window = struct { return; }; } + + pub fn focusCallback(self: *const Window, focused: bool) void { + self.core_win.focusCallback(focused) catch |err| { + log.err("error in focus callback err={}", .{err}); + return; + }; + } }; From c709467beea181648a919a887149ea06df9d8abd Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Sat, 18 Feb 2023 17:02:02 -0800 Subject: [PATCH 48/54] macos: hook up change title events --- include/ghostty.h | 2 ++ macos/Sources/GhosttyApp.swift | 15 ++++++++++++++- src/apprt/embedded.zig | 9 +++++++-- 3 files changed, 23 insertions(+), 3 deletions(-) diff --git a/include/ghostty.h b/include/ghostty.h index 4a4d84e7f..f630ab0d0 100644 --- a/include/ghostty.h +++ b/include/ghostty.h @@ -26,10 +26,12 @@ extern "C" { // structs. To find the Zig struct, grep for this type name. The documentation // for all of these types is available in the Zig source. typedef void (*ghostty_runtime_wakeup_cb)(void *); +typedef void (*ghostty_runtime_set_title_cb)(void *, const char *); typedef struct { void *userdata; ghostty_runtime_wakeup_cb wakeup_cb; + ghostty_runtime_set_title_cb set_title_cb; } ghostty_runtime_config_s; typedef struct { diff --git a/macos/Sources/GhosttyApp.swift b/macos/Sources/GhosttyApp.swift index b6a7066c9..50baf2ea8 100644 --- a/macos/Sources/GhosttyApp.swift +++ b/macos/Sources/GhosttyApp.swift @@ -22,6 +22,7 @@ struct GhosttyApp: App { case .ready: TerminalView(app: ghostty.app!) .modifier(WindowObservationModifier()) + .navigationTitle(ghostty.title) } } } @@ -35,6 +36,9 @@ class GhosttyState: ObservableObject { /// The readiness value of the state. @Published var readiness: Readiness = .loading + /// The title of the window as requested by the underlying terminal. + @Published var title: String = "Ghostty"; + /// The ghostty global configuration. var config: ghostty_config_t? = nil @@ -69,7 +73,8 @@ class GhosttyState: ObservableObject { // uses to interface with the application runtime environment. var runtime_cfg = ghostty_runtime_config_s( userdata: Unmanaged.passUnretained(self).toOpaque(), - wakeup_cb: { userdata in GhosttyState.wakeup(userdata) }) + wakeup_cb: { userdata in GhosttyState.wakeup(userdata) }, + set_title_cb: { userdata, title in GhosttyState.setTitle(userdata, title: title) }) // Create the ghostty app. guard let app = ghostty_app_new(&runtime_cfg, cfg) else { @@ -97,6 +102,14 @@ class GhosttyState: ObservableObject { DispatchQueue.main.async { state.appTick() } } + static func setTitle(_ userdata: UnsafeMutableRawPointer?, title: UnsafePointer?) { + let state = Unmanaged.fromOpaque(userdata!).takeUnretainedValue() + guard let titleStr = String(cString: title!, encoding: .utf8) else { return } + DispatchQueue.main.async { + state.title = titleStr + } + } + deinit { ghostty_app_free(app) ghostty_config_free(config) diff --git a/src/apprt/embedded.zig b/src/apprt/embedded.zig index a4ddb90a7..8d1fa25e7 100644 --- a/src/apprt/embedded.zig +++ b/src/apprt/embedded.zig @@ -29,6 +29,9 @@ pub const App = struct { /// Callback called to wakeup the event loop. This should trigger /// a full tick of the app loop. wakeup: *const fn (?*anyopaque) callconv(.C) void, + + /// Called to set the title of the window. + set_title: *const fn (?*anyopaque, [*]const u8) callconv(.C) void, }; opts: Options, @@ -97,8 +100,10 @@ pub const Window = struct { } pub fn setTitle(self: *Window, slice: [:0]const u8) !void { - _ = self; - _ = slice; + self.core_win.app.runtime.opts.set_title( + self.core_win.app.runtime.opts.userdata, + slice.ptr, + ); } pub fn getClipboardString(self: *const Window) ![:0]const u8 { From 7b0ddc8b7076372fb7c742f58fd4c347f184e8c8 Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Sat, 18 Feb 2023 17:22:14 -0800 Subject: [PATCH 49/54] set title callback needs to use surface userdata --- include/ghostty.h | 1 + macos/Sources/GhosttyApp.swift | 8 ++------ macos/Sources/TerminalSurfaceView.swift | 4 ++++ src/apprt/embedded.zig | 7 ++++++- 4 files changed, 13 insertions(+), 7 deletions(-) diff --git a/include/ghostty.h b/include/ghostty.h index f630ab0d0..57eb2d716 100644 --- a/include/ghostty.h +++ b/include/ghostty.h @@ -35,6 +35,7 @@ typedef struct { } ghostty_runtime_config_s; typedef struct { + void *userdata; void *nsview; double scale_factor; } ghostty_surface_config_s; diff --git a/macos/Sources/GhosttyApp.swift b/macos/Sources/GhosttyApp.swift index 50baf2ea8..9226a722f 100644 --- a/macos/Sources/GhosttyApp.swift +++ b/macos/Sources/GhosttyApp.swift @@ -22,7 +22,6 @@ struct GhosttyApp: App { case .ready: TerminalView(app: ghostty.app!) .modifier(WindowObservationModifier()) - .navigationTitle(ghostty.title) } } } @@ -36,9 +35,6 @@ class GhosttyState: ObservableObject { /// The readiness value of the state. @Published var readiness: Readiness = .loading - /// The title of the window as requested by the underlying terminal. - @Published var title: String = "Ghostty"; - /// The ghostty global configuration. var config: ghostty_config_t? = nil @@ -103,10 +99,10 @@ class GhosttyState: ObservableObject { } static func setTitle(_ userdata: UnsafeMutableRawPointer?, title: UnsafePointer?) { - let state = Unmanaged.fromOpaque(userdata!).takeUnretainedValue() + let surfaceView = Unmanaged.fromOpaque(userdata!).takeUnretainedValue() guard let titleStr = String(cString: title!, encoding: .utf8) else { return } DispatchQueue.main.async { - state.title = titleStr + surfaceView.title = titleStr } } diff --git a/macos/Sources/TerminalSurfaceView.swift b/macos/Sources/TerminalSurfaceView.swift index cd4659f6f..e16fbb02b 100644 --- a/macos/Sources/TerminalSurfaceView.swift +++ b/macos/Sources/TerminalSurfaceView.swift @@ -39,6 +39,9 @@ class TerminalSurfaceView_Real: NSView, NSTextInputClient, ObservableObject { // so we'll use that to tell ghostty to refresh. override var wantsUpdateLayer: Bool { return true } + // TODO: Figure out how to hook this up... + @Published var title: String = ""; + private var surface: ghostty_surface_t? = nil private var error: Error? = nil private var markedText: NSMutableAttributedString; @@ -170,6 +173,7 @@ class TerminalSurfaceView_Real: NSView, NSTextInputClient, ObservableObject { // Setup our surface. This will also initialize all the terminal IO. var surface_cfg = ghostty_surface_config_s( + userdata: Unmanaged.passUnretained(self).toOpaque(), nsview: Unmanaged.passUnretained(self).toOpaque(), scale_factor: NSScreen.main!.backingScaleFactor) guard let surface = ghostty_surface_new(app, &surface_cfg) else { diff --git a/src/apprt/embedded.zig b/src/apprt/embedded.zig index 8d1fa25e7..59b52878c 100644 --- a/src/apprt/embedded.zig +++ b/src/apprt/embedded.zig @@ -58,8 +58,12 @@ pub const Window = struct { core_win: *CoreWindow, content_scale: apprt.ContentScale, size: apprt.WindowSize, + opts: Options, pub const Options = extern struct { + /// Userdata passed to some of the callbacks. + userdata: ?*anyopaque = null, + /// The pointer to the backing NSView for the surface. nsview: *anyopaque = undefined, @@ -78,6 +82,7 @@ pub const Window = struct { .y = @floatCast(f32, opts.scale_factor), }, .size = .{ .width = 800, .height = 600 }, + .opts = opts, }; } @@ -101,7 +106,7 @@ pub const Window = struct { pub fn setTitle(self: *Window, slice: [:0]const u8) !void { self.core_win.app.runtime.opts.set_title( - self.core_win.app.runtime.opts.userdata, + self.opts.userdata, slice.ptr, ); } From 94e678ed5710d1da5688ada6186c8324cf7c4ecb Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Sun, 19 Feb 2023 08:49:17 -0800 Subject: [PATCH 50/54] macos: set correct title for surface title --- macos/Sources/TerminalSurfaceView.swift | 69 ++++++++++++++++++------- macos/Sources/TerminalView.swift | 4 +- 2 files changed, 54 insertions(+), 19 deletions(-) diff --git a/macos/Sources/TerminalSurfaceView.swift b/macos/Sources/TerminalSurfaceView.swift index e16fbb02b..644ec0ac2 100644 --- a/macos/Sources/TerminalSurfaceView.swift +++ b/macos/Sources/TerminalSurfaceView.swift @@ -10,11 +10,20 @@ import GhosttyKit /// since that is what the Metal renderer in Ghostty expects. In the future, it may make more sense to /// wrap an MTKView and use that, but for legacy reasons we didn't do that to begin with. struct TerminalSurfaceView: NSViewRepresentable { + /// This should be set to true wen the surface has focus. This is up to the parent because + /// focus is also defined by window focus. It is important this is set correctly since if it is + /// false then the surface will idle at almost 0% CPU. var hasFocus: Bool + + /// This is set to the title of the surface as defined by the pty. Callers should use this to + /// set the appropriate title of the window/tab/split/etc. if they care. + @Binding var title: String + @StateObject private var state: TerminalSurfaceView_Real - init(app: ghostty_app_t, hasFocus: Bool) { + init(_ app: ghostty_app_t, hasFocus: Bool, title: Binding) { self._state = StateObject(wrappedValue: TerminalSurfaceView_Real(app)) + self._title = title self.hasFocus = hasFocus } @@ -22,30 +31,62 @@ struct TerminalSurfaceView: NSViewRepresentable { // We need the view as part of the state to be created previously because // the view is sent to the Ghostty API so that it can manipulate it // directly since we draw on a render thread. + state.delegate = context.coordinator return state; } func updateNSView(_ view: TerminalSurfaceView_Real, context: Context) { + state.delegate = context.coordinator state.focusDidChange(hasFocus) } + + func makeCoordinator() -> Coordinator { + return Coordinator(self) + } + + class Coordinator : TerminalSurfaceDelegate { + let view: TerminalSurfaceView + + init(_ view: TerminalSurfaceView) { + self.view = view + } + + func titleDidChange(to: String) { + view.title = to + } + } } -// The actual NSView implementation for the terminal surface. +/// We use the delegate pattern to receive notifications about important state changes in the surface. +protocol TerminalSurfaceDelegate: AnyObject { + func titleDidChange(to: String) +} + +/// The actual NSView implementation for the terminal surface. class TerminalSurfaceView_Real: NSView, NSTextInputClient, ObservableObject { + weak var delegate: TerminalSurfaceDelegate? + + // The current title of the surface as defined by the pty. This can be + // changed with escape codes. + var title: String = "" { + didSet { + if let delegate = self.delegate { + delegate.titleDidChange(to: title) + } + } + } + + private var surface: ghostty_surface_t? = nil + private var error: Error? = nil + private var markedText: NSMutableAttributedString; + // We need to support being a first responder so that we can get input events override var acceptsFirstResponder: Bool { return true } // I don't thikn we need this but this lets us know we should redraw our layer // so we'll use that to tell ghostty to refresh. override var wantsUpdateLayer: Bool { return true } - - // TODO: Figure out how to hook this up... - @Published var title: String = ""; - - private var surface: ghostty_surface_t? = nil - private var error: Error? = nil - private var markedText: NSMutableAttributedString; - + // Mapping of event keyCode to ghostty input key values. This is cribbed from // glfw mostly since we started as a glfw-based app way back in the day! static let keycodes: [UInt16 : ghostty_input_key_e] = [ @@ -334,11 +375,3 @@ class TerminalSurfaceView_Real: NSView, NSTextInputClient, ObservableObject { return ghostty_input_mods_e(mods) } } - -/* - struct TerminalSurfaceView_Previews: PreviewProvider { - static var previews: some View { - TerminalSurfaceView() - } - } - */ diff --git a/macos/Sources/TerminalView.swift b/macos/Sources/TerminalView.swift index b04a7ff4f..9ff166241 100644 --- a/macos/Sources/TerminalView.swift +++ b/macos/Sources/TerminalView.swift @@ -5,6 +5,7 @@ struct TerminalView: View { let app: ghostty_app_t @FocusState private var surfaceFocus: Bool @Environment(\.isKeyWindow) private var isKeyWindow: Bool + @State private var title: String = "Ghostty" // This is true if the terminal is considered "focused". The terminal is focused if // it is both individually focused and the containing window is key. @@ -12,8 +13,9 @@ struct TerminalView: View { var body: some View { VStack { - TerminalSurfaceView(app: app, hasFocus: hasFocus) + TerminalSurfaceView(app, hasFocus: hasFocus, title: $title) .focused($surfaceFocus) + .navigationTitle(title) } } } From e92d90b8d5bae2f478b480bc047a0e4b80d9918a Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Sun, 19 Feb 2023 09:04:51 -0800 Subject: [PATCH 51/54] macos: new tab implementation --- macos/Sources/GhosttyApp.swift | 14 ++++++++++++++ macos/Sources/TerminalView.swift | 1 + src/App.zig | 2 ++ 3 files changed, 17 insertions(+) diff --git a/macos/Sources/GhosttyApp.swift b/macos/Sources/GhosttyApp.swift index 9226a722f..a68978c2b 100644 --- a/macos/Sources/GhosttyApp.swift +++ b/macos/Sources/GhosttyApp.swift @@ -23,6 +23,20 @@ struct GhosttyApp: App { TerminalView(app: ghostty.app!) .modifier(WindowObservationModifier()) } + }.commands { + CommandGroup(after: .newItem) { + Button("New Tab", action: newTab).keyboardShortcut("t", modifiers: [.command]) + } + } + } + + // Create a new tab in the currently active window + func newTab() { + guard let currentWindow = NSApp.keyWindow else { return } + guard let windowController = currentWindow.windowController else { return } + windowController.newWindowForTab(nil) + if let newWindow = NSApp.keyWindow, currentWindow != newWindow { + currentWindow.addTabbedWindow(newWindow, ordered: .above) } } } diff --git a/macos/Sources/TerminalView.swift b/macos/Sources/TerminalView.swift index 9ff166241..123388802 100644 --- a/macos/Sources/TerminalView.swift +++ b/macos/Sources/TerminalView.swift @@ -5,6 +5,7 @@ struct TerminalView: View { let app: ghostty_app_t @FocusState private var surfaceFocus: Bool @Environment(\.isKeyWindow) private var isKeyWindow: Bool + @Environment(\.openWindow) private var openWindow @State private var title: String = "Ghostty" // This is true if the terminal is considered "focused". The terminal is focused if diff --git a/src/App.zig b/src/App.zig index 948e409c1..a29f87330 100644 --- a/src/App.zig +++ b/src/App.zig @@ -219,6 +219,8 @@ fn newTab(self: *App, msg: Message.NewWindow) !void { return; } + // In embedded mode, it is up to the embedder to implement tabbing + // on their own. if (comptime build_config.artifact != .exe) { log.warn("tabbing is not supported in embedded mode", .{}); return; From 1659f52175516e06181ef442519d2217b90c4152 Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Sun, 19 Feb 2023 09:42:56 -0800 Subject: [PATCH 52/54] macos: mouse button and mouse move events --- include/ghostty.h | 13 ++++++ macos/Sources/TerminalSurfaceView.swift | 62 ++++++++++++++++++++++++- src/App.zig | 19 ++++++++ src/Window.zig | 2 +- src/apprt/embedded.zig | 44 ++++++++++++++++++ src/input/mouse.zig | 16 +++++-- 6 files changed, 149 insertions(+), 7 deletions(-) diff --git a/include/ghostty.h b/include/ghostty.h index 57eb2d716..3fb7b3616 100644 --- a/include/ghostty.h +++ b/include/ghostty.h @@ -40,6 +40,17 @@ typedef struct { double scale_factor; } ghostty_surface_config_s; +typedef enum { + GHOSTTY_MOUSE_RELEASE, + GHOSTTY_MOUSE_PRESS, +} ghostty_input_mouse_state_e; + +typedef enum { + GHOSTTY_MOUSE_LEFT = 1, + GHOSTTY_MOUSE_RIGHT, + GHOSTTY_MOUSE_MIDDLE, +} ghostty_input_mouse_button_e; + typedef enum { GHOSTTY_MODS_NONE = 0, GHOSTTY_MODS_SHIFT = 1 << 0, @@ -218,6 +229,8 @@ void ghostty_surface_set_focus(ghostty_surface_t, bool); void ghostty_surface_set_size(ghostty_surface_t, uint32_t, uint32_t); void ghostty_surface_key(ghostty_surface_t, ghostty_input_action_e, ghostty_input_key_e, ghostty_input_mods_e); void ghostty_surface_char(ghostty_surface_t, uint32_t); +void ghostty_surface_mouse_button(ghostty_surface_t, ghostty_input_mouse_state_e, ghostty_input_mouse_button_e, ghostty_input_mods_e); +void ghostty_surface_mouse_pos(ghostty_surface_t, double, double); #ifdef __cplusplus } diff --git a/macos/Sources/TerminalSurfaceView.swift b/macos/Sources/TerminalSurfaceView.swift index 644ec0ac2..6b75d8125 100644 --- a/macos/Sources/TerminalSurfaceView.swift +++ b/macos/Sources/TerminalSurfaceView.swift @@ -221,8 +221,10 @@ class TerminalSurfaceView_Real: NSView, NSTextInputClient, ObservableObject { self.error = AppError.surfaceCreateError return } - self.surface = surface; + + // Setup our tracking area so we get mouse moved events + updateTrackingAreas() } required init?(coder: NSCoder) { @@ -230,6 +232,8 @@ class TerminalSurfaceView_Real: NSView, NSTextInputClient, ObservableObject { } deinit { + trackingAreas.forEach { removeTrackingArea($0) } + guard let surface = self.surface else { return } ghostty_surface_free(surface) } @@ -249,6 +253,27 @@ class TerminalSurfaceView_Real: NSView, NSTextInputClient, ObservableObject { } } + override func updateTrackingAreas() { + // To update our tracking area we just recreate it all. + trackingAreas.forEach { removeTrackingArea($0) } + + // This tracking area is across the entire frame to notify us of mouse movements. + addTrackingArea(NSTrackingArea( + rect: frame, + options: [ + .mouseEnteredAndExited, + .mouseMoved, + .inVisibleRect, + + // It is possible this is incorrect when we have splits. This will make + // mouse events only happen while the terminal is focused. Is that what + // we want? + .activeWhenFirstResponder, + ], + owner: self, + userInfo: nil)) + } + override func viewDidChangeBackingProperties() { guard let surface = self.surface else { return } @@ -268,7 +293,40 @@ class TerminalSurfaceView_Real: NSView, NSTextInputClient, ObservableObject { } override func mouseDown(with event: NSEvent) { - print("Mouse down: \(event)") + guard let surface = self.surface else { return } + let mods = Self.translateFlags(event.modifierFlags) + ghostty_surface_mouse_button(surface, GHOSTTY_MOUSE_PRESS, GHOSTTY_MOUSE_LEFT, mods) + } + + override func mouseUp(with event: NSEvent) { + guard let surface = self.surface else { return } + let mods = Self.translateFlags(event.modifierFlags) + ghostty_surface_mouse_button(surface, GHOSTTY_MOUSE_RELEASE, GHOSTTY_MOUSE_LEFT, mods) + } + + override func rightMouseDown(with event: NSEvent) { + guard let surface = self.surface else { return } + let mods = Self.translateFlags(event.modifierFlags) + ghostty_surface_mouse_button(surface, GHOSTTY_MOUSE_PRESS, GHOSTTY_MOUSE_RIGHT, mods) + } + + override func rightMouseUp(with event: NSEvent) { + guard let surface = self.surface else { return } + let mods = Self.translateFlags(event.modifierFlags) + ghostty_surface_mouse_button(surface, GHOSTTY_MOUSE_RELEASE, GHOSTTY_MOUSE_RIGHT, mods) + } + + override func mouseMoved(with event: NSEvent) { + guard let surface = self.surface else { return } + + // Convert window position to view position. Note (0, 0) is bottom left. + let pos = self.convert(event.locationInWindow, from: nil) + ghostty_surface_mouse_pos(surface, pos.x, frame.height - pos.y) + + } + + override func mouseDragged(with event: NSEvent) { + self.mouseMoved(with: event) } override func keyDown(with event: NSEvent) { diff --git a/src/App.zig b/src/App.zig index a29f87330..c7fc751d8 100644 --- a/src/App.zig +++ b/src/App.zig @@ -439,4 +439,23 @@ pub const CAPI = struct { export fn ghostty_surface_char(win: *Window, codepoint: u32) void { win.window.charCallback(codepoint); } + + /// Tell the surface that it needs to schedule a render + export fn ghostty_surface_mouse_button( + win: *Window, + action: input.MouseButtonState, + button: input.MouseButton, + mods: c_int, + ) void { + win.window.mouseButtonCallback( + action, + button, + @bitCast(input.Mods, @truncate(u8, @bitCast(c_uint, mods))), + ); + } + + /// Update the mouse position within the view. + export fn ghostty_surface_mouse_pos(win: *Window, x: f64, y: f64) void { + win.window.cursorPosCallback(x, y); + } }; diff --git a/src/Window.zig b/src/Window.zig index 423432409..a104b1ee6 100644 --- a/src/Window.zig +++ b/src/Window.zig @@ -1292,7 +1292,7 @@ pub fn mouseButtonCallback( } // Always record our latest mouse state - self.mouse.click_state[@enumToInt(button)] = action; + self.mouse.click_state[@intCast(usize, @enumToInt(button))] = action; self.mouse.mods = @bitCast(input.Mods, mods); self.renderer_state.mutex.lock(); diff --git a/src/apprt/embedded.zig b/src/apprt/embedded.zig index 59b52878c..0e88a032a 100644 --- a/src/apprt/embedded.zig +++ b/src/apprt/embedded.zig @@ -58,6 +58,7 @@ pub const Window = struct { core_win: *CoreWindow, content_scale: apprt.ContentScale, size: apprt.WindowSize, + cursor_pos: apprt.CursorPos, opts: Options, pub const Options = extern struct { @@ -82,6 +83,7 @@ pub const Window = struct { .y = @floatCast(f32, opts.scale_factor), }, .size = .{ .width = 800, .height = 600 }, + .cursor_pos = .{ .x = 0, .y = 0 }, .opts = opts, }; } @@ -130,6 +132,10 @@ pub const Window = struct { return false; } + pub fn getCursorPos(self: *const Window) !apprt.CursorPos { + return self.cursor_pos; + } + pub fn refresh(self: *Window) void { self.core_win.refreshCallback() catch |err| { log.err("error in refresh callback err={}", .{err}); @@ -157,6 +163,37 @@ pub const Window = struct { }; } + pub fn mouseButtonCallback( + self: *const Window, + action: input.MouseButtonState, + button: input.MouseButton, + mods: input.Mods, + ) void { + self.core_win.mouseButtonCallback(action, button, mods) catch |err| { + log.err("error in mouse button callback err={}", .{err}); + return; + }; + } + + pub fn cursorPosCallback(self: *Window, x: f64, y: f64) void { + // Convert our unscaled x/y to scaled. + self.cursor_pos = self.core_win.window.cursorPosToPixels(.{ + .x = @floatCast(f32, x), + .y = @floatCast(f32, y), + }) catch |err| { + log.err( + "error converting cursor pos to scaled pixels in cursor pos callback err={}", + .{err}, + ); + return; + }; + + self.core_win.cursorPosCallback(self.cursor_pos) catch |err| { + log.err("error in cursor pos callback err={}", .{err}); + return; + }; + } + pub fn keyCallback( self: *const Window, action: input.Action, @@ -184,4 +221,11 @@ pub const Window = struct { return; }; } + + /// The cursor position from the host directly is in screen coordinates but + /// all our interface works in pixels. + fn cursorPosToPixels(self: *const Window, pos: apprt.CursorPos) !apprt.CursorPos { + const scale = try self.getContentScale(); + return .{ .x = pos.x * scale.x, .y = pos.y * scale.y }; + } }; diff --git a/src/input/mouse.zig b/src/input/mouse.zig index 113521813..e1059e4c0 100644 --- a/src/input/mouse.zig +++ b/src/input/mouse.zig @@ -1,7 +1,11 @@ /// The state of a mouse button. -pub const MouseButtonState = enum(u1) { - release = 0, - press = 1, +/// +/// This is backed by a c_int so we can use this as-is for our embedding API. +/// +/// IMPORTANT: Any changes here update include/ghostty.h +pub const MouseButtonState = enum(c_int) { + release, + press, }; /// Possible mouse buttons. We only track up to 11 because thats the maximum @@ -10,7 +14,11 @@ pub const MouseButtonState = enum(u1) { /// /// Its a bit silly to name numbers like this but given its a restricted /// set, it feels better than passing around raw numeric literals. -pub const MouseButton = enum(u4) { +/// +/// This is backed by a c_int so we can use this as-is for our embedding API. +/// +/// IMPORTANT: Any changes here update include/ghostty.h +pub const MouseButton = enum(c_int) { const Self = @This(); /// The maximum value in this enum. This can be used to create a densely From f1ebc6953e0cd61432b06230c7b4453d3ff2364b Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Sun, 19 Feb 2023 09:46:50 -0800 Subject: [PATCH 53/54] macos: mouse scroll events --- include/ghostty.h | 1 + macos/Sources/TerminalSurfaceView.swift | 13 +++++++++++++ src/App.zig | 4 ++++ src/apprt/embedded.zig | 7 +++++++ 4 files changed, 25 insertions(+) diff --git a/include/ghostty.h b/include/ghostty.h index 3fb7b3616..9bb88d65a 100644 --- a/include/ghostty.h +++ b/include/ghostty.h @@ -231,6 +231,7 @@ void ghostty_surface_key(ghostty_surface_t, ghostty_input_action_e, ghostty_inpu void ghostty_surface_char(ghostty_surface_t, uint32_t); void ghostty_surface_mouse_button(ghostty_surface_t, ghostty_input_mouse_state_e, ghostty_input_mouse_button_e, ghostty_input_mods_e); void ghostty_surface_mouse_pos(ghostty_surface_t, double, double); +void ghostty_surface_mouse_scroll(ghostty_surface_t, double, double); #ifdef __cplusplus } diff --git a/macos/Sources/TerminalSurfaceView.swift b/macos/Sources/TerminalSurfaceView.swift index 6b75d8125..ac3a05500 100644 --- a/macos/Sources/TerminalSurfaceView.swift +++ b/macos/Sources/TerminalSurfaceView.swift @@ -329,6 +329,19 @@ class TerminalSurfaceView_Real: NSView, NSTextInputClient, ObservableObject { self.mouseMoved(with: event) } + override func scrollWheel(with event: NSEvent) { + guard let surface = self.surface else { return } + + var x = event.scrollingDeltaX + var y = event.scrollingDeltaY + if event.hasPreciseScrollingDeltas { + x *= 0.1 + y *= 0.1 + } + + ghostty_surface_mouse_scroll(surface, x, y) + } + override func keyDown(with event: NSEvent) { guard let surface = self.surface else { return } let key = Self.keycodes[event.keyCode] ?? GHOSTTY_KEY_INVALID diff --git a/src/App.zig b/src/App.zig index c7fc751d8..5857154c0 100644 --- a/src/App.zig +++ b/src/App.zig @@ -458,4 +458,8 @@ pub const CAPI = struct { export fn ghostty_surface_mouse_pos(win: *Window, x: f64, y: f64) void { win.window.cursorPosCallback(x, y); } + + export fn ghostty_surface_mouse_scroll(win: *Window, x: f64, y: f64) void { + win.window.scrollCallback(x, y); + } }; diff --git a/src/apprt/embedded.zig b/src/apprt/embedded.zig index 0e88a032a..8a1f345b0 100644 --- a/src/apprt/embedded.zig +++ b/src/apprt/embedded.zig @@ -175,6 +175,13 @@ pub const Window = struct { }; } + pub fn scrollCallback(self: *const Window, xoff: f64, yoff: f64) void { + self.core_win.scrollCallback(xoff, yoff) catch |err| { + log.err("error in scroll callback err={}", .{err}); + return; + }; + } + pub fn cursorPosCallback(self: *Window, x: f64, y: f64) void { // Convert our unscaled x/y to scaled. self.cursor_pos = self.core_win.window.cursorPosToPixels(.{ From d0f82f96ae5b0db649c5015a128fb6a6409be412 Mon Sep 17 00:00:00 2001 From: Mitchell Hashimoto Date: Sun, 19 Feb 2023 10:44:15 -0800 Subject: [PATCH 54/54] ci: release updated to work with new xcodebuild --- .github/workflows/release-tip.yml | 72 +++++++------------------------ .github/workflows/test.yml | 2 +- 2 files changed, 17 insertions(+), 57 deletions(-) diff --git a/.github/workflows/release-tip.yml b/.github/workflows/release-tip.yml index 27bbb5d1b..6786f436b 100644 --- a/.github/workflows/release-tip.yml +++ b/.github/workflows/release-tip.yml @@ -11,7 +11,7 @@ name: Release Tip jobs: build-macos: if: ${{ github.event_name == 'workflow_dispatch' || github.event.workflow_run.conclusion == 'success' }} - runs-on: ubuntu-latest + runs-on: macos-12 env: # Needed for macos SDK AGREE: "true" @@ -22,45 +22,24 @@ jobs: submodules: recursive fetch-depth: 0 - # Install Nix and use that so our environment matches exactly. + # Install Nix and use that to run our tests so our environment matches exactly. - uses: cachix/install-nix-action@v19 with: nix_path: nixpkgs=channel:nixos-unstable - # Cross-compile the binary. We always use static building for this - # because its the only way to access the headers. - - name: Build aarch64 - run: | - nix develop -c zig build -Dcpu=baseline -Dstatic=true -Dtarget=aarch64-macos -Doptimize=ReleaseFast - mv zig-out/bin/ghostty zig-out/bin/ghostty-aarch64-macos - - name: Build x86_64 - run: | - nix develop -c zig build -Dcpu=baseline -Dstatic=true -Dtarget=x86_64-macos -Doptimize=ReleaseFast - mv zig-out/bin/ghostty zig-out/bin/ghostty-x86_64-macos + # GhosttyKit is the framework that is built from Zig for our native + # Mac app to access. Build this in release mode. + - name: Build GhosttyKit + run: nix develop -c zig build -Dstatic=true -Doptimize=ReleaseFast - - name: Create Universal Binary - run: | - # Lipo our binaries - nix develop -c \ - llvm-lipo \ - zig-out/bin/ghostty-aarch64-macos \ - zig-out/bin/ghostty-x86_64-macos \ - -create \ - -output zig-out/bin/ghostty-universal - - # Ensure the app is universal - cp zig-out/bin/ghostty-universal zig-out/Ghostty.app/Contents/MacOS/ghostty - - # Upload the App bundle so we can sign it later on macOS - - name: Store App Bundle Artifact - uses: actions/upload-artifact@v3 - with: - name: app-bundle - path: zig-out/ - retention-days: 5 + # The native app is built with native XCode tooling. This also does + # codesigning. IMPORTANT: this must NOT run in a Nix environment. + # Nix breaks xcodebuild so this has to be run outside. + - name: Build Ghostty.app + run: cd macos && xcodebuild -configuration Release - name: Zip Unsigned App - run: nix develop -c sh -c 'cd zig-out && zip -9 -r ../ghostty-macos-universal-unsigned.zip Ghostty.app' + run: nix develop -c sh -c 'cd macos/build/Release && zip -9 -r ../../../ghostty-macos-universal-unsigned.zip Ghostty.app' # Update Release - name: Release Unsigned @@ -80,25 +59,6 @@ jobs: message: "Latest Continuous Release" force_push_tag: true - sign-and-release: - runs-on: macos-12 - needs: build-macos - steps: - - name: Checkout code - uses: actions/checkout@v3 - with: - submodules: recursive - fetch-depth: 0 - - - uses: actions/download-artifact@v3 - with: - name: app-bundle - path: zig-out - - - name: Fix Permissions - run: | - chmod +x zig-out/Ghostty.app/Contents/MacOS/ghostty - - name: Codesign app bundle env: MACOS_CERTIFICATE: ${{ secrets.PROD_MACOS_CERTIFICATE }} @@ -119,7 +79,7 @@ jobs: security set-key-partition-list -S apple-tool:,apple:,codesign: -s -k "$MACOS_CI_KEYCHAIN_PWD" build.keychain # We finally codesign our app bundle, specifying the Hardened runtime option - /usr/bin/codesign --force -s "$MACOS_CERTIFICATE_NAME" --options runtime zig-out/Ghostty.app -v + /usr/bin/codesign --force -s "$MACOS_CERTIFICATE_NAME" --options runtime build/Release/Ghostty.app -v - name: "Notarize app bundle" env: @@ -136,7 +96,7 @@ jobs: # Therefore, we create a zip file containing our app bundle, so that we can send it to the # notarization service echo "Creating temp notarization archive" - ditto -c -k --keepParent "zig-out/Ghostty.app" "notarization.zip" + ditto -c -k --keepParent "build/Release/Ghostty.app" "notarization.zip" # Here we send the notarization request to the Apple's Notarization service, waiting for the result. # This typically takes a few seconds inside a CI environment, but it might take more depending on the App @@ -148,11 +108,11 @@ jobs: # Finally, we need to "attach the staple" to our executable, which will allow our app to be # validated by macOS even when an internet connection is not available. echo "Attach staple" - xcrun stapler staple "zig-out/Ghostty.app" + xcrun stapler staple "build/Release/Ghostty.app" # Zip up the app - name: Zip App - run: cd zig-out && zip -9 -r ../ghostty-macos-universal.zip Ghostty.app + run: cd build/Release && zip -9 -r ../../../ghostty-macos-universal.zip Ghostty.app # Update Release - name: Release diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 14f00e2be..440ee8313 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -42,7 +42,7 @@ jobs: build-macos: runs-on: macos-12 - #needs: test + needs: test env: # Needed for macos SDK AGREE: "true"