diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index ceffde09e..d12d6e67f 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -26,6 +26,7 @@ jobs: - test-simd - test-gtk - test-sentry-linux + - test-i18n - test-macos - pinact - prettier @@ -701,6 +702,41 @@ jobs: - name: test run: nix develop -c zig build test --system ${{ steps.deps.outputs.deps }} + test-i18n: + strategy: + fail-fast: false + matrix: + i18n: ["true", "false"] + name: Build -Di18n=${{ matrix.simd }} + runs-on: namespace-profile-ghostty-sm + needs: test + env: + ZIG_LOCAL_CACHE_DIR: /zig/local-cache + ZIG_GLOBAL_CACHE_DIR: /zig/global-cache + steps: + - name: Checkout code + uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8 # v5.0.0 + + - name: Setup Cache + uses: namespacelabs/nscloud-cache-action@a289cf5d2fcd6874376aa92f0ef7f99dc923592a # v1.2.17 + with: + path: | + /nix + /zig + + # Install Nix and use that to run our tests so our environment matches exactly. + - uses: cachix/install-nix-action@a809471b5c7c913aa67bec8f459a11a0decc3fce # v31.6.2 + with: + nix_path: nixpkgs=channel:nixos-unstable + - uses: cachix/cachix-action@0fc020193b5a1fa3ac4575aa3a7d3aa6a35435ad # v16 + with: + name: ghostty + authToken: "${{ secrets.CACHIX_AUTH_TOKEN }}" + + - name: Test + run: | + nix develop -c zig build -Di18n=${{ matrix.i18n }} + zig-fmt: if: github.repository == 'ghostty-org/ghostty' runs-on: namespace-profile-ghostty-xsm diff --git a/example/zig-vt/build.zig b/example/zig-vt/build.zig index d52ea7ce7..7f5f2faa0 100644 --- a/example/zig-vt/build.zig +++ b/example/zig-vt/build.zig @@ -15,7 +15,13 @@ pub fn build(b: *std.Build) void { // You'll want to use a lazy dependency here so that ghostty is only // downloaded if you actually need it. - if (b.lazyDependency("ghostty", .{})) |dep| { + if (b.lazyDependency("ghostty", .{ + // Setting simd to false will force a pure static build that + // doesn't even require libc, but it has a significant performance + // penalty. If your embedding app requires libc anyway, you should + // always keep simd enabled. + // .simd = false, + })) |dep| { exe_mod.addImport( "ghostty-vt", dep.module("ghostty-vt"), diff --git a/macos/Ghostty.xcodeproj/project.pbxproj b/macos/Ghostty.xcodeproj/project.pbxproj index 9c2defd1b..cd9e56186 100644 --- a/macos/Ghostty.xcodeproj/project.pbxproj +++ b/macos/Ghostty.xcodeproj/project.pbxproj @@ -10,148 +10,19 @@ 29C15B1D2CDC3B2900520DD4 /* bat in Resources */ = {isa = PBXBuildFile; fileRef = 29C15B1C2CDC3B2000520DD4 /* bat */; }; 55154BE02B33911F001622DC /* ghostty in Resources */ = {isa = PBXBuildFile; fileRef = 55154BDF2B33911F001622DC /* ghostty */; }; 552964E62B34A9B400030505 /* vim in Resources */ = {isa = PBXBuildFile; fileRef = 552964E52B34A9B400030505 /* vim */; }; - 857F63812A5E64F200CA4815 /* MainMenu.xib in Resources */ = {isa = PBXBuildFile; fileRef = 857F63802A5E64F200CA4815 /* MainMenu.xib */; }; 9351BE8E3D22937F003B3499 /* nvim in Resources */ = {isa = PBXBuildFile; fileRef = 9351BE8E2D22937F003B3499 /* nvim */; }; - A50297352DFA0F3400B4E924 /* Double+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = A50297342DFA0F3300B4E924 /* Double+Extension.swift */; }; - A505D21D2E1A2FA20018808F /* FileHandle+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = A505D21C2E1A2F9E0018808F /* FileHandle+Extension.swift */; }; - A505D21F2E1B6DE00018808F /* NSWorkspace+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = A505D21E2E1B6DDC0018808F /* NSWorkspace+Extension.swift */; }; - A511940F2E050595007258CC /* CloseTerminalIntent.swift in Sources */ = {isa = PBXBuildFile; fileRef = A511940E2E050590007258CC /* CloseTerminalIntent.swift */; }; - A51194112E05A483007258CC /* QuickTerminalIntent.swift in Sources */ = {isa = PBXBuildFile; fileRef = A51194102E05A480007258CC /* QuickTerminalIntent.swift */; }; - A51194132E05D006007258CC /* Optional+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = A51194122E05D003007258CC /* Optional+Extension.swift */; }; - A51194172E05D964007258CC /* PermissionRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = A51194162E05D95E007258CC /* PermissionRequest.swift */; }; - A51194192E05DFC4007258CC /* IntentPermission.swift in Sources */ = {isa = PBXBuildFile; fileRef = A51194182E05DFBB007258CC /* IntentPermission.swift */; }; - A514C8D62B54A16400493A16 /* Ghostty.Config.swift in Sources */ = {isa = PBXBuildFile; fileRef = A514C8D52B54A16400493A16 /* Ghostty.Config.swift */; }; - A514C8D72B54A16400493A16 /* Ghostty.Config.swift in Sources */ = {isa = PBXBuildFile; fileRef = A514C8D52B54A16400493A16 /* Ghostty.Config.swift */; }; - A514C8D82B54DC6800493A16 /* Ghostty.App.swift in Sources */ = {isa = PBXBuildFile; fileRef = A53D0C992B543F3B00305CE6 /* Ghostty.App.swift */; }; - A51544FE2DFB111C009E85D8 /* TitlebarTabsTahoeTerminalWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = A51544FD2DFB1110009E85D8 /* TitlebarTabsTahoeTerminalWindow.swift */; }; - A51545002DFB112E009E85D8 /* TerminalTabsTitlebarTahoe.xib in Resources */ = {isa = PBXBuildFile; fileRef = A51544FF2DFB112E009E85D8 /* TerminalTabsTitlebarTahoe.xib */; }; - A51B78472AF4B58B00F3EDB9 /* TitlebarTabsVenturaTerminalWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = A51B78462AF4B58B00F3EDB9 /* TitlebarTabsVenturaTerminalWindow.swift */; }; - A51BFC1E2B2FB5CE00E92F16 /* About.xib in Resources */ = {isa = PBXBuildFile; fileRef = A51BFC1D2B2FB5CE00E92F16 /* About.xib */; }; - A51BFC202B2FB64F00E92F16 /* AboutController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A51BFC1F2B2FB64F00E92F16 /* AboutController.swift */; }; - A51BFC222B2FB6B400E92F16 /* AboutView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A51BFC212B2FB6B400E92F16 /* AboutView.swift */; }; A51BFC272B30F1B800E92F16 /* Sparkle in Frameworks */ = {isa = PBXBuildFile; productRef = A51BFC262B30F1B800E92F16 /* Sparkle */; }; - A51BFC2B2B30F6BE00E92F16 /* UpdateDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = A51BFC2A2B30F6BE00E92F16 /* UpdateDelegate.swift */; }; - A5278A9B2AA05B2600CD3039 /* Ghostty.Input.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5278A9A2AA05B2600CD3039 /* Ghostty.Input.swift */; }; - A52FFF572CA90484000C6A5B /* QuickTerminalScreen.swift in Sources */ = {isa = PBXBuildFile; fileRef = A52FFF562CA90481000C6A5B /* QuickTerminalScreen.swift */; }; - A52FFF592CAA4FF3000C6A5B /* Fullscreen.swift in Sources */ = {isa = PBXBuildFile; fileRef = A52FFF582CAA4FF1000C6A5B /* Fullscreen.swift */; }; - A52FFF5B2CAA54B1000C6A5B /* FullscreenMode+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = A52FFF5A2CAA54A8000C6A5B /* FullscreenMode+Extension.swift */; }; - A52FFF5D2CAB4D08000C6A5B /* NSScreen+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = A52FFF5C2CAB4D05000C6A5B /* NSScreen+Extension.swift */; }; - A5333E1C2B5A1CE3008AEFF7 /* CrossKit.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5333E1B2B5A1CE3008AEFF7 /* CrossKit.swift */; }; - A5333E1D2B5A1CE3008AEFF7 /* CrossKit.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5333E1B2B5A1CE3008AEFF7 /* CrossKit.swift */; }; - A5333E202B5A2111008AEFF7 /* SurfaceView_UIKit.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5333E152B59DE8E008AEFF7 /* SurfaceView_UIKit.swift */; }; - A5333E222B5A2128008AEFF7 /* SurfaceView_AppKit.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5333E212B5A2128008AEFF7 /* SurfaceView_AppKit.swift */; }; - A5333E232B5A219A008AEFF7 /* SurfaceView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A55B7BBB29B6FC330055DE60 /* SurfaceView.swift */; }; - A5333E242B5A22D9008AEFF7 /* Ghostty.Shell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A56D58852ACDDB4100508D2C /* Ghostty.Shell.swift */; }; - A53426352A7DA53D00EBB7A2 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = A53426342A7DA53D00EBB7A2 /* AppDelegate.swift */; }; - A535B9DA299C569B0017E2E4 /* ErrorView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A535B9D9299C569B0017E2E4 /* ErrorView.swift */; }; - A53A297B2DB2E49700B6E02C /* CommandPalette.swift in Sources */ = {isa = PBXBuildFile; fileRef = A53A297A2DB2E49400B6E02C /* CommandPalette.swift */; }; - A53A297F2DB4480F00B6E02C /* EventModifiers+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = A53A297E2DB4480A00B6E02C /* EventModifiers+Extension.swift */; }; - A53A29812DB44A6100B6E02C /* KeyboardShortcut+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = A53A29802DB44A5E00B6E02C /* KeyboardShortcut+Extension.swift */; }; - A53A29882DB69D2F00B6E02C /* TerminalCommandPalette.swift in Sources */ = {isa = PBXBuildFile; fileRef = A53A29872DB69D2C00B6E02C /* TerminalCommandPalette.swift */; }; - A53A6C032CCC1B7F00943E98 /* Ghostty.Action.swift in Sources */ = {isa = PBXBuildFile; fileRef = A53A6C022CCC1B7D00943E98 /* Ghostty.Action.swift */; }; A53D0C8E2B53B0EA00305CE6 /* GhosttyKit.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = A5D495A1299BEC7E00DD1313 /* GhosttyKit.xcframework */; }; - A53D0C942B53B43700305CE6 /* iOSApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = A53D0C932B53B43700305CE6 /* iOSApp.swift */; }; A53D0C952B53B4D800305CE6 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = A5B30538299BEAAB0047F10C /* Assets.xcassets */; }; - A53D0C9B2B543F3B00305CE6 /* Ghostty.App.swift in Sources */ = {isa = PBXBuildFile; fileRef = A53D0C992B543F3B00305CE6 /* Ghostty.App.swift */; }; - A53D0C9C2B543F7B00305CE6 /* Package.swift in Sources */ = {isa = PBXBuildFile; fileRef = A55B7BB729B6F53A0055DE60 /* Package.swift */; }; A546F1142D7B68D7003B11A0 /* locale in Resources */ = {isa = PBXBuildFile; fileRef = A546F1132D7B68D7003B11A0 /* locale */; }; - A54B0CE92D0CECD100CBEFF8 /* ColorizedGhosttyIconView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A54B0CE82D0CECD100CBEFF8 /* ColorizedGhosttyIconView.swift */; }; - A54B0CEB2D0CFB4C00CBEFF8 /* NSImage+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = A54B0CEA2D0CFB4A00CBEFF8 /* NSImage+Extension.swift */; }; - A54B0CED2D0CFB7700CBEFF8 /* ColorizedGhosttyIcon.swift in Sources */ = {isa = PBXBuildFile; fileRef = A54B0CEC2D0CFB7300CBEFF8 /* ColorizedGhosttyIcon.swift */; }; - A54B0CEF2D0D2E2800CBEFF8 /* ColorizedGhosttyIconImage.swift in Sources */ = {isa = PBXBuildFile; fileRef = A54B0CEE2D0D2E2400CBEFF8 /* ColorizedGhosttyIconImage.swift */; }; - A54D786C2CA7978E001B19B1 /* BaseTerminalController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A54D786B2CA79788001B19B1 /* BaseTerminalController.swift */; }; - A553F4062E05E93000257779 /* Optional+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = A51194122E05D003007258CC /* Optional+Extension.swift */; }; - A553F4072E05E93D00257779 /* Array+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = A586366A2DF0A98900E04A10 /* Array+Extension.swift */; }; A553F4132E06EB1600257779 /* Ghostty.icon in Resources */ = {isa = PBXBuildFile; fileRef = A553F4122E06EB1600257779 /* Ghostty.icon */; }; A553F4142E06EB1600257779 /* Ghostty.icon in Resources */ = {isa = PBXBuildFile; fileRef = A553F4122E06EB1600257779 /* Ghostty.icon */; }; - A5593FDF2DF8D57C00B47B10 /* TerminalWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5593FDE2DF8D57100B47B10 /* TerminalWindow.swift */; }; - A5593FE12DF8D74000B47B10 /* HiddenTitlebarTerminalWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5593FE02DF8D73400B47B10 /* HiddenTitlebarTerminalWindow.swift */; }; - A5593FE32DF8D78600B47B10 /* TerminalHiddenTitlebar.xib in Resources */ = {isa = PBXBuildFile; fileRef = A5593FE22DF8D78600B47B10 /* TerminalHiddenTitlebar.xib */; }; - A5593FE52DF8DE3000B47B10 /* TerminalTabsTitlebarVentura.xib in Resources */ = {isa = PBXBuildFile; fileRef = A5593FE42DF8DE3000B47B10 /* TerminalTabsTitlebarVentura.xib */; }; - A5593FE72DF927D200B47B10 /* TransparentTitlebarTerminalWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5593FE62DF927CC00B47B10 /* TransparentTitlebarTerminalWindow.swift */; }; - A5593FE92DF927DF00B47B10 /* TerminalTransparentTitlebar.xib in Resources */ = {isa = PBXBuildFile; fileRef = A5593FE82DF927DF00B47B10 /* TerminalTransparentTitlebar.xib */; }; - A55B7BB829B6F53A0055DE60 /* Package.swift in Sources */ = {isa = PBXBuildFile; fileRef = A55B7BB729B6F53A0055DE60 /* Package.swift */; }; - A55B7BBC29B6FC330055DE60 /* SurfaceView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A55B7BBB29B6FC330055DE60 /* SurfaceView.swift */; }; A56B880B2A840447007A0E29 /* Carbon.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A56B880A2A840447007A0E29 /* Carbon.framework */; }; - A56D58862ACDDB4100508D2C /* Ghostty.Shell.swift in Sources */ = {isa = PBXBuildFile; fileRef = A56D58852ACDDB4100508D2C /* Ghostty.Shell.swift */; }; - A56D58892ACDE6CA00508D2C /* ServiceProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = A56D58882ACDE6CA00508D2C /* ServiceProvider.swift */; }; A571AB1D2A206FCF00248498 /* GhosttyKit.xcframework in Frameworks */ = {isa = PBXBuildFile; fileRef = A5D495A1299BEC7E00DD1313 /* GhosttyKit.xcframework */; }; - A57D79272C9C879B001D522E /* SecureInput.swift in Sources */ = {isa = PBXBuildFile; fileRef = A57D79262C9C8798001D522E /* SecureInput.swift */; }; A586167C2B7703CC009BDB1D /* fish in Resources */ = {isa = PBXBuildFile; fileRef = A586167B2B7703CC009BDB1D /* fish */; }; - A586365F2DEE6C2300E04A10 /* SplitTree.swift in Sources */ = {isa = PBXBuildFile; fileRef = A586365E2DEE6C2100E04A10 /* SplitTree.swift */; }; - A58636662DEF964100E04A10 /* TerminalSplitTreeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A58636652DEF963F00E04A10 /* TerminalSplitTreeView.swift */; }; - A586366B2DF0A98C00E04A10 /* Array+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = A586366A2DF0A98900E04A10 /* Array+Extension.swift */; }; - A586366F2DF25D8600E04A10 /* Duration+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = A586366E2DF25D8300E04A10 /* Duration+Extension.swift */; }; - A58636712DF298FB00E04A10 /* ExpiringUndoManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = A58636702DF298F700E04A10 /* ExpiringUndoManager.swift */; }; - A58636732DF4813400E04A10 /* UndoManager+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = A58636722DF4813000E04A10 /* UndoManager+Extension.swift */; }; - A5874D992DAD751B00E83852 /* CGS.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5874D982DAD751A00E83852 /* CGS.swift */; }; - A5874D9D2DAD786100E83852 /* NSWindow+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5874D9C2DAD785F00E83852 /* NSWindow+Extension.swift */; }; - A59444F729A2ED5200725BBA /* SettingsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A59444F629A2ED5200725BBA /* SettingsView.swift */; }; - A59630972AEE163600D64628 /* HostingWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = A59630962AEE163600D64628 /* HostingWindow.swift */; }; - A596309A2AEE1C6400D64628 /* Terminal.xib in Resources */ = {isa = PBXBuildFile; fileRef = A59630992AEE1C6400D64628 /* Terminal.xib */; }; - A596309C2AEE1C9E00D64628 /* TerminalController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A596309B2AEE1C9E00D64628 /* TerminalController.swift */; }; - A596309E2AEE1D6C00D64628 /* TerminalView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A596309D2AEE1D6C00D64628 /* TerminalView.swift */; }; - A5985CD72C320C4500C57AD3 /* String+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5985CD62C320C4500C57AD3 /* String+Extension.swift */; }; - A5985CD82C320C4500C57AD3 /* String+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5985CD62C320C4500C57AD3 /* String+Extension.swift */; }; A5985CE62C33060F00C57AD3 /* man in Resources */ = {isa = PBXBuildFile; fileRef = A5985CE52C33060F00C57AD3 /* man */; }; - A599CDB02CF103F60049FA26 /* NSAppearance+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = A599CDAF2CF103F20049FA26 /* NSAppearance+Extension.swift */; }; - A59FB5CF2AE0DB50009128F3 /* InspectorView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A59FB5CE2AE0DB50009128F3 /* InspectorView.swift */; }; - A59FB5D12AE0DEA7009128F3 /* MetalView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A59FB5D02AE0DEA7009128F3 /* MetalView.swift */; }; A5A1F8852A489D6800D1E8BC /* terminfo in Resources */ = {isa = PBXBuildFile; fileRef = A5A1F8842A489D6800D1E8BC /* terminfo */; }; - A5A2A3CA2D4445E30033CF96 /* Dock.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5A2A3C92D4445E20033CF96 /* Dock.swift */; }; - A5A2A3CC2D444ABB0033CF96 /* NSApplication+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5A2A3CB2D444AB80033CF96 /* NSApplication+Extension.swift */; }; - A5A6F72A2CC41B8900B232A5 /* AppInfo.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5A6F7292CC41B8700B232A5 /* AppInfo.swift */; }; - A5AEB1652D5BE7D000513529 /* LastWindowPosition.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5AEB1642D5BE7BF00513529 /* LastWindowPosition.swift */; }; A5B30539299BEAAB0047F10C /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = A5B30538299BEAAB0047F10C /* Assets.xcassets */; }; - A5B4EA852DFE691B0022C3A2 /* NSMenuItem+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5B4EA842DFE69140022C3A2 /* NSMenuItem+Extension.swift */; }; - A5BB78B92DF9D8CE009AC3FA /* QuickTerminalSize.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5BB78B82DF9D8CE009AC3FA /* QuickTerminalSize.swift */; }; - A5CA378C2D2A4DEB00931030 /* KeyboardLayout.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5CA378B2D2A4DE800931030 /* KeyboardLayout.swift */; }; - A5CA378E2D31D6C300931030 /* Weak.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5CA378D2D31D6C100931030 /* Weak.swift */; }; - A5CBD0562C9E65B80017A1AE /* DraggableWindowView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5CBD0552C9E65A50017A1AE /* DraggableWindowView.swift */; }; - A5CBD0582C9F30960017A1AE /* Cursor.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5CBD0572C9F30860017A1AE /* Cursor.swift */; }; - A5CBD0592C9F37B10017A1AE /* Backport.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5CEAFFE29C2410700646FDA /* Backport.swift */; }; - A5CBD05C2CA0C5C70017A1AE /* QuickTerminal.xib in Resources */ = {isa = PBXBuildFile; fileRef = A5CBD05B2CA0C5C70017A1AE /* QuickTerminal.xib */; }; - A5CBD05E2CA0C5EC0017A1AE /* QuickTerminalController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5CBD05D2CA0C5E70017A1AE /* QuickTerminalController.swift */; }; - A5CBD0602CA0C90A0017A1AE /* QuickTerminalWindow.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5CBD05F2CA0C9080017A1AE /* QuickTerminalWindow.swift */; }; - A5CBD0642CA122E70017A1AE /* QuickTerminalPosition.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5CBD0632CA122E70017A1AE /* QuickTerminalPosition.swift */; }; - A5CBD06B2CA322430017A1AE /* GlobalEventTap.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5CBD06A2CA322320017A1AE /* GlobalEventTap.swift */; }; - A5CC36132C9CD72D004D6760 /* SecureInputOverlay.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5CC36122C9CD729004D6760 /* SecureInputOverlay.swift */; }; - A5CC36152C9CDA06004D6760 /* View+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5CC36142C9CDA03004D6760 /* View+Extension.swift */; }; - A5CDF1912AAF9A5800513312 /* ConfigurationErrors.xib in Resources */ = {isa = PBXBuildFile; fileRef = A5CDF1902AAF9A5800513312 /* ConfigurationErrors.xib */; }; - A5CDF1932AAF9E0800513312 /* ConfigurationErrorsController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5CDF1922AAF9E0800513312 /* ConfigurationErrorsController.swift */; }; - A5CDF1952AAFA19600513312 /* ConfigurationErrorsView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5CDF1942AAFA19600513312 /* ConfigurationErrorsView.swift */; }; - A5CEAFDC29B8009000646FDA /* SplitView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5CEAFDB29B8009000646FDA /* SplitView.swift */; }; - A5CEAFDE29B8058B00646FDA /* SplitView.Divider.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5CEAFDD29B8058B00646FDA /* SplitView.Divider.swift */; }; - A5CEAFFF29C2410700646FDA /* Backport.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5CEAFFE29C2410700646FDA /* Backport.swift */; }; - A5CF66D42D289CEE00139794 /* NSEvent+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5CF66D32D289CEA00139794 /* NSEvent+Extension.swift */; }; - A5CF66D72D29DDB500139794 /* Ghostty.Event.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5CF66D62D29DDB100139794 /* Ghostty.Event.swift */; }; - A5D0AF3B2B36A1DE00D21823 /* TerminalRestorable.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5D0AF3A2B36A1DE00D21823 /* TerminalRestorable.swift */; }; - A5D0AF3D2B37804400D21823 /* CodableBridge.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5D0AF3C2B37804400D21823 /* CodableBridge.swift */; }; - A5D689BE2E654D98002E2346 /* Ghostty.Action.swift in Sources */ = {isa = PBXBuildFile; fileRef = A53A6C022CCC1B7D00943E98 /* Ghostty.Action.swift */; }; - A5E112932AF73E6E00C6E0C2 /* ClipboardConfirmation.xib in Resources */ = {isa = PBXBuildFile; fileRef = A5E112922AF73E6E00C6E0C2 /* ClipboardConfirmation.xib */; }; - A5E112952AF73E8A00C6E0C2 /* ClipboardConfirmationController.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5E112942AF73E8A00C6E0C2 /* ClipboardConfirmationController.swift */; }; - A5E112972AF7401B00C6E0C2 /* ClipboardConfirmationView.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5E112962AF7401B00C6E0C2 /* ClipboardConfirmationView.swift */; }; - A5E4082A2E022E9E0035FEAC /* TabGroupCloseCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5E408292E022E9B0035FEAC /* TabGroupCloseCoordinator.swift */; }; - A5E4082E2E0237460035FEAC /* NewTerminalIntent.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5E4082D2E0237410035FEAC /* NewTerminalIntent.swift */; }; - A5E408302E0271320035FEAC /* GhosttyIntentError.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5E4082F2E0271320035FEAC /* GhosttyIntentError.swift */; }; - A5E408322E02FEDF0035FEAC /* TerminalEntity.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5E408312E02FEDC0035FEAC /* TerminalEntity.swift */; }; - A5E408342E0320140035FEAC /* GetTerminalDetailsIntent.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5E408332E03200F0035FEAC /* GetTerminalDetailsIntent.swift */; }; - A5E408382E03C7DA0035FEAC /* Ghostty.Surface.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5E408372E03C7D80035FEAC /* Ghostty.Surface.swift */; }; - A5E4083A2E0449BD0035FEAC /* Ghostty.Command.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5E408392E0449BB0035FEAC /* Ghostty.Command.swift */; }; - A5E4083C2E044DB50035FEAC /* Ghostty.Error.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5E4083B2E044DB40035FEAC /* Ghostty.Error.swift */; }; - A5E408402E04532C0035FEAC /* CommandEntity.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5E4083F2E04532A0035FEAC /* CommandEntity.swift */; }; - A5E408432E047D0B0035FEAC /* CommandPaletteIntent.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5E408422E047D060035FEAC /* CommandPaletteIntent.swift */; }; - A5E408452E0483FD0035FEAC /* KeybindIntent.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5E408442E0483F80035FEAC /* KeybindIntent.swift */; }; - A5E408472E04852B0035FEAC /* InputIntent.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5E408462E0485270035FEAC /* InputIntent.swift */; }; - A5F9A1F22E7C7301005AFACE /* SurfaceProgressBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5F9A1F12E7C7301005AFACE /* SurfaceProgressBar.swift */; }; - A5F9A1F32E7C7D59005AFACE /* SurfaceProgressBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5F9A1F12E7C7301005AFACE /* SurfaceProgressBar.swift */; }; - A5FEB3002ABB69450068369E /* main.swift in Sources */ = {isa = PBXBuildFile; fileRef = A5FEB2FF2ABB69450068369E /* main.swift */; }; - AEE8B3452B9AA39600260C5E /* NSPasteboard+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = AEE8B3442B9AA39600260C5E /* NSPasteboard+Extension.swift */; }; - C159E81D2B66A06B00FDFE9C /* OSColor+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = C159E81C2B66A06B00FDFE9C /* OSColor+Extension.swift */; }; - C159E89D2B69A2EF00FDFE9C /* OSColor+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = C159E81C2B66A06B00FDFE9C /* OSColor+Extension.swift */; }; - C1F26EA72B738B9900404083 /* NSView+Extension.swift in Sources */ = {isa = PBXBuildFile; fileRef = C1F26EA62B738B9900404083 /* NSView+Extension.swift */; }; - C1F26EE92B76CBFC00404083 /* VibrantLayer.m in Sources */ = {isa = PBXBuildFile; fileRef = C1F26EE82B76CBFC00404083 /* VibrantLayer.m */; }; - CFBB5FEA2D231E5000FD62EE /* QuickTerminalSpaceBehavior.swift in Sources */ = {isa = PBXBuildFile; fileRef = CFBB5FE92D231E5000FD62EE /* QuickTerminalSpaceBehavior.swift */; }; FC5218FA2D10FFCE004C93E0 /* zsh in Resources */ = {isa = PBXBuildFile; fileRef = FC5218F92D10FFC7004C93E0 /* zsh */; }; FC9ABA9C2D0F53F80020D4C8 /* bash-completion in Resources */ = {isa = PBXBuildFile; fileRef = FC9ABA9B2D0F538D0020D4C8 /* bash-completion */; }; /* End PBXBuildFile section */ @@ -171,144 +42,144 @@ 3B39CAA42B33949B00DABEB8 /* GhosttyReleaseLocal.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = GhosttyReleaseLocal.entitlements; sourceTree = ""; }; 55154BDF2B33911F001622DC /* ghostty */ = {isa = PBXFileReference; lastKnownFileType = folder; name = ghostty; path = "../zig-out/share/ghostty"; sourceTree = ""; }; 552964E52B34A9B400030505 /* vim */ = {isa = PBXFileReference; lastKnownFileType = folder; name = vim; path = "../zig-out/share/vim"; sourceTree = ""; }; - 857F63802A5E64F200CA4815 /* MainMenu.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = MainMenu.xib; sourceTree = ""; }; 9351BE8E2D22937F003B3499 /* nvim */ = {isa = PBXFileReference; lastKnownFileType = folder; name = nvim; path = "../zig-out/share/nvim"; sourceTree = ""; }; - A50297342DFA0F3300B4E924 /* Double+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Double+Extension.swift"; sourceTree = ""; }; - A505D21C2E1A2F9E0018808F /* FileHandle+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "FileHandle+Extension.swift"; sourceTree = ""; }; - A505D21E2E1B6DDC0018808F /* NSWorkspace+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "NSWorkspace+Extension.swift"; sourceTree = ""; }; - A511940E2E050590007258CC /* CloseTerminalIntent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CloseTerminalIntent.swift; sourceTree = ""; }; - A51194102E05A480007258CC /* QuickTerminalIntent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = QuickTerminalIntent.swift; sourceTree = ""; }; - A51194122E05D003007258CC /* Optional+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Optional+Extension.swift"; sourceTree = ""; }; - A51194162E05D95E007258CC /* PermissionRequest.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PermissionRequest.swift; sourceTree = ""; }; - A51194182E05DFBB007258CC /* IntentPermission.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = IntentPermission.swift; sourceTree = ""; }; - A514C8D52B54A16400493A16 /* Ghostty.Config.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Ghostty.Config.swift; sourceTree = ""; }; - A51544FD2DFB1110009E85D8 /* TitlebarTabsTahoeTerminalWindow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TitlebarTabsTahoeTerminalWindow.swift; sourceTree = ""; }; - A51544FF2DFB112E009E85D8 /* TerminalTabsTitlebarTahoe.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = TerminalTabsTitlebarTahoe.xib; sourceTree = ""; }; - A51B78462AF4B58B00F3EDB9 /* TitlebarTabsVenturaTerminalWindow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TitlebarTabsVenturaTerminalWindow.swift; sourceTree = ""; }; - A51BFC1D2B2FB5CE00E92F16 /* About.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = About.xib; sourceTree = ""; }; - A51BFC1F2B2FB64F00E92F16 /* AboutController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AboutController.swift; sourceTree = ""; }; - A51BFC212B2FB6B400E92F16 /* AboutView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AboutView.swift; sourceTree = ""; }; A51BFC282B30F26D00E92F16 /* GhosttyDebug.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = GhosttyDebug.entitlements; sourceTree = ""; }; - A51BFC2A2B30F6BE00E92F16 /* UpdateDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UpdateDelegate.swift; sourceTree = ""; }; - A5278A9A2AA05B2600CD3039 /* Ghostty.Input.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Ghostty.Input.swift; sourceTree = ""; }; - A52FFF562CA90481000C6A5B /* QuickTerminalScreen.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = QuickTerminalScreen.swift; sourceTree = ""; }; - A52FFF582CAA4FF1000C6A5B /* Fullscreen.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Fullscreen.swift; sourceTree = ""; }; - A52FFF5A2CAA54A8000C6A5B /* FullscreenMode+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "FullscreenMode+Extension.swift"; sourceTree = ""; }; - A52FFF5C2CAB4D05000C6A5B /* NSScreen+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "NSScreen+Extension.swift"; sourceTree = ""; }; - A5333E152B59DE8E008AEFF7 /* SurfaceView_UIKit.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SurfaceView_UIKit.swift; sourceTree = ""; }; - A5333E1B2B5A1CE3008AEFF7 /* CrossKit.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CrossKit.swift; sourceTree = ""; }; - A5333E212B5A2128008AEFF7 /* SurfaceView_AppKit.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SurfaceView_AppKit.swift; sourceTree = ""; }; - A53426342A7DA53D00EBB7A2 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; - A535B9D9299C569B0017E2E4 /* ErrorView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ErrorView.swift; sourceTree = ""; }; - A53A297A2DB2E49400B6E02C /* CommandPalette.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CommandPalette.swift; sourceTree = ""; }; - A53A297E2DB4480A00B6E02C /* EventModifiers+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "EventModifiers+Extension.swift"; sourceTree = ""; }; - A53A29802DB44A5E00B6E02C /* KeyboardShortcut+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "KeyboardShortcut+Extension.swift"; sourceTree = ""; }; - A53A29872DB69D2C00B6E02C /* TerminalCommandPalette.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TerminalCommandPalette.swift; sourceTree = ""; }; - A53A6C022CCC1B7D00943E98 /* Ghostty.Action.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Ghostty.Action.swift; sourceTree = ""; }; - A53D0C932B53B43700305CE6 /* iOSApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = iOSApp.swift; sourceTree = ""; }; - A53D0C992B543F3B00305CE6 /* Ghostty.App.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Ghostty.App.swift; sourceTree = ""; }; A546F1132D7B68D7003B11A0 /* locale */ = {isa = PBXFileReference; lastKnownFileType = folder; name = locale; path = "../zig-out/share/locale"; sourceTree = ""; }; - A54B0CE82D0CECD100CBEFF8 /* ColorizedGhosttyIconView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ColorizedGhosttyIconView.swift; sourceTree = ""; }; - A54B0CEA2D0CFB4A00CBEFF8 /* NSImage+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "NSImage+Extension.swift"; sourceTree = ""; }; - A54B0CEC2D0CFB7300CBEFF8 /* ColorizedGhosttyIcon.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ColorizedGhosttyIcon.swift; sourceTree = ""; }; - A54B0CEE2D0D2E2400CBEFF8 /* ColorizedGhosttyIconImage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ColorizedGhosttyIconImage.swift; sourceTree = ""; }; - A54D786B2CA79788001B19B1 /* BaseTerminalController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BaseTerminalController.swift; sourceTree = ""; }; A54F45F32E1F047A0046BD5C /* GhosttyTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = GhosttyTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; A553F4122E06EB1600257779 /* Ghostty.icon */ = {isa = PBXFileReference; lastKnownFileType = folder.iconcomposer.icon; name = Ghostty.icon; path = ../images/Ghostty.icon; sourceTree = SOURCE_ROOT; }; - A5593FDE2DF8D57100B47B10 /* TerminalWindow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TerminalWindow.swift; sourceTree = ""; }; - A5593FE02DF8D73400B47B10 /* HiddenTitlebarTerminalWindow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HiddenTitlebarTerminalWindow.swift; sourceTree = ""; }; - A5593FE22DF8D78600B47B10 /* TerminalHiddenTitlebar.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = TerminalHiddenTitlebar.xib; sourceTree = ""; }; - A5593FE42DF8DE3000B47B10 /* TerminalTabsTitlebarVentura.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = TerminalTabsTitlebarVentura.xib; sourceTree = ""; }; - A5593FE62DF927CC00B47B10 /* TransparentTitlebarTerminalWindow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TransparentTitlebarTerminalWindow.swift; sourceTree = ""; }; - A5593FE82DF927DF00B47B10 /* TerminalTransparentTitlebar.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = TerminalTransparentTitlebar.xib; sourceTree = ""; }; - A55B7BB729B6F53A0055DE60 /* Package.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Package.swift; sourceTree = ""; }; - A55B7BBB29B6FC330055DE60 /* SurfaceView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SurfaceView.swift; sourceTree = ""; }; A56B880A2A840447007A0E29 /* Carbon.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Carbon.framework; path = System/Library/Frameworks/Carbon.framework; sourceTree = SDKROOT; }; - A56D58852ACDDB4100508D2C /* Ghostty.Shell.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Ghostty.Shell.swift; sourceTree = ""; }; - A56D58882ACDE6CA00508D2C /* ServiceProvider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ServiceProvider.swift; sourceTree = ""; }; A571AB1C2A206FC600248498 /* Ghostty-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist; path = "Ghostty-Info.plist"; sourceTree = ""; }; - A57D79262C9C8798001D522E /* SecureInput.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecureInput.swift; sourceTree = ""; }; A586167B2B7703CC009BDB1D /* fish */ = {isa = PBXFileReference; lastKnownFileType = folder; name = fish; path = "../zig-out/share/fish"; sourceTree = ""; }; - A586365E2DEE6C2100E04A10 /* SplitTree.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SplitTree.swift; sourceTree = ""; }; - A58636652DEF963F00E04A10 /* TerminalSplitTreeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TerminalSplitTreeView.swift; sourceTree = ""; }; - A586366A2DF0A98900E04A10 /* Array+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Array+Extension.swift"; sourceTree = ""; }; - A586366E2DF25D8300E04A10 /* Duration+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "Duration+Extension.swift"; sourceTree = ""; }; - A58636702DF298F700E04A10 /* ExpiringUndoManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExpiringUndoManager.swift; sourceTree = ""; }; - A58636722DF4813000E04A10 /* UndoManager+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "UndoManager+Extension.swift"; sourceTree = ""; }; - A5874D982DAD751A00E83852 /* CGS.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CGS.swift; sourceTree = ""; }; - A5874D9C2DAD785F00E83852 /* NSWindow+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "NSWindow+Extension.swift"; sourceTree = ""; }; - A59444F629A2ED5200725BBA /* SettingsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsView.swift; sourceTree = ""; }; - A59630962AEE163600D64628 /* HostingWindow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HostingWindow.swift; sourceTree = ""; }; - A59630992AEE1C6400D64628 /* Terminal.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = Terminal.xib; sourceTree = ""; }; - A596309B2AEE1C9E00D64628 /* TerminalController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TerminalController.swift; sourceTree = ""; }; - A596309D2AEE1D6C00D64628 /* TerminalView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TerminalView.swift; sourceTree = ""; }; - A5985CD62C320C4500C57AD3 /* String+Extension.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "String+Extension.swift"; sourceTree = ""; }; A5985CE52C33060F00C57AD3 /* man */ = {isa = PBXFileReference; lastKnownFileType = folder; name = man; path = "../zig-out/share/man"; sourceTree = ""; }; - A599CDAF2CF103F20049FA26 /* NSAppearance+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "NSAppearance+Extension.swift"; sourceTree = ""; }; - A59FB5CE2AE0DB50009128F3 /* InspectorView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InspectorView.swift; sourceTree = ""; }; - A59FB5D02AE0DEA7009128F3 /* MetalView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MetalView.swift; sourceTree = ""; }; A5A1F8842A489D6800D1E8BC /* terminfo */ = {isa = PBXFileReference; lastKnownFileType = folder; name = terminfo; path = "../zig-out/share/terminfo"; sourceTree = ""; }; - A5A2A3C92D4445E20033CF96 /* Dock.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Dock.swift; sourceTree = ""; }; - A5A2A3CB2D444AB80033CF96 /* NSApplication+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "NSApplication+Extension.swift"; sourceTree = ""; }; - A5A6F7292CC41B8700B232A5 /* AppInfo.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppInfo.swift; sourceTree = ""; }; - A5AEB1642D5BE7BF00513529 /* LastWindowPosition.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LastWindowPosition.swift; sourceTree = ""; }; A5B30531299BEAAA0047F10C /* Ghostty.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Ghostty.app; sourceTree = BUILT_PRODUCTS_DIR; }; 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 = ""; }; - A5B4EA842DFE69140022C3A2 /* NSMenuItem+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "NSMenuItem+Extension.swift"; sourceTree = ""; }; - A5BB78B82DF9D8CE009AC3FA /* QuickTerminalSize.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = QuickTerminalSize.swift; sourceTree = ""; }; - A5CA378B2D2A4DE800931030 /* KeyboardLayout.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KeyboardLayout.swift; sourceTree = ""; }; - A5CA378D2D31D6C100931030 /* Weak.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Weak.swift; sourceTree = ""; }; - A5CBD0552C9E65A50017A1AE /* DraggableWindowView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DraggableWindowView.swift; sourceTree = ""; }; - A5CBD0572C9F30860017A1AE /* Cursor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Cursor.swift; sourceTree = ""; }; - A5CBD05B2CA0C5C70017A1AE /* QuickTerminal.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = QuickTerminal.xib; sourceTree = ""; }; - A5CBD05D2CA0C5E70017A1AE /* QuickTerminalController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = QuickTerminalController.swift; sourceTree = ""; }; - A5CBD05F2CA0C9080017A1AE /* QuickTerminalWindow.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = QuickTerminalWindow.swift; sourceTree = ""; }; - A5CBD0632CA122E70017A1AE /* QuickTerminalPosition.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = QuickTerminalPosition.swift; sourceTree = ""; }; - A5CBD06A2CA322320017A1AE /* GlobalEventTap.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GlobalEventTap.swift; sourceTree = ""; }; - A5CC36122C9CD729004D6760 /* SecureInputOverlay.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SecureInputOverlay.swift; sourceTree = ""; }; - A5CC36142C9CDA03004D6760 /* View+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "View+Extension.swift"; sourceTree = ""; }; - A5CDF1902AAF9A5800513312 /* ConfigurationErrors.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ConfigurationErrors.xib; sourceTree = ""; }; - A5CDF1922AAF9E0800513312 /* ConfigurationErrorsController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ConfigurationErrorsController.swift; sourceTree = ""; }; - A5CDF1942AAFA19600513312 /* ConfigurationErrorsView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ConfigurationErrorsView.swift; sourceTree = ""; }; - A5CEAFDB29B8009000646FDA /* SplitView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SplitView.swift; sourceTree = ""; }; - A5CEAFDD29B8058B00646FDA /* SplitView.Divider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SplitView.Divider.swift; sourceTree = ""; }; - A5CEAFFE29C2410700646FDA /* Backport.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Backport.swift; sourceTree = ""; }; - A5CF66D32D289CEA00139794 /* NSEvent+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "NSEvent+Extension.swift"; sourceTree = ""; }; - A5CF66D62D29DDB100139794 /* Ghostty.Event.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Ghostty.Event.swift; sourceTree = ""; }; - A5D0AF3A2B36A1DE00D21823 /* TerminalRestorable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TerminalRestorable.swift; sourceTree = ""; }; - A5D0AF3C2B37804400D21823 /* CodableBridge.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CodableBridge.swift; sourceTree = ""; }; A5D4499D2B53AE7B000F5B83 /* Ghostty-iOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = "Ghostty-iOS.app"; sourceTree = BUILT_PRODUCTS_DIR; }; A5D495A1299BEC7E00DD1313 /* GhosttyKit.xcframework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.xcframework; path = GhosttyKit.xcframework; sourceTree = ""; }; - A5E112922AF73E6E00C6E0C2 /* ClipboardConfirmation.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = ClipboardConfirmation.xib; sourceTree = ""; }; - A5E112942AF73E8A00C6E0C2 /* ClipboardConfirmationController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ClipboardConfirmationController.swift; sourceTree = ""; }; - A5E112962AF7401B00C6E0C2 /* ClipboardConfirmationView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ClipboardConfirmationView.swift; sourceTree = ""; }; - A5E408292E022E9B0035FEAC /* TabGroupCloseCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TabGroupCloseCoordinator.swift; sourceTree = ""; }; - A5E4082D2E0237410035FEAC /* NewTerminalIntent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NewTerminalIntent.swift; sourceTree = ""; }; - A5E4082F2E0271320035FEAC /* GhosttyIntentError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GhosttyIntentError.swift; sourceTree = ""; }; - A5E408312E02FEDC0035FEAC /* TerminalEntity.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TerminalEntity.swift; sourceTree = ""; }; - A5E408332E03200F0035FEAC /* GetTerminalDetailsIntent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GetTerminalDetailsIntent.swift; sourceTree = ""; }; - A5E408372E03C7D80035FEAC /* Ghostty.Surface.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Ghostty.Surface.swift; sourceTree = ""; }; - A5E408392E0449BB0035FEAC /* Ghostty.Command.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Ghostty.Command.swift; sourceTree = ""; }; - A5E4083B2E044DB40035FEAC /* Ghostty.Error.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Ghostty.Error.swift; sourceTree = ""; }; - A5E4083F2E04532A0035FEAC /* CommandEntity.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CommandEntity.swift; sourceTree = ""; }; - A5E408422E047D060035FEAC /* CommandPaletteIntent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CommandPaletteIntent.swift; sourceTree = ""; }; - A5E408442E0483F80035FEAC /* KeybindIntent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = KeybindIntent.swift; sourceTree = ""; }; - A5E408462E0485270035FEAC /* InputIntent.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InputIntent.swift; sourceTree = ""; }; - A5F9A1F12E7C7301005AFACE /* SurfaceProgressBar.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SurfaceProgressBar.swift; sourceTree = ""; }; - A5FEB2FF2ABB69450068369E /* main.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = main.swift; sourceTree = ""; }; - AEE8B3442B9AA39600260C5E /* NSPasteboard+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "NSPasteboard+Extension.swift"; sourceTree = ""; }; - C159E81C2B66A06B00FDFE9C /* OSColor+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "OSColor+Extension.swift"; sourceTree = ""; }; - C1F26EA62B738B9900404083 /* NSView+Extension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = "NSView+Extension.swift"; sourceTree = ""; }; - C1F26EE72B76CBFC00404083 /* VibrantLayer.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = VibrantLayer.h; sourceTree = ""; }; - C1F26EE82B76CBFC00404083 /* VibrantLayer.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = VibrantLayer.m; sourceTree = ""; }; - C1F26EEA2B76CC2400404083 /* ghostty-bridging-header.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "ghostty-bridging-header.h"; sourceTree = ""; }; - CFBB5FE92D231E5000FD62EE /* QuickTerminalSpaceBehavior.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = QuickTerminalSpaceBehavior.swift; sourceTree = ""; }; FC5218F92D10FFC7004C93E0 /* zsh */ = {isa = PBXFileReference; lastKnownFileType = folder; name = zsh; path = "../zig-out/share/zsh"; sourceTree = ""; }; FC9ABA9B2D0F538D0020D4C8 /* bash-completion */ = {isa = PBXFileReference; lastKnownFileType = folder; name = "bash-completion"; path = "../zig-out/share/bash-completion"; sourceTree = ""; }; /* End PBXFileReference section */ +/* Begin PBXFileSystemSynchronizedBuildFileExceptionSet section */ + 81F82CB02E8281F5001EDFA7 /* PBXFileSystemSynchronizedBuildFileExceptionSet */ = { + isa = PBXFileSystemSynchronizedBuildFileExceptionSet; + membershipExceptions = ( + App/macOS/AppDelegate.swift, + App/macOS/main.swift, + App/macOS/MainMenu.xib, + Features/About/About.xib, + Features/About/AboutController.swift, + Features/About/AboutView.swift, + "Features/App Intents/CloseTerminalIntent.swift", + "Features/App Intents/CommandPaletteIntent.swift", + "Features/App Intents/Entities/CommandEntity.swift", + "Features/App Intents/Entities/TerminalEntity.swift", + "Features/App Intents/GetTerminalDetailsIntent.swift", + "Features/App Intents/GhosttyIntentError.swift", + "Features/App Intents/InputIntent.swift", + "Features/App Intents/IntentPermission.swift", + "Features/App Intents/KeybindIntent.swift", + "Features/App Intents/NewTerminalIntent.swift", + "Features/App Intents/QuickTerminalIntent.swift", + Features/ClipboardConfirmation/ClipboardConfirmation.xib, + Features/ClipboardConfirmation/ClipboardConfirmationController.swift, + Features/ClipboardConfirmation/ClipboardConfirmationView.swift, + "Features/Colorized Ghostty Icon/ColorizedGhosttyIcon.swift", + "Features/Colorized Ghostty Icon/ColorizedGhosttyIconImage.swift", + "Features/Colorized Ghostty Icon/ColorizedGhosttyIconView.swift", + "Features/Command Palette/CommandPalette.swift", + "Features/Command Palette/TerminalCommandPalette.swift", + "Features/Global Keybinds/GlobalEventTap.swift", + Features/QuickTerminal/QuickTerminal.xib, + Features/QuickTerminal/QuickTerminalController.swift, + Features/QuickTerminal/QuickTerminalPosition.swift, + Features/QuickTerminal/QuickTerminalScreen.swift, + Features/QuickTerminal/QuickTerminalSize.swift, + Features/QuickTerminal/QuickTerminalSpaceBehavior.swift, + Features/QuickTerminal/QuickTerminalWindow.swift, + "Features/Secure Input/SecureInput.swift", + "Features/Secure Input/SecureInputOverlay.swift", + Features/Services/ServiceProvider.swift, + Features/Settings/ConfigurationErrors.xib, + Features/Settings/ConfigurationErrorsController.swift, + Features/Settings/ConfigurationErrorsView.swift, + Features/Settings/SettingsView.swift, + Features/Splits/SplitTree.swift, + Features/Splits/SplitView.Divider.swift, + Features/Splits/SplitView.swift, + Features/Splits/TerminalSplitTreeView.swift, + Features/Terminal/BaseTerminalController.swift, + Features/Terminal/ErrorView.swift, + Features/Terminal/TerminalController.swift, + Features/Terminal/TerminalRestorable.swift, + Features/Terminal/TerminalView.swift, + "Features/Terminal/Window Styles/HiddenTitlebarTerminalWindow.swift", + "Features/Terminal/Window Styles/Terminal.xib", + "Features/Terminal/Window Styles/TerminalHiddenTitlebar.xib", + "Features/Terminal/Window Styles/TerminalTabsTitlebarTahoe.xib", + "Features/Terminal/Window Styles/TerminalTabsTitlebarVentura.xib", + "Features/Terminal/Window Styles/TerminalTransparentTitlebar.xib", + "Features/Terminal/Window Styles/TerminalWindow.swift", + "Features/Terminal/Window Styles/TitlebarTabsTahoeTerminalWindow.swift", + "Features/Terminal/Window Styles/TitlebarTabsVenturaTerminalWindow.swift", + "Features/Terminal/Window Styles/TransparentTitlebarTerminalWindow.swift", + Features/Update/UpdateDelegate.swift, + "Ghostty/FullscreenMode+Extension.swift", + Ghostty/Ghostty.Command.swift, + Ghostty/Ghostty.Error.swift, + Ghostty/Ghostty.Event.swift, + Ghostty/Ghostty.Input.swift, + Ghostty/Ghostty.Surface.swift, + Ghostty/InspectorView.swift, + "Ghostty/NSEvent+Extension.swift", + Ghostty/SurfaceView_AppKit.swift, + Helpers/AppInfo.swift, + Helpers/CodableBridge.swift, + Helpers/Cursor.swift, + Helpers/DraggableWindowView.swift, + Helpers/ExpiringUndoManager.swift, + "Helpers/Extensions/Double+Extension.swift", + "Helpers/Extensions/EventModifiers+Extension.swift", + "Helpers/Extensions/FileHandle+Extension.swift", + "Helpers/Extensions/KeyboardShortcut+Extension.swift", + "Helpers/Extensions/NSAppearance+Extension.swift", + "Helpers/Extensions/NSApplication+Extension.swift", + "Helpers/Extensions/NSImage+Extension.swift", + "Helpers/Extensions/NSMenuItem+Extension.swift", + "Helpers/Extensions/NSPasteboard+Extension.swift", + "Helpers/Extensions/NSScreen+Extension.swift", + "Helpers/Extensions/NSView+Extension.swift", + "Helpers/Extensions/NSWindow+Extension.swift", + "Helpers/Extensions/NSWorkspace+Extension.swift", + "Helpers/Extensions/UndoManager+Extension.swift", + "Helpers/Extensions/View+Extension.swift", + Helpers/Fullscreen.swift, + Helpers/HostingWindow.swift, + Helpers/KeyboardLayout.swift, + Helpers/LastWindowPosition.swift, + Helpers/MetalView.swift, + Helpers/PermissionRequest.swift, + Helpers/Private/CGS.swift, + Helpers/Private/Dock.swift, + Helpers/TabGroupCloseCoordinator.swift, + Helpers/VibrantLayer.m, + Helpers/Weak.swift, + ); + target = A5D4499C2B53AE7B000F5B83 /* Ghostty-iOS */; + }; + 81F82CB12E8281F9001EDFA7 /* PBXFileSystemSynchronizedBuildFileExceptionSet */ = { + isa = PBXFileSystemSynchronizedBuildFileExceptionSet; + membershipExceptions = ( + App/iOS/iOSApp.swift, + Ghostty/SurfaceView_UIKit.swift, + ); + target = A5B30530299BEAAA0047F10C /* Ghostty */; + }; +/* End PBXFileSystemSynchronizedBuildFileExceptionSet section */ + /* Begin PBXFileSystemSynchronizedRootGroup section */ + 81F82BC72E82815D001EDFA7 /* Sources */ = {isa = PBXFileSystemSynchronizedRootGroup; exceptions = (81F82CB12E8281F9001EDFA7 /* PBXFileSystemSynchronizedBuildFileExceptionSet */, 81F82CB02E8281F5001EDFA7 /* PBXFileSystemSynchronizedBuildFileExceptionSet */, ); explicitFileTypes = {}; explicitFolders = (); path = Sources; sourceTree = ""; }; A54F45F42E1F047A0046BD5C /* Tests */ = {isa = PBXFileSystemSynchronizedRootGroup; explicitFileTypes = {}; explicitFolders = (); path = Tests; sourceTree = ""; }; /* End PBXFileSystemSynchronizedRootGroup section */ @@ -341,257 +212,6 @@ /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ - A51BFC1C2B2FB5AB00E92F16 /* About */ = { - isa = PBXGroup; - children = ( - A51BFC1D2B2FB5CE00E92F16 /* About.xib */, - A51BFC1F2B2FB64F00E92F16 /* AboutController.swift */, - A51BFC212B2FB6B400E92F16 /* AboutView.swift */, - ); - path = About; - sourceTree = ""; - }; - A51BFC292B30F69F00E92F16 /* Update */ = { - isa = PBXGroup; - children = ( - A51BFC2A2B30F6BE00E92F16 /* UpdateDelegate.swift */, - ); - path = Update; - sourceTree = ""; - }; - A53426362A7DC53000EBB7A2 /* Features */ = { - isa = PBXGroup; - children = ( - A5CBD0672CA2704E0017A1AE /* Global Keybinds */, - A56D58872ACDE6BE00508D2C /* Services */, - A59630982AEE1C4400D64628 /* Terminal */, - A5CBD05A2CA0C5910017A1AE /* QuickTerminal */, - A5E4082C2E0237270035FEAC /* App Intents */, - A5E112912AF73E4D00C6E0C2 /* ClipboardConfirmation */, - A57D79252C9C8782001D522E /* Secure Input */, - A58636622DEF955100E04A10 /* Splits */, - A53A29742DB2E04900B6E02C /* Command Palette */, - A534263E2A7DCC5800EBB7A2 /* Settings */, - A51BFC1C2B2FB5AB00E92F16 /* About */, - A54B0CE72D0CEC9800CBEFF8 /* Colorized Ghostty Icon */, - A51BFC292B30F69F00E92F16 /* Update */, - ); - path = Features; - sourceTree = ""; - }; - A534263D2A7DCBB000EBB7A2 /* Helpers */ = { - isa = PBXGroup; - children = ( - A58636692DF0A98100E04A10 /* Extensions */, - A5874D9B2DAD781100E83852 /* Private */, - A5A6F7292CC41B8700B232A5 /* AppInfo.swift */, - A5AEB1642D5BE7BF00513529 /* LastWindowPosition.swift */, - A5CEAFFE29C2410700646FDA /* Backport.swift */, - A5333E1B2B5A1CE3008AEFF7 /* CrossKit.swift */, - A5CBD0572C9F30860017A1AE /* Cursor.swift */, - A5D0AF3C2B37804400D21823 /* CodableBridge.swift */, - A5CBD0552C9E65A50017A1AE /* DraggableWindowView.swift */, - A58636702DF298F700E04A10 /* ExpiringUndoManager.swift */, - A52FFF582CAA4FF1000C6A5B /* Fullscreen.swift */, - A59630962AEE163600D64628 /* HostingWindow.swift */, - A5CA378B2D2A4DE800931030 /* KeyboardLayout.swift */, - A59FB5D02AE0DEA7009128F3 /* MetalView.swift */, - A51194162E05D95E007258CC /* PermissionRequest.swift */, - A5E408292E022E9B0035FEAC /* TabGroupCloseCoordinator.swift */, - A5CA378D2D31D6C100931030 /* Weak.swift */, - C1F26EE72B76CBFC00404083 /* VibrantLayer.h */, - C1F26EE82B76CBFC00404083 /* VibrantLayer.m */, - ); - path = Helpers; - sourceTree = ""; - }; - A534263E2A7DCC5800EBB7A2 /* Settings */ = { - isa = PBXGroup; - children = ( - A59444F629A2ED5200725BBA /* SettingsView.swift */, - A5CDF1902AAF9A5800513312 /* ConfigurationErrors.xib */, - A5CDF1922AAF9E0800513312 /* ConfigurationErrorsController.swift */, - A5CDF1942AAFA19600513312 /* ConfigurationErrorsView.swift */, - ); - path = Settings; - sourceTree = ""; - }; - A53A29742DB2E04900B6E02C /* Command Palette */ = { - isa = PBXGroup; - children = ( - A53A297A2DB2E49400B6E02C /* CommandPalette.swift */, - A53A29872DB69D2C00B6E02C /* TerminalCommandPalette.swift */, - ); - path = "Command Palette"; - sourceTree = ""; - }; - A53D0C912B53B41900305CE6 /* App */ = { - isa = PBXGroup; - children = ( - A53D0C962B53B57D00305CE6 /* macOS */, - A53D0C922B53B42000305CE6 /* iOS */, - ); - path = App; - sourceTree = ""; - }; - A53D0C922B53B42000305CE6 /* iOS */ = { - isa = PBXGroup; - children = ( - A53D0C932B53B43700305CE6 /* iOSApp.swift */, - ); - path = iOS; - sourceTree = ""; - }; - A53D0C962B53B57D00305CE6 /* macOS */ = { - isa = PBXGroup; - children = ( - A5FEB2FF2ABB69450068369E /* main.swift */, - A53426342A7DA53D00EBB7A2 /* AppDelegate.swift */, - 857F63802A5E64F200CA4815 /* MainMenu.xib */, - C1F26EEA2B76CC2400404083 /* ghostty-bridging-header.h */, - ); - path = macOS; - sourceTree = ""; - }; - A54B0CE72D0CEC9800CBEFF8 /* Colorized Ghostty Icon */ = { - isa = PBXGroup; - children = ( - A54B0CEC2D0CFB7300CBEFF8 /* ColorizedGhosttyIcon.swift */, - A54B0CEE2D0D2E2400CBEFF8 /* ColorizedGhosttyIconImage.swift */, - A54B0CE82D0CECD100CBEFF8 /* ColorizedGhosttyIconView.swift */, - ); - path = "Colorized Ghostty Icon"; - sourceTree = ""; - }; - A54CD6ED299BEB14008C95BB /* Sources */ = { - isa = PBXGroup; - children = ( - A53D0C912B53B41900305CE6 /* App */, - A53426362A7DC53000EBB7A2 /* Features */, - A534263D2A7DCBB000EBB7A2 /* Helpers */, - A55B7BB429B6F4410055DE60 /* Ghostty */, - ); - path = Sources; - sourceTree = ""; - }; - A5593FDD2DF8D56000B47B10 /* Window Styles */ = { - isa = PBXGroup; - children = ( - A59630992AEE1C6400D64628 /* Terminal.xib */, - A5593FE22DF8D78600B47B10 /* TerminalHiddenTitlebar.xib */, - A51544FF2DFB112E009E85D8 /* TerminalTabsTitlebarTahoe.xib */, - A5593FE42DF8DE3000B47B10 /* TerminalTabsTitlebarVentura.xib */, - A5593FE82DF927DF00B47B10 /* TerminalTransparentTitlebar.xib */, - A5593FDE2DF8D57100B47B10 /* TerminalWindow.swift */, - A5593FE02DF8D73400B47B10 /* HiddenTitlebarTerminalWindow.swift */, - A51B78462AF4B58B00F3EDB9 /* TitlebarTabsVenturaTerminalWindow.swift */, - A51544FD2DFB1110009E85D8 /* TitlebarTabsTahoeTerminalWindow.swift */, - A5593FE62DF927CC00B47B10 /* TransparentTitlebarTerminalWindow.swift */, - ); - path = "Window Styles"; - sourceTree = ""; - }; - A55B7BB429B6F4410055DE60 /* Ghostty */ = { - isa = PBXGroup; - children = ( - A55B7BB729B6F53A0055DE60 /* Package.swift */, - A5F9A1F12E7C7301005AFACE /* SurfaceProgressBar.swift */, - A55B7BBB29B6FC330055DE60 /* SurfaceView.swift */, - A5333E212B5A2128008AEFF7 /* SurfaceView_AppKit.swift */, - A5333E152B59DE8E008AEFF7 /* SurfaceView_UIKit.swift */, - A59FB5CE2AE0DB50009128F3 /* InspectorView.swift */, - A53D0C992B543F3B00305CE6 /* Ghostty.App.swift */, - A5E408392E0449BB0035FEAC /* Ghostty.Command.swift */, - A514C8D52B54A16400493A16 /* Ghostty.Config.swift */, - A53A6C022CCC1B7D00943E98 /* Ghostty.Action.swift */, - A5E4083B2E044DB40035FEAC /* Ghostty.Error.swift */, - A5CF66D62D29DDB100139794 /* Ghostty.Event.swift */, - A5278A9A2AA05B2600CD3039 /* Ghostty.Input.swift */, - A56D58852ACDDB4100508D2C /* Ghostty.Shell.swift */, - A5E408372E03C7D80035FEAC /* Ghostty.Surface.swift */, - A52FFF5A2CAA54A8000C6A5B /* FullscreenMode+Extension.swift */, - A5CF66D32D289CEA00139794 /* NSEvent+Extension.swift */, - ); - path = Ghostty; - sourceTree = ""; - }; - A56D58872ACDE6BE00508D2C /* Services */ = { - isa = PBXGroup; - children = ( - A56D58882ACDE6CA00508D2C /* ServiceProvider.swift */, - ); - path = Services; - sourceTree = ""; - }; - A57D79252C9C8782001D522E /* Secure Input */ = { - isa = PBXGroup; - children = ( - A57D79262C9C8798001D522E /* SecureInput.swift */, - A5CC36122C9CD729004D6760 /* SecureInputOverlay.swift */, - ); - path = "Secure Input"; - sourceTree = ""; - }; - A58636622DEF955100E04A10 /* Splits */ = { - isa = PBXGroup; - children = ( - A586365E2DEE6C2100E04A10 /* SplitTree.swift */, - A58636652DEF963F00E04A10 /* TerminalSplitTreeView.swift */, - A5CEAFDB29B8009000646FDA /* SplitView.swift */, - A5CEAFDD29B8058B00646FDA /* SplitView.Divider.swift */, - ); - path = Splits; - sourceTree = ""; - }; - A58636692DF0A98100E04A10 /* Extensions */ = { - isa = PBXGroup; - children = ( - A586366A2DF0A98900E04A10 /* Array+Extension.swift */, - A50297342DFA0F3300B4E924 /* Double+Extension.swift */, - A586366E2DF25D8300E04A10 /* Duration+Extension.swift */, - A505D21C2E1A2F9E0018808F /* FileHandle+Extension.swift */, - A53A29802DB44A5E00B6E02C /* KeyboardShortcut+Extension.swift */, - A53A297E2DB4480A00B6E02C /* EventModifiers+Extension.swift */, - A51194122E05D003007258CC /* Optional+Extension.swift */, - C159E81C2B66A06B00FDFE9C /* OSColor+Extension.swift */, - A599CDAF2CF103F20049FA26 /* NSAppearance+Extension.swift */, - A5A2A3CB2D444AB80033CF96 /* NSApplication+Extension.swift */, - A54B0CEA2D0CFB4A00CBEFF8 /* NSImage+Extension.swift */, - A5B4EA842DFE69140022C3A2 /* NSMenuItem+Extension.swift */, - A52FFF5C2CAB4D05000C6A5B /* NSScreen+Extension.swift */, - AEE8B3442B9AA39600260C5E /* NSPasteboard+Extension.swift */, - C1F26EA62B738B9900404083 /* NSView+Extension.swift */, - A5874D9C2DAD785F00E83852 /* NSWindow+Extension.swift */, - A505D21E2E1B6DDC0018808F /* NSWorkspace+Extension.swift */, - A5985CD62C320C4500C57AD3 /* String+Extension.swift */, - A58636722DF4813000E04A10 /* UndoManager+Extension.swift */, - A5CC36142C9CDA03004D6760 /* View+Extension.swift */, - ); - path = Extensions; - sourceTree = ""; - }; - A5874D9B2DAD781100E83852 /* Private */ = { - isa = PBXGroup; - children = ( - A5874D982DAD751A00E83852 /* CGS.swift */, - A5A2A3C92D4445E20033CF96 /* Dock.swift */, - ); - path = Private; - sourceTree = ""; - }; - A59630982AEE1C4400D64628 /* Terminal */ = { - isa = PBXGroup; - children = ( - A5593FDD2DF8D56000B47B10 /* Window Styles */, - A596309B2AEE1C9E00D64628 /* TerminalController.swift */, - A5D0AF3A2B36A1DE00D21823 /* TerminalRestorable.swift */, - A596309D2AEE1D6C00D64628 /* TerminalView.swift */, - A535B9D9299C569B0017E2E4 /* ErrorView.swift */, - A54D786B2CA79788001B19B1 /* BaseTerminalController.swift */, - ); - path = Terminal; - sourceTree = ""; - }; A5A1F8862A489D7400D1E8BC /* Resources */ = { isa = PBXGroup; children = ( @@ -618,7 +238,7 @@ A5B3053D299BEAAB0047F10C /* Ghostty.entitlements */, A51BFC282B30F26D00E92F16 /* GhosttyDebug.entitlements */, 3B39CAA42B33949B00DABEB8 /* GhosttyReleaseLocal.entitlements */, - A54CD6ED299BEB14008C95BB /* Sources */, + 81F82BC72E82815D001EDFA7 /* Sources */, A54F45F42E1F047A0046BD5C /* Tests */, A5D495A3299BECBA00DD1313 /* Frameworks */, A5A1F8862A489D7400D1E8BC /* Resources */, @@ -636,28 +256,6 @@ name = Products; sourceTree = ""; }; - A5CBD05A2CA0C5910017A1AE /* QuickTerminal */ = { - isa = PBXGroup; - children = ( - A5CBD05B2CA0C5C70017A1AE /* QuickTerminal.xib */, - A5CBD05D2CA0C5E70017A1AE /* QuickTerminalController.swift */, - CFBB5FE92D231E5000FD62EE /* QuickTerminalSpaceBehavior.swift */, - A5CBD0632CA122E70017A1AE /* QuickTerminalPosition.swift */, - A52FFF562CA90481000C6A5B /* QuickTerminalScreen.swift */, - A5BB78B82DF9D8CE009AC3FA /* QuickTerminalSize.swift */, - A5CBD05F2CA0C9080017A1AE /* QuickTerminalWindow.swift */, - ); - path = QuickTerminal; - sourceTree = ""; - }; - A5CBD0672CA2704E0017A1AE /* Global Keybinds */ = { - isa = PBXGroup; - children = ( - A5CBD06A2CA322320017A1AE /* GlobalEventTap.swift */, - ); - path = "Global Keybinds"; - sourceTree = ""; - }; A5D495A3299BECBA00DD1313 /* Frameworks */ = { isa = PBXGroup; children = ( @@ -667,42 +265,6 @@ name = Frameworks; sourceTree = ""; }; - A5E112912AF73E4D00C6E0C2 /* ClipboardConfirmation */ = { - isa = PBXGroup; - children = ( - A5E112922AF73E6E00C6E0C2 /* ClipboardConfirmation.xib */, - A5E112942AF73E8A00C6E0C2 /* ClipboardConfirmationController.swift */, - A5E112962AF7401B00C6E0C2 /* ClipboardConfirmationView.swift */, - ); - path = ClipboardConfirmation; - sourceTree = ""; - }; - A5E4082C2E0237270035FEAC /* App Intents */ = { - isa = PBXGroup; - children = ( - A5E408412E0453370035FEAC /* Entities */, - A511940E2E050590007258CC /* CloseTerminalIntent.swift */, - A5E4082D2E0237410035FEAC /* NewTerminalIntent.swift */, - A5E408332E03200F0035FEAC /* GetTerminalDetailsIntent.swift */, - A51194102E05A480007258CC /* QuickTerminalIntent.swift */, - A5E408422E047D060035FEAC /* CommandPaletteIntent.swift */, - A5E408462E0485270035FEAC /* InputIntent.swift */, - A5E408442E0483F80035FEAC /* KeybindIntent.swift */, - A5E4082F2E0271320035FEAC /* GhosttyIntentError.swift */, - A51194182E05DFBB007258CC /* IntentPermission.swift */, - ); - path = "App Intents"; - sourceTree = ""; - }; - A5E408412E0453370035FEAC /* Entities */ = { - isa = PBXGroup; - children = ( - A5E408312E02FEDC0035FEAC /* TerminalEntity.swift */, - A5E4083F2E04532A0035FEAC /* CommandEntity.swift */, - ); - path = Entities; - sourceTree = ""; - }; /* End PBXGroup section */ /* Begin PBXNativeTarget section */ @@ -741,6 +303,9 @@ ); dependencies = ( ); + fileSystemSynchronizedGroups = ( + 81F82BC72E82815D001EDFA7 /* Sources */, + ); name = Ghostty; packageProductDependencies = ( A51BFC262B30F1B800E92F16 /* Sparkle */, @@ -761,6 +326,9 @@ ); dependencies = ( ); + fileSystemSynchronizedGroups = ( + 81F82BC72E82815D001EDFA7 /* Sources */, + ); name = "Ghostty-iOS"; productName = "Ghostty-iOS"; productReference = A5D4499D2B53AE7B000F5B83 /* Ghostty-iOS.app */; @@ -826,11 +394,9 @@ files = ( FC9ABA9C2D0F53F80020D4C8 /* bash-completion in Resources */, A553F4142E06EB1600257779 /* Ghostty.icon in Resources */, - A5593FE52DF8DE3000B47B10 /* TerminalTabsTitlebarVentura.xib in Resources */, 29C15B1D2CDC3B2900520DD4 /* bat in Resources */, A586167C2B7703CC009BDB1D /* fish in Resources */, 55154BE02B33911F001622DC /* ghostty in Resources */, - A5593FE32DF8D78600B47B10 /* TerminalHiddenTitlebar.xib in Resources */, A546F1142D7B68D7003B11A0 /* locale in Resources */, A5985CE62C33060F00C57AD3 /* man in Resources */, 9351BE8E3D22937F003B3499 /* nvim in Resources */, @@ -838,14 +404,6 @@ 552964E62B34A9B400030505 /* vim in Resources */, FC5218FA2D10FFCE004C93E0 /* zsh in Resources */, A5B30539299BEAAB0047F10C /* Assets.xcassets in Resources */, - A51BFC1E2B2FB5CE00E92F16 /* About.xib in Resources */, - A5593FE92DF927DF00B47B10 /* TerminalTransparentTitlebar.xib in Resources */, - A5E112932AF73E6E00C6E0C2 /* ClipboardConfirmation.xib in Resources */, - A5CDF1912AAF9A5800513312 /* ConfigurationErrors.xib in Resources */, - 857F63812A5E64F200CA4815 /* MainMenu.xib in Resources */, - A596309A2AEE1C6400D64628 /* Terminal.xib in Resources */, - A51545002DFB112E009E85D8 /* TerminalTabsTitlebarTahoe.xib in Resources */, - A5CBD05C2CA0C5C70017A1AE /* QuickTerminal.xib in Resources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -872,113 +430,6 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - A5AEB1652D5BE7D000513529 /* LastWindowPosition.swift in Sources */, - A5E408432E047D0B0035FEAC /* CommandPaletteIntent.swift in Sources */, - A514C8D62B54A16400493A16 /* Ghostty.Config.swift in Sources */, - A54B0CEB2D0CFB4C00CBEFF8 /* NSImage+Extension.swift in Sources */, - A5874D9D2DAD786100E83852 /* NSWindow+Extension.swift in Sources */, - A54D786C2CA7978E001B19B1 /* BaseTerminalController.swift in Sources */, - A58636732DF4813400E04A10 /* UndoManager+Extension.swift in Sources */, - A505D21D2E1A2FA20018808F /* FileHandle+Extension.swift in Sources */, - A59FB5CF2AE0DB50009128F3 /* InspectorView.swift in Sources */, - CFBB5FEA2D231E5000FD62EE /* QuickTerminalSpaceBehavior.swift in Sources */, - A54B0CE92D0CECD100CBEFF8 /* ColorizedGhosttyIconView.swift in Sources */, - A5D0AF3D2B37804400D21823 /* CodableBridge.swift in Sources */, - A51194132E05D006007258CC /* Optional+Extension.swift in Sources */, - A5D0AF3B2B36A1DE00D21823 /* TerminalRestorable.swift in Sources */, - C1F26EA72B738B9900404083 /* NSView+Extension.swift in Sources */, - A586366F2DF25D8600E04A10 /* Duration+Extension.swift in Sources */, - A5CF66D42D289CEE00139794 /* NSEvent+Extension.swift in Sources */, - A5E408342E0320140035FEAC /* GetTerminalDetailsIntent.swift in Sources */, - A5CBD0642CA122E70017A1AE /* QuickTerminalPosition.swift in Sources */, - A596309C2AEE1C9E00D64628 /* TerminalController.swift in Sources */, - A5E408322E02FEDF0035FEAC /* TerminalEntity.swift in Sources */, - A5CC36152C9CDA06004D6760 /* View+Extension.swift in Sources */, - A56D58892ACDE6CA00508D2C /* ServiceProvider.swift in Sources */, - A5CBD0602CA0C90A0017A1AE /* QuickTerminalWindow.swift in Sources */, - A5F9A1F22E7C7301005AFACE /* SurfaceProgressBar.swift in Sources */, - A505D21F2E1B6DE00018808F /* NSWorkspace+Extension.swift in Sources */, - A5CBD05E2CA0C5EC0017A1AE /* QuickTerminalController.swift in Sources */, - A5CF66D72D29DDB500139794 /* Ghostty.Event.swift in Sources */, - A511940F2E050595007258CC /* CloseTerminalIntent.swift in Sources */, - A5E408382E03C7DA0035FEAC /* Ghostty.Surface.swift in Sources */, - A5593FE72DF927D200B47B10 /* TransparentTitlebarTerminalWindow.swift in Sources */, - A5A2A3CA2D4445E30033CF96 /* Dock.swift in Sources */, - A586365F2DEE6C2300E04A10 /* SplitTree.swift in Sources */, - A51BFC222B2FB6B400E92F16 /* AboutView.swift in Sources */, - A5278A9B2AA05B2600CD3039 /* Ghostty.Input.swift in Sources */, - A53A29812DB44A6100B6E02C /* KeyboardShortcut+Extension.swift in Sources */, - A50297352DFA0F3400B4E924 /* Double+Extension.swift in Sources */, - A5CBD0562C9E65B80017A1AE /* DraggableWindowView.swift in Sources */, - A51194112E05A483007258CC /* QuickTerminalIntent.swift in Sources */, - C1F26EE92B76CBFC00404083 /* VibrantLayer.m in Sources */, - A5593FDF2DF8D57C00B47B10 /* TerminalWindow.swift in Sources */, - A58636712DF298FB00E04A10 /* ExpiringUndoManager.swift in Sources */, - A59630972AEE163600D64628 /* HostingWindow.swift in Sources */, - A51BFC2B2B30F6BE00E92F16 /* UpdateDelegate.swift in Sources */, - A5CBD06B2CA322430017A1AE /* GlobalEventTap.swift in Sources */, - AEE8B3452B9AA39600260C5E /* NSPasteboard+Extension.swift in Sources */, - A51194172E05D964007258CC /* PermissionRequest.swift in Sources */, - A51194192E05DFC4007258CC /* IntentPermission.swift in Sources */, - A52FFF5D2CAB4D08000C6A5B /* NSScreen+Extension.swift in Sources */, - A53426352A7DA53D00EBB7A2 /* AppDelegate.swift in Sources */, - A5CBD0582C9F30960017A1AE /* Cursor.swift in Sources */, - A5A6F72A2CC41B8900B232A5 /* AppInfo.swift in Sources */, - A52FFF5B2CAA54B1000C6A5B /* FullscreenMode+Extension.swift in Sources */, - A5333E222B5A2128008AEFF7 /* SurfaceView_AppKit.swift in Sources */, - A5CA378E2D31D6C300931030 /* Weak.swift in Sources */, - A5CDF1952AAFA19600513312 /* ConfigurationErrorsView.swift in Sources */, - A55B7BBC29B6FC330055DE60 /* SurfaceView.swift in Sources */, - A5333E1C2B5A1CE3008AEFF7 /* CrossKit.swift in Sources */, - A5B4EA852DFE691B0022C3A2 /* NSMenuItem+Extension.swift in Sources */, - A5874D992DAD751B00E83852 /* CGS.swift in Sources */, - A586366B2DF0A98C00E04A10 /* Array+Extension.swift in Sources */, - A5E408472E04852B0035FEAC /* InputIntent.swift in Sources */, - A51544FE2DFB111C009E85D8 /* TitlebarTabsTahoeTerminalWindow.swift in Sources */, - A59444F729A2ED5200725BBA /* SettingsView.swift in Sources */, - A56D58862ACDDB4100508D2C /* Ghostty.Shell.swift in Sources */, - A5985CD72C320C4500C57AD3 /* String+Extension.swift in Sources */, - A5A2A3CC2D444ABB0033CF96 /* NSApplication+Extension.swift in Sources */, - A5E408302E0271320035FEAC /* GhosttyIntentError.swift in Sources */, - A5E4083A2E0449BD0035FEAC /* Ghostty.Command.swift in Sources */, - A5E408452E0483FD0035FEAC /* KeybindIntent.swift in Sources */, - A5FEB3002ABB69450068369E /* main.swift in Sources */, - A53A297F2DB4480F00B6E02C /* EventModifiers+Extension.swift in Sources */, - A5E4082E2E0237460035FEAC /* NewTerminalIntent.swift in Sources */, - A53A297B2DB2E49700B6E02C /* CommandPalette.swift in Sources */, - A55B7BB829B6F53A0055DE60 /* Package.swift in Sources */, - A51B78472AF4B58B00F3EDB9 /* TitlebarTabsVenturaTerminalWindow.swift in Sources */, - A51B78472AF4B58B00F3EDB9 /* TitlebarTabsVenturaTerminalWindow.swift in Sources */, - A5BB78B92DF9D8CE009AC3FA /* QuickTerminalSize.swift in Sources */, - A51B78472AF4B58B00F3EDB9 /* TitlebarTabsVenturaTerminalWindow.swift in Sources */, - A5BB78B92DF9D8CE009AC3FA /* QuickTerminalSize.swift in Sources */, - A57D79272C9C879B001D522E /* SecureInput.swift in Sources */, - A5CEAFDC29B8009000646FDA /* SplitView.swift in Sources */, - A5593FE12DF8D74000B47B10 /* HiddenTitlebarTerminalWindow.swift in Sources */, - A5E4083C2E044DB50035FEAC /* Ghostty.Error.swift in Sources */, - A5CDF1932AAF9E0800513312 /* ConfigurationErrorsController.swift in Sources */, - A53A6C032CCC1B7F00943E98 /* Ghostty.Action.swift in Sources */, - A54B0CED2D0CFB7700CBEFF8 /* ColorizedGhosttyIcon.swift in Sources */, - A5CA378C2D2A4DEB00931030 /* KeyboardLayout.swift in Sources */, - A54B0CEF2D0D2E2800CBEFF8 /* ColorizedGhosttyIconImage.swift in Sources */, - A59FB5D12AE0DEA7009128F3 /* MetalView.swift in Sources */, - A599CDB02CF103F60049FA26 /* NSAppearance+Extension.swift in Sources */, - A52FFF572CA90484000C6A5B /* QuickTerminalScreen.swift in Sources */, - A5CC36132C9CD72D004D6760 /* SecureInputOverlay.swift in Sources */, - A5E408402E04532C0035FEAC /* CommandEntity.swift in Sources */, - A5E4082A2E022E9E0035FEAC /* TabGroupCloseCoordinator.swift in Sources */, - A535B9DA299C569B0017E2E4 /* ErrorView.swift in Sources */, - A53A29882DB69D2F00B6E02C /* TerminalCommandPalette.swift in Sources */, - A51BFC202B2FB64F00E92F16 /* AboutController.swift in Sources */, - A5CEAFFF29C2410700646FDA /* Backport.swift in Sources */, - A5E112952AF73E8A00C6E0C2 /* ClipboardConfirmationController.swift in Sources */, - A596309E2AEE1D6C00D64628 /* TerminalView.swift in Sources */, - A58636662DEF964100E04A10 /* TerminalSplitTreeView.swift in Sources */, - A52FFF592CAA4FF3000C6A5B /* Fullscreen.swift in Sources */, - C159E81D2B66A06B00FDFE9C /* OSColor+Extension.swift in Sources */, - A5CEAFDE29B8058B00646FDA /* SplitView.Divider.swift in Sources */, - A5E112972AF7401B00C6E0C2 /* ClipboardConfirmationView.swift in Sources */, - A514C8D82B54DC6800493A16 /* Ghostty.App.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -986,21 +437,6 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - A5CBD0592C9F37B10017A1AE /* Backport.swift in Sources */, - A553F4062E05E93000257779 /* Optional+Extension.swift in Sources */, - A53D0C942B53B43700305CE6 /* iOSApp.swift in Sources */, - A514C8D72B54A16400493A16 /* Ghostty.Config.swift in Sources */, - A5333E232B5A219A008AEFF7 /* SurfaceView.swift in Sources */, - A5F9A1F32E7C7D59005AFACE /* SurfaceProgressBar.swift in Sources */, - A5333E202B5A2111008AEFF7 /* SurfaceView_UIKit.swift in Sources */, - A5333E1D2B5A1CE3008AEFF7 /* CrossKit.swift in Sources */, - A5D689BE2E654D98002E2346 /* Ghostty.Action.swift in Sources */, - A53D0C9C2B543F7B00305CE6 /* Package.swift in Sources */, - A53D0C9B2B543F3B00305CE6 /* Ghostty.App.swift in Sources */, - A5333E242B5A22D9008AEFF7 /* Ghostty.Shell.swift in Sources */, - A5985CD82C320C4500C57AD3 /* String+Extension.swift in Sources */, - A553F4072E05E93D00257779 /* Array+Extension.swift in Sources */, - C159E89D2B69A2EF00FDFE9C /* OSColor+Extension.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/pkg/spirv-cross/build.zig b/pkg/spirv-cross/build.zig index 9e84689ca..ff7f15c94 100644 --- a/pkg/spirv-cross/build.zig +++ b/pkg/spirv-cross/build.zig @@ -4,16 +4,19 @@ pub fn build(b: *std.Build) !void { const target = b.standardTargetOptions(.{}); const optimize = b.standardOptimizeOption(.{}); - const upstream = b.lazyDependency("spirv_cross", .{}); + const module = b.addModule("spirv_cross", .{ .root_source_file = b.path("main.zig"), .target = target, .optimize = optimize }); - const module = b.addModule("spirv_cross", .{ .root_source_file = b.path("main.zig") }); - if (upstream) |v| module.addIncludePath(v.path("")); - - const lib = try buildSpirvCross(b, upstream, target, optimize); - b.installArtifact(lib); + // For dynamic linking, we prefer dynamic linking and to search by + // mode first. Mode first will search all paths for a dynamic library + // before falling back to static. + const dynamic_link_opts: std.Build.Module.LinkSystemLibraryOptions = .{ + .preferred_link_mode = .dynamic, + .search_strategy = .mode_first, + }; + var test_exe: ?*std.Build.Step.Compile = null; if (target.query.isNative()) { - const test_exe = b.addTest(.{ + test_exe = b.addTest(.{ .name = "test", .root_module = b.createModule(.{ .root_source_file = b.path("main.zig"), @@ -21,19 +24,28 @@ pub fn build(b: *std.Build) !void { .optimize = optimize, }), }); - test_exe.linkLibrary(lib); - const tests_run = b.addRunArtifact(test_exe); + const tests_run = b.addRunArtifact(test_exe.?); const test_step = b.step("test", "Run tests"); test_step.dependOn(&tests_run.step); // Uncomment this if we're debugging tests - // b.installArtifact(test_exe); + // b.installArtifact(test_exe.?); + } + if (b.systemIntegrationOption("spirv-cross", .{})) { + module.linkSystemLibrary("spirv-cross-c-shared", dynamic_link_opts); + if (test_exe) |exe| { + exe.linkSystemLibrary2("spirv-cross-c-shared", dynamic_link_opts); + } + } else { + const lib = try buildSpirvCross(b, module, target, optimize); + b.installArtifact(lib); + if (test_exe) |exe| exe.linkLibrary(lib); } } fn buildSpirvCross( b: *std.Build, - upstream_: ?*std.Build.Dependency, + module: *std.Build.Module, target: std.Build.ResolvedTarget, optimize: std.builtin.OptimizeMode, ) !*std.Build.Step.Compile { @@ -62,33 +74,36 @@ fn buildSpirvCross( "-fno-sanitize-trap=undefined", }); - const upstream = upstream_ orelse return lib; - lib.addCSourceFiles(.{ - .root = upstream.path(""), - .flags = flags.items, - .files = &.{ - // Core - "spirv_cross.cpp", - "spirv_parser.cpp", - "spirv_cross_parsed_ir.cpp", - "spirv_cfg.cpp", + if (b.lazyDependency("spirv_cross", .{})) |upstream| { + lib.addIncludePath(upstream.path("")); + module.addIncludePath(upstream.path("")); + lib.addCSourceFiles(.{ + .root = upstream.path(""), + .flags = flags.items, + .files = &.{ + // Core + "spirv_cross.cpp", + "spirv_parser.cpp", + "spirv_cross_parsed_ir.cpp", + "spirv_cfg.cpp", - // C - "spirv_cross_c.cpp", + // C + "spirv_cross_c.cpp", - // GLSL - "spirv_glsl.cpp", + // GLSL + "spirv_glsl.cpp", - // MSL - "spirv_msl.cpp", - }, - }); + // MSL + "spirv_msl.cpp", + }, + }); - lib.installHeadersDirectory( - upstream.path(""), - "", - .{ .include_extensions = &.{".h"} }, - ); + lib.installHeadersDirectory( + upstream.path(""), + "", + .{ .include_extensions = &.{".h"} }, + ); + } return lib; } diff --git a/pkg/utf8proc/build.zig b/pkg/utf8proc/build.zig deleted file mode 100644 index 75fb8972c..000000000 --- a/pkg/utf8proc/build.zig +++ /dev/null @@ -1,40 +0,0 @@ -const std = @import("std"); - -pub fn build(b: *std.Build) !void { - const target = b.standardTargetOptions(.{}); - const optimize = b.standardOptimizeOption(.{}); - - const module = b.addModule("utf8proc", .{ .root_source_file = .{ .path = "main.zig" } }); - - const upstream = b.dependency("utf8proc", .{}); - const lib = b.addLibrary(.{ - .name = "utf8proc", - .root_module = b.createModule(.{ - .target = target, - .optimize = optimize, - }), - .linkage = .static, - }); - lib.linkLibC(); - - lib.addIncludePath(upstream.path("")); - module.addIncludePath(upstream.path("")); - - var flags = std.ArrayList([]const u8).init(b.allocator); - try flags.append("-DUTF8PROC_EXPORTS"); - defer flags.deinit(); - lib.addCSourceFiles(.{ - .root = upstream.path(""), - .files = &.{"utf8proc.c"}, - .flags = flags.items, - }); - - lib.installHeadersDirectoryOptions(.{ - .source_dir = upstream.path(""), - .install_dir = .header, - .install_subdir = "", - .include_extensions = &.{".h"}, - }); - - b.installArtifact(lib); -} diff --git a/pkg/utf8proc/build.zig.zon b/pkg/utf8proc/build.zig.zon deleted file mode 100644 index cfb62de55..000000000 --- a/pkg/utf8proc/build.zig.zon +++ /dev/null @@ -1,11 +0,0 @@ -.{ - .name = "utf8proc", - .version = "2.8.0", - .paths = .{""}, - .dependencies = .{ - .utf8proc = .{ - .url = "https://github.com/JuliaStrings/utf8proc/archive/refs/tags/v2.8.0.tar.gz", - .hash = "1220056ce228a8c58f1fa66ab778f5c8965e62f720c1d30603c7d534cb7d8a605ad7", - }, - }, -} diff --git a/pkg/utf8proc/c.zig b/pkg/utf8proc/c.zig deleted file mode 100644 index 53c8afec0..000000000 --- a/pkg/utf8proc/c.zig +++ /dev/null @@ -1,3 +0,0 @@ -pub const c = @cImport({ - @cInclude("utf8proc.h"); -}); diff --git a/pkg/utf8proc/main.zig b/pkg/utf8proc/main.zig deleted file mode 100644 index 1653c76db..000000000 --- a/pkg/utf8proc/main.zig +++ /dev/null @@ -1,20 +0,0 @@ -pub const c = @import("c.zig").c; - -/// Given a codepoint, return a character width analogous to `wcwidth(codepoint)`, -/// except that a width of 0 is returned for non-printable codepoints -/// instead of -1 as in `wcwidth`. -pub fn charwidth(codepoint: u21) u8 { - return @intCast(c.utf8proc_charwidth(@intCast(codepoint))); -} - -/// Given a pair of consecutive codepoints, return whether a grapheme break is -/// permitted between them (as defined by the extended grapheme clusters in UAX#29). -pub fn graphemeBreakStateful(cp1: u21, cp2: u21, state: *i32) bool { - return c.utf8proc_grapheme_break_stateful( - @intCast(cp1), - @intCast(cp2), - state, - ); -} - -test {} diff --git a/src/build/SharedDeps.zig b/src/build/SharedDeps.zig index 826eef0c0..5faf3ba44 100644 --- a/src/build/SharedDeps.zig +++ b/src/build/SharedDeps.zig @@ -270,7 +270,7 @@ pub fn add( spirv_cross_dep.module("spirv_cross"), ); if (b.systemIntegrationOption("spirv-cross", .{})) { - step.linkSystemLibrary2("spirv-cross", dynamic_link_opts); + step.linkSystemLibrary2("spirv-cross-c-shared", dynamic_link_opts); } else { step.linkLibrary(spirv_cross_dep.artifact("spirv_cross")); try static_libs.append( diff --git a/src/cli/list_themes.zig b/src/cli/list_themes.zig index f05a689c6..0c0acfe84 100644 --- a/src/cli/list_themes.zig +++ b/src/cli/list_themes.zig @@ -895,6 +895,42 @@ const Preview = struct { config.background.b, }, }; + const cursor_fg: vaxis.Color = if (config.@"cursor-text") |cursor_text| .{ + .rgb = [_]u8{ + cursor_text.color.r, + cursor_text.color.g, + cursor_text.color.b, + }, + } else bg; + const cursor_bg: vaxis.Color = if (config.@"cursor-color") |cursor_bg| .{ + .rgb = [_]u8{ + cursor_bg.color.r, + cursor_bg.color.g, + cursor_bg.color.b, + }, + } else fg; + const selection_fg: vaxis.Color = if (config.@"selection-foreground") |selection_fg| .{ + .rgb = [_]u8{ + selection_fg.color.r, + selection_fg.color.g, + selection_fg.color.b, + }, + } else bg; + const selection_bg: vaxis.Color = if (config.@"selection-background") |selection_bg| .{ + .rgb = [_]u8{ + selection_bg.color.r, + selection_bg.color.g, + selection_bg.color.b, + }, + } else fg; + const cursor: vaxis.Style = .{ + .fg = cursor_fg, + .bg = cursor_bg, + }; + const standard_selection: vaxis.Style = .{ + .fg = selection_fg, + .bg = selection_bg, + }; const standard: vaxis.Style = .{ .fg = fg, .bg = bg, @@ -1433,11 +1469,8 @@ const Preview = struct { &.{ .{ .text = " 14 │ ", .style = color238 }, .{ .text = "try ", .style = color5 }, - .{ .text = "stdout.print(", .style = standard }, - .{ .text = "\"{d}", .style = color10 }, - .{ .text = "\\n", .style = color12 }, - .{ .text = "\"", .style = color10 }, - .{ .text = ", .{i});", .style = standard }, + .{ .text = "stdout.print(\"{d}\\n\", .{i})", .style = standard_selection }, + .{ .text = ";", .style = cursor }, }, .{ .row_offset = 17,