github BarutSRB/OmniWM v0.4.0

4 hours ago

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

Watch the demo

Upgrade notes

  • OmniWM now explicitly requires macOS Shared Spaces to be configured correctly. If Displays have separate Spaces is still enabled, startup is gated until that is fixed.
  • Ctrl + Option + Space now opens a unified Command Palette for both windows and app menus.
  • In Niri, dedicated consume/expel hotkeys are gone. Move Left and Move Right now 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.

Don't miss a new OmniWM release

NewReleases is sending notifications on new releases.