Installation
Requirements
Section titled “Requirements”- macOS 26+ (Tahoe) on Apple Silicon
- Accessibility and Input Monitoring permissions (required at launch)
- Screen Recording permission for Overview thumbnails, drag previews, and captured Hidden Bar glyphs (optional)
Displays have separate SpacesON (the macOS default; OmniWM pauses window management until it is enabled)
Homebrew
Section titled “Homebrew”brew tap BarutSRB/tapbrew install omniwmThen finish with the first-launch setup below.
OmniWM supports both community-maintained Nix packages below, alongside a real-world Home Manager configuration example. The packages install official OmniWM release artifacts, while their Nix expressions are maintained by DoomHammer and DavSanchez respectively.
| Package or example | Best for | Packaging or configuration difference |
|---|---|---|
| DoomHammer NUR package | Fast release tracking | Its current unzip extraction does not preserve the release’s valid Developer ID signature, and it installs the app bundle without exposing omniwmctl on PATH. |
| DavSanchez package and Home Manager module | Signature-preserving, declarative integration | It may trail the latest release, but its bsdtar extraction preserves code signing and it provides omniwmctl, Home Manager settings, and launchd integration. |
| ryoppippi Home Manager configuration | Real-world declarative setup example | It builds on DavSanchez’s module, enables launchd, and merges a tracked settings template while preserving GUI-managed, machine-specific monitor settings. |
Install the fast-tracking DoomHammer package directly:
nix profile install github:DoomHammer/nur-packages#omniwmExisting NUR configurations can use nur.repos.doomhammer.omniwm.
Install the signature-preserving DavSanchez package directly:
nix profile install github:DavSanchez/nix-dotfiles#omniwmFor a declarative setup, use DavSanchez’s exported homeModules.omniwm and overlays.additions. After either installation, finish with the first-launch setup below.
GitHub Releases
Section titled “GitHub Releases”- Download the latest
OmniWM-v<version>.zipapp archive from Releases. - Extract and move
OmniWM.appto/Applications. - Continue with the first-launch setup.
First-launch setup
Section titled “First-launch setup”- In System Settings > Desktop & Dock > Mission Control, turn ON
Displays have separate Spaces. - Log out of macOS and log back in for that change to take effect, unless you had it on already.
- Launch OmniWM and grant Accessibility and Input Monitoring when prompted. Both are required at launch.
- Optionally grant Screen Recording for capture-derived visuals: Overview thumbnails, drag previews, and captured Hidden Bar glyphs.
Updates
Section titled “Updates”OmniWM checks for updates by default:
- On launch, OmniWM polls the latest GitHub release at most once per day.
- Updates stay manual. OmniWM does not auto-download or auto-install a new release.
- When a newer release is available, OmniWM shows a centered popup with release notes and actions for
Open Release Page,Copy brew upgrade omniwm,Skip This Version, andNot Now. - You can control this from Settings > General > Updates or trigger a manual check from the status bar menu with
Check for Updates....