Larger Settings window, wider sidebar, align sidebar top with detail#374
Conversation
| // first row well below where the detail pane's first card starts, breaking visual | ||
| // alignment between sidebar and content. The grouped form's own top inset on the detail | ||
| // side handles breathing room; the sidebar lines up with it naturally. | ||
| .navigationSplitViewColumnWidth(min: 480, ideal: 520, max: 640) |
There was a problem hiding this comment.
Sidebar min width may be overly generous
480 px is roughly double what the widest label ("Apple Intelligence" at ~160 px in SF Pro 13pt) actually needs. At minimum window width (1180 px), the sidebar already occupies 40 % of the total surface area, leaving the detail pane only ~700 px. If more sidebar items are added or the window is pushed toward its minimum, this ratio will keep squeezing the content side. Consider whether something closer to 280–320 px min (with a larger ideal/max if you want the default to be wider) would give the labels room without anchoring such a large floor.
Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!
| initialFrame = CGRect(x: 0, y: 0, width: 1320, height: 820) | ||
| minSize = NSSize(width: 1180, height: 720) |
There was a problem hiding this comment.
Initial frame may overflow smaller MacBook displays
The new initialFrame of 1320×820 is larger than the effective resolution of a 13" MacBook Air at default scaling (~1440×900 usable, but with menu bar and Dock that can leave as little as ~1440×840 of available space). AppKit will clamp the window when center() is called, but a user on such a machine will see the window immediately span nearly their full screen on first open. The minimum size of 1180×720 is the more important floor — consider whether the initialFrame default could be set closer to it (e.g. 1180–1200 px wide) so the first-launch experience is less jarring on small displays while still allowing users to expand freely.
Default 1320x820 / min 1180x720 so content doesn't get cut. Sidebar column doubled to 480/520/640 so labels fit. Removed the clear-color top spacer that was pushing the General row well below the detail pane's first card. Autosave name bumped to V3 to give existing dogfooders the new default.
Greptile Summary
This PR widens the redesigned Settings window (default 1320×820, min 1180×720), doubles the sidebar column width so labels no longer truncate, removes a clear-color spacer that was misaligning the sidebar's first row with the detail pane, and bumps the autosave name to V3 so existing users receive the new default frame.
SettingsCoordinator.swift:initialFrameandminSizeboth enlarged;autosaveNameincremented to"CotabbySettingsWindowV3"to force a fresh default for users who already had a V2 saved frame.SettingsContainerView.swift: SwiftUI.frameconstraint updated tominWidth: 1180, minHeight: 720, keeping it in sync with the coordinator'sNSWindow.minSize.SettingsSidebarView.swift:Color.cleartop spacer removed and.navigationSplitViewColumnWidthraised frommin: 240/ideal: 260/max: 320tomin: 480/ideal: 520/max: 640.Confidence Score: 4/5
Safe to merge — changes are purely layout/sizing with no logic, data, or API surface touched.
All three files contain only numeric dimension constants and one removed spacer view. The autosave name bump correctly isolates dogfooders from their old frame. The two observations (sidebar floor being very wide, and the initial frame being close to the limits of a 13" MacBook display) are cosmetic and do not affect correctness or data.
SettingsSidebarView.swift — the 480 px minimum sidebar width is worth a second look against the full label inventory; SettingsCoordinator.swift — the 1320 px initial frame may feel large on entry-level MacBook displays.
Important Files Changed
Flowchart
%%{init: {'theme': 'neutral'}}%% flowchart TD A[showSettings called] --> B{autosave\nV3 frame\nexists?} B -- yes --> C[Restore saved frame] B -- no --> D[Apply initialFrame\n1320 x 820] C --> E[NSWindow\nminSize: 1180 x 720] D --> E E --> F[window.center] F --> G[NavigationSplitView\nbalanced style] G --> H[Sidebar column\nmin:480 ideal:520 max:640] G --> I[Detail pane\nremaining width] H --> J[SwiftUI frame\nminWidth:1180 minHeight:720] I --> JReviews (1): Last reviewed commit: "Larger Settings window, wider sidebar, a..." | Re-trigger Greptile