Skip to content

Releases: CCMurphy-dev/Aegis

v1.0.28

08 Apr 13:02

Choose a tag to compare

What's New in v1.0.28

Fixed

  • Crash on macOS 26 (complete coverage) — Extended the macOS 26 crash fix to all remaining unprotected windows: Settings panel, Yabai setup prompt, AeroSpace setup prompt, and App Switcher. Added AegisOverlayPanel (an NSPanel subclass with identical @try/@catch overrides) to cover the App Switcher panel. All NSHostingView instances in Aegis are now fully protected against the macOS 26 constraint-update exception.

Installation

Download Aegis.app.zip, extract, and move to /Applications, or update in-app via Settings → Check for Updates.

Requirements

  • macOS 14.0+ (Sonoma)
  • Yabai, AeroSpace, or Rift window manager

v1.0.27

06 Apr 21:44

Choose a tag to compare

What's New in v1.0.27

Fixed

  • Crash on macOS 26 — follow-up — A later macOS 26 beta build renamed postWindowNeedsUpdateConstraints to _postWindowNeedsUpdateConstraints. The v1.0.25 override targeted the public name and no longer fired on these builds. v1.0.27 overrides both the public and private variants, covering all known macOS 26 beta builds.

Installation

Download Aegis.app.zip, extract, and move to /Applications — or update in-app via Settings > General > Check for Updates.

Requirements

  • macOS 14.0+ (Sonoma)
  • Yabai, AeroSpace, or Rift window manager

v1.0.26

04 Apr 14:22

Choose a tag to compare

What's New in v1.0.26

Fixed

  • AeroSpace setup scripts not updated on upgrade — The setup prompt now copies all integration scripts directly from the app bundle, overwriting any file whose content differs. Users upgrading from v1.0.23 who were missing the mode-notify script no longer need to manually re-run the setup script
  • AeroSpace scripts not created after deleting ~/.config/aegis — Clicking Run Setup in Settings now correctly restores all three integration scripts and resets the dismissed state so auto-checking resumes
  • "Check Again" silently closing the setup prompt — The retry button now always re-opens the setup window instead of silently aborting when the user had previously clicked Skip

Installation

Download Aegis.app.zip, extract, and move to /Applications — or update in-app via Settings > General > Check for Updates.

Requirements

  • macOS 14.0+ (Sonoma)
  • Yabai, AeroSpace, or Rift window manager

v1.0.25

03 Apr 05:13

Choose a tag to compare

What's New in v1.0.25

Fixed

  • Crash on macOS 26 — complete fix — v1.0.24 only blocked one of two crash paths (invalidateSafeAreaCornerInsets). A second path (invalidateSafeAreaInsets) was still hitting NSWindow.postWindowNeedsUpdateConstraints and throwing. This release adds an Objective-C @try/@catch override directly in the window subclass, intercepting the throw at the source regardless of which code path reaches it.

Installation

Download Aegis.app.zip, extract, and move to /Applications — or update in-app via Settings > General > Check for Updates.

Requirements

  • macOS 14.0+ (Sonoma)
  • Yabai, AeroSpace, or Rift window manager

v1.0.24

02 Apr 21:30

Choose a tag to compare

What's New in v1.0.24

Added

  • AeroSpace mode visualiser — Pill badge in the menu bar displays your active AeroSpace mode (e.g. RESIZE) when not in main mode, styled to match the active space indicator. Disappears automatically on return to main. Setup script now installs the on-mode-changed hook alongside the workspace hook.

Fixed

  • AeroSpace config path — Installer and setup checker now detect ~/.config/aerospace/aerospace.toml (alongside the existing ~/.aerospace.toml fallback)
  • Crash on macOS 26 — Fixed a crash on launch after granting permissions, caused by a new exception in NSWindow.postWindowNeedsUpdateConstraints on macOS 26.3 - #2

Installation

Download Aegis.app.zip, extract, and move to /Applications — or update in-app via Settings > General > Check for Updates.

Requirements

  • macOS 14.0+ (Sonoma)
  • Yabai, AeroSpace, or Rift window manager

v1.0.23: AeroSpace & Rift Support

30 Mar 07:44

Choose a tag to compare

What's New

  • AeroSpace Integration — Full workspace switching and window management via AeroSpace CLI with FIFO pipe event system (no polling). First-launch setup wizard configures the exec-on-workspace-change hook automatically.
  • Rift Integration — Window management via Rift Mach subscription API. Auto-connects on launch with no setup required.
  • Multi-WM Auto-Detection — Aegis detects your running window manager (Yabai, AeroSpace, or Rift) at startup. No configuration needed.
  • App Switcher by Workspace — Cmd+Tab replacement now groups windows by virtual workspace for AeroSpace and Rift.
  • WM-Aware Settings — Advanced tab shows correct integration info and setup button for the active window manager.

See WINDOW_MANAGERS.md for the full feature matrix.

v1.0.22: Fix external monitor offset on wake

16 Mar 14:46

Choose a tag to compare

Fixed

  • Wake with external monitor — Menu bar windows now correctly reposition after waking from sleep with an external monitor connected. Previously the external monitor's Aegis bar would render at the wrong position on the MacBook screen.

v1.0.21: HUD Border & Theme Colors

13 Mar 10:26

Choose a tag to compare

What's New

  • HUD Border — Configurable border outline on notch HUD panels (Settings > Notch HUD)
  • HUD Theme Colors — Custom theme colors now apply to HUD text, icons, and progress bars (previously hardcoded white)

v1.0.20

07 Mar 07:24

Choose a tag to compare

What's New in 1.0.20

Fixed

  • Fullscreen visibility - Menu bar now correctly hides when entering native fullscreen and reappears when leaving
    • Fullscreen state callback fires after data refresh completes, fixing race condition where coordinator read stale state
    • Space change detection now compares type and isNativeFullscreen fields, not just focused state

v1.0.19

07 Mar 06:30

Choose a tag to compare

What's New in 1.0.19

Added

  • Custom theme - New "Custom" theme option with hex color pickers for background, text/icons, and borders
    • Save and load color presets for quick switching between custom color schemes
  • Fullscreen dedup - Pre-compute fullscreen state in performUpdate, eliminating a redundant getCurrentSpaces() call per space change

Changed

  • Coalescing event gate - Replaced per-event immediate refresh with a 30ms coalescing gate that merges overlapping events and determines the minimum refresh scope needed
    • window_focused and application_front_switched now trigger windowsOnly refresh (1 subprocess) instead of full refreshAll (3 subprocesses)
    • application_front_switched handled explicitly instead of falling through to default case
    • NSWorkspace fallback handlers (activeSpaceChanged, appChanged) skip when FIFO pipe events were received within 500ms
    • Result: space switch drops from 7-13 subprocesses to exactly 2
  • SharedMenuBarState - Replaced all @Published properties with CurrentValueSubject to prevent cross-space re-render cascades
  • Expand/collapse animations - Switched from spring animations (700ms+ asymptotic tail) to easeOut with fixed durations (0.15-0.2s), eliminating continuous 120fps rendering between space switches
  • Rapid switch detection - Switches faster than 300ms skip animation entirely to prevent overlapping animation CPU spikes
  • Font measurement caching - WindowIcon.expandedWidth now cached by title+appName key, avoiding expensive NSString.size() on every update
  • Non-reactive GeometryReader - Width measurement for drag calculations uses a class ref instead of @State, preventing ~42 unnecessary body re-evaluations per animation
  • Equatable icon isolation - Extracted ExpandableWindowIcon with .equatable() so only affected icons re-render during expand/collapse animation

Fixed

  • Removed stale debug print statements from fullscreen visibility toggle