A powerful tiling window manager for macOS.
Small demo, not fully showing everything, gif recorded at 30fps due to size, features shown:
- real quake-style temrinal using ghostty framework
- window finder/jumper
- searchable and usable command pallet for any app
- App menu anywhere
- Niri tabs
- Niri and Dwindle layout (some animations shown)
- Hide/unhide status bar icons
- Interactive workspace bar A lot more features not show in the gif.
- Multi-monitor support - Not fully tested (developer lacks multi-monitor setup)
- Gestures/Trackpad - Magic Mouse and trackpad gestures are untested (no hardware available for testing)
- macOS 26+ (Tahoe)
- Accessibility permissions (prompted on launch)
The app is developer signed and notarized by Apple.
brew tap BarutSRB/tap
brew install omniwm- Download the latest
OmniWM.zipfrom Releases - Extract and move
OmniWM.appto/Applications - Launch OmniWM and grant Accessibility permissions when prompted
- Launch OmniWM from your Applications folder
- Grant Accessibility permissions in System Settings > Privacy & Security > Accessibility
- Windows will automatically tile in columns
- Use
Option + Arrow keysto navigate between windows - Click the menu bar icon to access Settings
OmniWM offers two layout engines that you can switch between per-workspace:
Niri (Scrolling Columns) - Windows arranged in vertical columns that scroll horizontally. Each column can have multiple stacked windows or be "tabbed" (multiple windows, one visible at a time). Best for wide monitors with many windows.
Dwindle (BSP) - Binary space partition layout that recursively divides screen space. Each new window splits the space in half. Best for traditional tiling with predictable layouts.
Switch layouts per-workspace with Option + Shift + L.
All shortcuts are customizable in Settings > Hotkeys.
| Action | Shortcut |
|---|---|
| Focus Left / Right / Up / Down | Option + Arrow Keys |
| Focus Previous Window | Option + Tab |
| Focus First in Column | Option + Home |
| Focus Last in Column | Option + End |
| Action | Shortcut |
|---|---|
| Move Left / Right / Up / Down | Option + Shift + Arrow Keys |
| Swap Left / Right | Option + Ctrl + H / L |
| Move Column Left / Right | Option + Ctrl + Shift + ← / → |
| Action | Shortcut |
|---|---|
| Switch to Workspace 1-9 | Option + 1-9 |
| Move Window to Workspace 1-9 | Option + Shift + 1-9 |
| Toggle Back & Forth | Option + Ctrl + Tab |
| Summon Workspace to Current Monitor | Ctrl + Shift + 1-9 |
| Action | Shortcut |
|---|---|
| Focus Monitor in Direction | Ctrl + Cmd + Arrow Keys |
| Focus Next Monitor | Ctrl + Cmd + Tab |
| Move Window to Monitor | Option + Ctrl + Arrow Keys |
| Action | Shortcut |
|---|---|
| Cycle Column Width | Option + . / Option + , |
| Toggle Full Width | Option + Shift + F |
| Balance Sizes | Option + Shift + B |
| Toggle Tabbed Column | Option + T |
| Consume Window into Column | Option + Ctrl + [ / ] |
| Expel Window from Column | Option + Ctrl + Shift + [ / ] |
| Action | Shortcut |
|---|---|
| Toggle Fullscreen | Option + Return |
| Window Finder | Ctrl + Option + Space |
| Menu Anywhere | Ctrl + Option + M |
| Menu Palette (searchable) | Ctrl + Option + Shift + M |
| Quake Terminal | Option + ` |
| Overview | Option + Shift + O |
A drop-down terminal (powered by Ghostty) that slides in from the screen edge:
- Toggle with
Option + ` - Supports multiple tabs and splits within tabs
- Configure position (top/bottom/left/right/center), size, and opacity in Settings
- Auto-hides on focus loss (optional)
Quickly search and jump to any window:
- Press
Ctrl + Option + Space - Type to fuzzy-search by window title or app name
- Use arrow keys to select, Enter to focus
Access any application's menu from your keyboard:
Ctrl + Option + M- Shows native menu at cursorCtrl + Option + Shift + M- Searchable menu palette
See all windows at once with thumbnails:
- Press
Option + Shift + O - Click a window to focus it
- Search to filter windows
A visual indicator showing your workspaces:
- Displays open apps per workspace
- Click to switch workspaces
- Configure position, height, and appearance in Settings
- Workspaces - Create named workspaces in Settings to organize by project or context
- App Rules - Exclude problematic apps from tiling or assign them to specific workspaces
- Mouse - You can also drag windows to reposition them interactively
- Trackpad Gestures - Use scroll gestures with modifier keys to adjust column width
Access settings by clicking the O menu bar icon and selecting Settings or App Rules.
Configure per-application behavior in Settings > App Rules:
- Always Float - Force specific apps to always float (e.g., calculators, preferences windows)
- Assign to Workspace - Automatically move app windows to a specific workspace
- Minimum Size - Prevent the layout engine from sizing windows below a threshold
Requirements:
- SwiftPM with Swift 6.2+
- macOS 26.0+
If you find OmniWM useful, consider supporting development:
Issues and pull requests are welcome on GitHub.





