OmniWM 0.4.0
OmniWM 0.4.0 is focused on finishing the multi-monitor and workspace rework, consolidating command access, and hardening layout, focus, and restore behavior across real-world macOS edge cases.
Demo Video
Upgrade notes
- OmniWM now explicitly requires macOS Shared Spaces to be configured correctly. If
Displays have separate Spacesis still enabled, startup is gated until that is fixed. Ctrl + Option + Spacenow opens a unified Command Palette for both windows and app menus.- In Niri, dedicated consume/expel hotkeys are gone.
Move LeftandMove Rightnow handle consume/expel behavior when appropriate. - Hidden Bar no longer has a separate settings toggle. It is always available from the menu bar icon, with an optional hotkey.
- Obsolete hotkey commands and bindings were removed, so it is worth checking Hotkeys after upgrading.
New and improved
- Completed the multi-monitor workspace model with more reliable monitor identity, workspace restoration, and monitor-aware routing.
- Reworked workspace and monitor configuration, including a redesigned Monitor tab and updated mouse warp behavior.
- Added a unified Command Palette that replaces the old split between window finding and searchable menu actions.
- Added summon-right window moves to the Command Palette.
- Improved Niri layout behavior with separate default column width vs cycle presets, better single-window aspect ratio handling, and move commands that integrate consume/expel flows.
- Localized overview layouts per monitor for more consistent multi-display behavior.
- Improved status menu clarity with stronger active-state and hover feedback.
- Updated built-in settings defaults to better match current behavior.
- Optimized border handling for both Dwindle and Niri.
Fixes
- Preserved tiling layout, borders, and workspace-to-monitor assignment through display reconnects and KVM switch events.
- Fixed hidden window restore behavior and monitor-aware hide handling.
- Fixed monitor routing and workspace fallback edge cases.
- Fixed keyboard focus restoration, owned-window focus state, pending focus confirmation, and focus-follows-mouse hit testing across layouts.
- Fixed Niri scroll gestures to use the correct per-monitor viewport context and hardened gesture lock teardown.
- Fixed offscreen Niri column placement from rendered frames.
- Fixed fullscreen AX writes, native fullscreen round-trip restoration, and Niri viewport width toggles.
- Fixed exact AX destroy identity handling and improved event intake/reconciliation across AX, mouse, and CGS paths.
- Fixed Ghostty tab window replacement handling without debug scaffolding.
- Firefox and Zen browser Picture-in-Picture windows now float correctly.
- Fixed command palette selection and menu target fallback.
- Fixed keypad hotkey labels.
- Fixed run-loop cancellation and timeout resumption behavior.
- Preserved v0.3.3 settings export compatibility.
Documentation and project updates
- Updated the README and install/quick-start guidance, including the Shared Spaces requirement and the new Command Palette behavior.
- Removed outdated Hidden Bar settings surface and obsolete hotkey/menu references.
- Continued under-the-hood refresh scheduling, workspace ownership, and state consolidation work to reduce layout and focus regressions.
Verification and tests
- Added or expanded regression coverage for monitor restoration, workspace state, refresh routing, layout planning, AX/CGS event handling, focus recovery, mouse warp, command palette behavior, settings export/migration, and Niri/Dwindle layout behavior.