-
Notifications
You must be signed in to change notification settings - Fork 1
Installation
| Requirement | Details |
|---|---|
| macOS | 14.0+ (Sonoma or later) |
| Hardware | Apple Silicon Mac with notch (recommended) |
| Displays | Single or multiple monitors supported |
| Yabai | 7.0+ installed and running |
- Accessibility - For menu bar display and window tracking
- Bluetooth - For device connection notifications (optional)
- Notifications - For startup status notifications (optional)
If you haven't already installed Yabai:
brew install koekeishiya/formulae/yabaiFor full functionality (space management, window moving between spaces), you need to:
- Partially disable SIP (System Integrity Protection)
- Install the Yabai scripting addition
See the Yabai Wiki for detailed instructions.
Option A: Download Release
Download the latest Aegis.app.zip from Releases, unzip, and move to /Applications.
Option B: Build from Source
git clone https://github.com/CCMurphy-Dev/Aegis.git
cd Aegis
open Aegis.xcodeproj
# Press Cmd+B to build, Cmd+R to runOn first launch:
- Go to System Settings → Privacy & Security → Accessibility
- Enable Aegis in the list
- If Aegis doesn't appear, click the + button and add it manually
Aegis communicates with Yabai via a FIFO pipe. This enables instant updates when you switch spaces or move windows.
On first launch, Aegis will prompt you to run the setup if integration isn't configured. Click "Run Setup" and follow the prompts.
Alternatively, run the setup script manually:
~/.config/aegis/setup-aegis-yabai.shThe script will:
- Create
~/.config/aegis/directory - Install
aegis-yabai-notifynotification script - Register Yabai signals for real-time events
- Optionally add integration to
~/.yabaircfor persistence
If you prefer manual setup, add this to your ~/.yabairc:
# AEGIS_INTEGRATION_START
# Aegis window manager integration - DO NOT EDIT THIS SECTION
AEGIS_NOTIFY="$HOME/.config/aegis/aegis-yabai-notify"
yabai -m signal --remove aegis_space_changed 2>/dev/null || true
yabai -m signal --remove aegis_space_destroyed 2>/dev/null || true
yabai -m signal --remove aegis_window_focused 2>/dev/null || true
yabai -m signal --remove aegis_window_created 2>/dev/null || true
yabai -m signal --remove aegis_window_destroyed 2>/dev/null || true
yabai -m signal --remove aegis_window_moved 2>/dev/null || true
yabai -m signal --remove aegis_application_front_switched 2>/dev/null || true
yabai -m signal --add event=space_changed action="YABAI_EVENT_TYPE=space_changed $AEGIS_NOTIFY" label=aegis_space_changed
yabai -m signal --add event=space_destroyed action="YABAI_EVENT_TYPE=space_destroyed $AEGIS_NOTIFY" label=aegis_space_destroyed
yabai -m signal --add event=window_focused action="YABAI_EVENT_TYPE=window_focused $AEGIS_NOTIFY" label=aegis_window_focused
yabai -m signal --add event=window_created action="YABAI_EVENT_TYPE=window_created $AEGIS_NOTIFY" label=aegis_window_created
yabai -m signal --add event=window_destroyed action="YABAI_EVENT_TYPE=window_destroyed $AEGIS_NOTIFY" label=aegis_window_destroyed
yabai -m signal --add event=window_moved action="YABAI_EVENT_TYPE=window_moved $AEGIS_NOTIFY" label=aegis_window_moved
yabai -m signal --add event=application_front_switched action="YABAI_EVENT_TYPE=application_front_switched $AEGIS_NOTIFY" label=aegis_application_front_switched
# AEGIS_INTEGRATION_ENDFor full functionality, load the Yabai scripting addition. Add to your ~/.yabairc:
# Load scripting addition (requires sudoers entry)
sudo yabai --load-sa
yabai -m signal --add event=dock_did_restart action="sudo yabai --load-sa"See Yabai Wiki - Installing the Scripting Addition for sudoers configuration.
After setup, check the status in Aegis:
- Right-click the layout button (left side of menu bar)
- Look at the Status section:
- Yabai: Should show version number
- SA: Should show "Loaded"
- Aegis: Shows Aegis version
- Link: Should show "Active"
If SA shows "Not loaded", click it to copy the load command to your clipboard, then paste and run in Terminal.
Aegis automatically detects external monitors and creates menu bars for each display. No additional setup is required.
Open Settings → General and select your preferred mode:
| Mode | Description |
|---|---|
| Auto (default) | Single display = primary only, multiple = per monitor |
| Primary Only | Menu bar only on main display |
| Per Monitor | Each display shows only its own spaces |
| All Show All | Every display shows all spaces |
Or set via config file:
{
"multiMonitorMode": "perMonitor"
}Display changes are detected instantly when monitors are connected or disconnected.
Aegis includes automatic update checking via Sparkle. To check manually:
Settings → General → Check for Updates
Updates are signed and verified automatically.
- Quit Aegis
- Delete
/Applications/Aegis.app - Remove the integration from
~/.yabairc(the section betweenAEGIS_INTEGRATION_STARTandAEGIS_INTEGRATION_END) - Delete config directory:
rm -rf ~/.config/aegis/ - Delete preferences:
defaults delete com.ccmurphy.aegis