diff --git a/Gaze.xcodeproj/project.pbxproj b/Gaze.xcodeproj/project.pbxproj index fb25886..0e0b2ea 100644 --- a/Gaze.xcodeproj/project.pbxproj +++ b/Gaze.xcodeproj/project.pbxproj @@ -34,9 +34,22 @@ 27A21B532F0F69DD0018C4F3 /* GazeUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = GazeUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; /* End PBXFileReference section */ +/* Begin PBXFileSystemSynchronizedBuildFileExceptionSet section */ + 270D22E92F1474F1008BCE42 /* Exceptions for "Gaze" folder in "Gaze" target */ = { + isa = PBXFileSystemSynchronizedBuildFileExceptionSet; + membershipExceptions = ( + Info.plist, + ); + target = 27A21B3B2F0F69DC0018C4F3 /* Gaze */; + }; +/* End PBXFileSystemSynchronizedBuildFileExceptionSet section */ + /* Begin PBXFileSystemSynchronizedRootGroup section */ 27A21B3E2F0F69DC0018C4F3 /* Gaze */ = { isa = PBXFileSystemSynchronizedRootGroup; + exceptions = ( + 270D22E92F1474F1008BCE42 /* Exceptions for "Gaze" folder in "Gaze" target */, + ); path = Gaze; sourceTree = ""; }; @@ -418,7 +431,7 @@ ENABLE_PREVIEWS = YES; GENERATE_INFOPLIST_FILE = NO; INFOPLIST_FILE = Gaze/Info.plist; - INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.healthcare-fitness"; + INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.productivity"; INFOPLIST_KEY_NSHumanReadableCopyright = ""; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", @@ -454,7 +467,7 @@ ENABLE_PREVIEWS = YES; GENERATE_INFOPLIST_FILE = NO; INFOPLIST_FILE = Gaze/Info.plist; - INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.healthcare-fitness"; + INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.productivity"; INFOPLIST_KEY_NSHumanReadableCopyright = ""; LD_RUNPATH_SEARCH_PATHS = ( "$(inherited)", diff --git a/Gaze/AppDelegate.swift b/Gaze/AppDelegate.swift index cc0390c..571feb3 100644 --- a/Gaze/AppDelegate.swift +++ b/Gaze/AppDelegate.swift @@ -227,17 +227,17 @@ class AppDelegate: NSObject, NSApplicationDelegate, ObservableObject { DispatchQueue.main.asyncAfter(deadline: .now() + 0.1) { [weak self] in guard let self = self, let settingsManager = self.settingsManager else { return } - // Check if onboarding window already exists from the WindowGroup - let existingWindow = NSApplication.shared.windows.first { window in - // Check if window contains OnboardingContainerView by examining its content view - if let hostingView = window.contentView as? NSHostingView { - return true - } - // Also check for windows with our expected size (onboarding window dimensions) - return window.frame.size.width == 700 && window.frame.size.height == 700 - && window.styleMask.contains(.titled) - && window.title.isEmpty // WindowGroup windows have empty title by default - } +// Check if onboarding window already exists from the WindowGroup + let existingWindow = NSApplication.shared.windows.first { window in + // Check if window contains OnboardingContainerView by examining its content view + if window.contentView is NSHostingView { + return true + } + // Also check for windows with our expected size (onboarding window dimensions) + return window.frame.size.width == 700 && window.frame.size.height == 700 + && window.styleMask.contains(.titled) + && window.title.isEmpty // WindowGroup windows have empty title by default + } if let window = existingWindow { // Reuse existing window - just bring it to front diff --git a/Gaze/Gaze.icon/icon.json b/Gaze/Gaze.icon/icon.json index 17ff481..7452abb 100644 --- a/Gaze/Gaze.icon/icon.json +++ b/Gaze/Gaze.icon/icon.json @@ -241,13 +241,13 @@ { "value" : { "linear-gradient" : [ - "srgb:0.00000,0.99144,1.00000,1.00000", + "display-p3:0.38402,0.64824,1.04682,1.00000", "display-p3:0.23132,0.52490,0.96777,1.00000" ], "orientation" : { "start" : { - "x" : 0.06353251664956905, - "y" : 0.04636742178812686 + "x" : 0.0848494935047852, + "y" : 0.06691774417449506 }, "stop" : { "x" : 0.5, diff --git a/Gaze/Info.plist b/Gaze/Info.plist index 1bda10b..94300be 100644 --- a/Gaze/Info.plist +++ b/Gaze/Info.plist @@ -4,6 +4,8 @@ LSUIElement + LSApplicationCategoryType + public.app-category.productivity CFBundleName Gaze CFBundleDisplayName diff --git a/Gaze/Views/Containers/SettingsWindowView.swift b/Gaze/Views/Containers/SettingsWindowView.swift index 6c0dd60..864bc04 100644 --- a/Gaze/Views/Containers/SettingsWindowView.swift +++ b/Gaze/Views/Containers/SettingsWindowView.swift @@ -115,7 +115,7 @@ struct SettingsWindowView: View { } .padding() } - .frame(minWidth: 750, minHeight: 800) + .frame(minWidth: 750, minHeight: 850) .onReceive( NotificationCenter.default.publisher(for: Notification.Name("SwitchToSettingsTab")) ) { notification in diff --git a/build_dmg b/build_dmg index 3d143fe..acc471e 100755 --- a/build_dmg +++ b/build_dmg @@ -14,7 +14,7 @@ BUILD_NUMBER=$(grep -A 1 "CURRENT_PROJECT_VERSION" "$PROJECT_FILE" | grep -o '[0 # Fallback to manual values if extraction fails if [ -z "$VERSION" ]; then echo "⚠️ Could not extract MARKETING_VERSION from project, using fallback" - VERSION="0.1.1" + VERSION="0.2.0" fi if [ -z "$BUILD_NUMBER" ]; then @@ -22,7 +22,7 @@ if [ -z "$BUILD_NUMBER" ]; then BUILD_NUMBER="1" fi -echo "📦 Building Gaze v${VERSION} (build ${BUILD_NUMBER})" +echo "📦 Building Gaze DMG for v${VERSION} (build ${BUILD_NUMBER})" RELEASES_DIR="./releases" APPCAST_OUTPUT="${RELEASES_DIR}/appcast.xml" @@ -57,8 +57,8 @@ create-dmg \ "./Gaze.app" # Copy DMG to releases directory -echo "Copying DMG to releases directory..." -cp "$DMG_NAME" "$RELEASES_DIR/" +echo "Moving DMG to releases directory..." +mv "$DMG_NAME" "$RELEASES_DIR/" # Generate appcast if Sparkle tools are available if [ -n "$SPARKLE_BIN" ] && [ -d "$SPARKLE_BIN" ]; then diff --git a/releases/appcast.xml b/releases/appcast.xml index 47e641f..c640369 100644 --- a/releases/appcast.xml +++ b/releases/appcast.xml @@ -6,9 +6,9 @@ 0.1.1 Sun, 11 Jan 2026 18:07:02 -0500 1 - 0.1.1 + 0.2.0 14.6 - + \ No newline at end of file