github BarutSRB/OmniWM v0.4.9.8
OmniWM v0.4.9.8

5 hours ago

OmniWM 0.4.9.8

Smoother and Faster

  • 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.
  • OmniWM-v0.4.9.8.zip SHA-256: 3d3be94b04c99e3f41299f87c79942d6dee7a5a43b84d437374d93ea6f01c752
  • GhosttyKit.xcframework-v0.4.9.8.zip SHA-256: 4b42ed3d073d8c777998227286d25d0be0a956ea043d59c2b3298d9d8bd52e8e

Don't miss a new OmniWM release

NewReleases is sending notifications on new releases.