Commit graph

17 commits

Author SHA1 Message Date
Lawrence Chen
cc71e5797e
Add sidebar blur effect with withinWindow blending (#9)
* Add sidebar blur effect with withinWindow blending

- Add NSVisualEffectView-based blur backdrop for sidebar
- Support withinWindow blending mode to blur terminal content behind sidebar
- Auto-switch to overlay layout when withinWindow mode is selected
- Add sidebar debug panel with material, blending, tint, and opacity controls
- Add preset options (HUD Glass, Popover Glass, etc.)
- Default to HUD Glass preset with withinWindow blur

* Simplify tab close button visibility and remove hover background

Show close button only on hover instead of when active/multi-selected.
Remove the hover background color from tabs for cleaner appearance.

* Add config reload support with notification system

- Add reloadConfiguration() methods for app-wide and per-surface reload
- Handle GHOSTTY_ACTION_RELOAD_CONFIG action from Ghostty
- Add ghosttyConfigDidReload notification for views to react
- TerminalSplitTreeView reloads GhosttyConfig on notification
- Add openConfigurationInTextEdit() helper
- Fix activeMainWindow() to correctly find main window

* Add custom tab titles and pinned tabs support

- Add customTitle and isPinned properties to Tab
- Separate process title from custom title with applyProcessTitle()
- Add setCustomTitle()/clearCustomTitle() for user-defined tab names
- Add togglePin()/setPinned() with automatic reordering
- Pinned tabs stay at the top, new tabs insert after pinned section
- moveTabToTop/moveTabsToTop respect pinned tab ordering

* Add --panel option to new-split command

- CLI: Parse --panel <id|index> option for new-split
- Controller: Resolve panel argument to split specific surface
- Return new panel UUID on successful split creation

* Fix notifications popover positioning with layout-aware anchor

- Use AnchorNSView with layout callback for reliable positioning
- Force layout before showing popover to ensure current geometry
- Convert anchor bounds to window content view coordinates
- Add fallback positioning near top-left when anchor unavailable
- Fix button hit testing with explicit frame and contentShape

* Improve app termination in reload script

Use osascript to gracefully quit by bundle ID before pkill fallback.
Add more robust pkill patterns to catch instances from any DerivedData path.

* Add sidebar blur effect with live-adjustable glass settings

- Add WindowGlassEffect for window-level NSGlassEffectView (macOS 26+)
- Add SidebarBackdrop with configurable material, blend mode, tint, and opacity
- Add Sidebar Debug panel (Debug menu) for live adjustment of sidebar appearance
- Add Background Debug panel for window glass tint settings
- Support both behindWindow and withinWindow blur modes
- Live tint updates without requiring window reload

* Align titlebar text to left edge of content area
2026-02-04 03:04:45 -08:00
Lawrence Chen
4b77b1117d Fix focus-on-scroll and harden reload scripts 2026-01-30 16:46:30 -08:00
Lawrence Chen
eb7c06ceb1 Fix high CPU usage from notifications and add regression tests
- Fix auto-updating Text(date, style: .time) causing continuous SwiftUI updates
  by using static formatting with .formatted(date:time:)
- Fix notification popover keeping SwiftUI observers active when closed by
  clearing contentViewController on popover close and recreating on open
- Fix focus loss when notifications arrive while typing by only setting
  focus in NotificationsPage when the page is visible
- Make Update Pill and Update Logs debug-only features
- Add CPU regression tests: test_cpu_usage.py, test_cpu_notifications.py
- Add lint test for auto-updating Text patterns: test_lint_swiftui_patterns.py
2026-01-29 17:02:16 -08:00
Lawrence Chen
4460b54fa5 Customize about window and restrict titlebar accessories 2026-01-29 00:53:01 -08:00
Lawrence Chen
e743498fe1 Handle Sparkle updater cache and bump version 2026-01-28 23:30:59 -08:00
Lawrence Chen
c5d6065664 Use NSPopover for notifications 2026-01-28 20:35:15 -08:00
Lawrence Chen
46dd00adac Refine titlebar controls variants 2026-01-28 18:26:27 -08:00
Lawrence Chen
f0e2efe8e4 Refine titlebar controls and clear notifications on close 2026-01-28 17:35:48 -08:00
Lawrence Chen
8db5ccbb58 Move no-update auto-dismiss to controller 2026-01-28 04:20:52 -08:00
Lawrence Chen
db17170b26 Stabilize update UI test flow 2026-01-28 03:56:11 -08:00
Lawrence Chen
03ee628fb6 Add mock update feed UI tests 2026-01-28 03:22:37 -08:00
Lawrence Chen
ca9c680da7 Ensure tab focus owns key input 2026-01-28 03:12:50 -08:00
Lawrence Chen
57ae8d9c0c Keep update pill visible during checks 2026-01-28 03:01:24 -08:00
Lawrence Chen
3877dc2d98 Rename app to cmuxterm 2026-01-28 02:38:24 -08:00
Lawrence Chen
0441efc675 Improve update UI error details 2026-01-28 01:49:02 -08:00
Lawrence Chen
17a3e2033f Add dev build branding and reload scripts 2026-01-28 01:20:48 -08:00
Lawrence Chen
e3ee246930 Add Sparkle auto-update flow and titlebar update UI 2026-01-26 17:25:34 -08:00