You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Momentum trackpad scrolling: Niri viewport scrolling now decelerates naturally after you lift your fingers.
Faster window overview: thumbnails are captured in parallel.
Less stutter when switching apps: blocking accessibility reads moved off the main thread.
Smoother animations and resizing: frame reads are skipped mid-animation and checked at settle, interactive resize renders without extra layout commits, and back-to-back relayouts coalesce instead of cancelling each other.
Less size-grid jitter: grid-snapping windows such as terminals stop jittering, and apps that refuse a size feed that back into layout so OmniWM fights them less.
Cheaper, more reliable Hyper key: the Hyper event tap only runs while Hyper is held, lowering idle cost while avoiding dropped or stuck state.
Correct animation timing per display: refresh-rate-only display changes and mixed-refresh monitor setups now stay in sync.
Fixes
Native fullscreen survives apps that recreate their window: Electron, TextEdit, and similar apps no longer leave phantom columns behind, later toggles keep working, suspend/restore is driven by Space topology, and restoring one fullscreen window no longer breaks another.
Focus-follows-mouse no longer warps the cursor on hover-driven focus. Keyboard and programmatic focus can still warp as intended. Thanks @m-hauck for the fix idea in #147.
settings.toml is preserved: custom and unknown keys survive when OmniWM rewrites the file.
Monitor orientation overrides stick across display updates and are reported over IPC.
No stray border on focused system-modal dialogs.
Stable window stacking: tiled windows keep z-order when the system restacks them.
OmniWM's own overlay and ghost windows are no longer mistakenly tiled.
Better window admission: Steam tiles by default, windows stop flapping between managed and unmanaged, a single transient rescan miss no longer drops a window, inactive-Space windows are not evicted, and focused-window admission retries before unmanaged fallback.
Sending a window across workspaces and back no longer leaves focus stuck.
Under the Hood
Major runtime rewrite: window, focus, viewport, scratchpad, monitor-session, Space-topology, layout-engine, and reconcile state now live in a single WorldStore, with every mutation routed through explicit commit events.
New EventIntake pipeline ingests CGS, AX, NSWorkspace, display, hotkey, IPC, and mouse events with off-main fact resolution.
Focus and activation effects now flow through IntentLedger and DeadlineWheel, replacing retry ladders with stamped intents and deterministic deadlines.
Surfaces such as borders, bars, tab rails, and fullscreen placeholders are derived by SurfaceReconciler.
Layout invariants are now hard asserts with unit coverage, plus a release-safe invariant-violation counter and debug-gated layout-build telemetry.
New deterministic replay tests cover permuted event-transport interleavings.
Architecture docs were rewritten around the four-stage runtime pipeline.
Release Integrity
OmniWM-v0.4.9.8.zip contains the Developer ID signed, notarized, and stapled OmniWM app.