github OmniNull/OmniWM v0.7.4
OmniWM v0.7.4

2 hours ago

What's New Since 0.7.3

Name your windows, place the workspace bar on any screen edge, and choose OmniWM’s interface language. OmniWM 0.7.4 also adds Niri controls and moves blocking focus and window queries off the main thread.

Window marks and language support

  • Find windows by name. Give live windows marks from the command palette or omniwmctl. Mark matches appear first in window search; focus a marked window across workspaces or summon it beside the focused tiled window. Marks last until the window closes or OmniWM quits.
  • Assign mark shortcuts. Set Mark and Remove Mark are available in Settings > Hotkeys and start unassigned. The palette also provides buttons and shortcuts for marking its selected window.
  • Bring recent windows forward. With an empty search, Windows mode lists the focused and recently focused windows first. Shift + Enter can move the selected window into an empty current workspace, including floating windows; floating windows cannot be summoned to the right.
  • Choose the app language. Settings > General now lets OmniWM use a different interface language from macOS. The default follows macOS, and changes apply the next time OmniWM starts.

Workspace and layout behavior

  • Place the workspace bar on any edge. Choose top, bottom, left, or right placement, with matching layout space, menus, and previews. Hidden Bar follows bar size changes and reveals concealed icons when the global workspace bar is disabled.
  • Use shortcuts above workspace nine. Assign Switch, Move, and Move Column shortcuts to higher-numbered workspaces, including dynamic workspaces.
  • Skip empty workspaces consistently. When Hide Empty Workspaces is enabled, relative navigation, workspace swipes, and Overview skip inactive empty workspaces. Direct workspace selection remains available.
  • Control Niri sizing and gaps. Grow and shrink increments are now configurable from 1% to 100%, defaulting to 5% instead of the previous 10%. A new Gaps at Screen Edges option lets inner gaps appear only between windows.
  • Keep Niri positioning predictable. Explicitly centered first and last columns stay centered during ordinary relayouts. A brief pill shows the column’s tabbed state, including when it contains only one window.
  • Avoid Dwindle fullscreen overlap. Arriving tiled windows, including restored windows, end layout fullscreen before being added.

Responsiveness and feature controls

  • Less blocking work during keyboard navigation. Niri keyboard and wheel focus now front apps off the main thread and target the chosen window directly, avoiding an initial activation of the app's previously active window. Layout passes skip a roughly 9 ms Screen Recording permission check once the wallpaper preview is captured, and Hidden Bar no longer rescans running apps on every app switch.
  • Measured keyboard gains. In captures with matching display-link timing, estimated missed animation frames per focus-changing keypress fell from 2.5 to 0.125. Median hotkey handling fell from 6.5 ms to 0.44 ms. Median time to the first animation callback fell from 18.7 to 9.0 ms across apps and from 10.9 to 7.1 ms within the same app.
  • Slow window queries move off the main thread. Ordinary frame-change WindowServer queries, including one recorded half-second wait, now run on a worker. New-window lookups and window lifecycle and rule metadata queries also run off the main thread. Closed windows release their cached previews.
  • Choose which features run. Overview and workspace bar hover previews can be disabled independently. Disabled features release their panels, observers, previews, and retained resources; the global workspace bar switch now takes precedence over monitor overrides.
  • Updated the embedded GhosttyKit terminal framework to 1.3.2-main+76895d97b (upstream changes).
  • Diagnostic captures provide more detail about focus, parking, frame reads, and preview activity.

Performance figures come from instrumented Release development captures on one Mac. They measure internal handling and animation callback timing; screen presentation latency was not measured.

Upgrade notes

  • settings.toml upgrades to schema 4 on first launch. The original is kept as settings.toml.pre-v4 (settings.toml.pre-v4.1 if needed); the rewritten file removes comments. Restore the backup before downgrading to 0.7.3.
  • Direct IPC clients must use protocol 17. The omniwmctl included in this release already uses it.

Thanks

Thank you to:

Full changelog: v0.7.3…v0.7.4

Website and documentation · Installation guide

Release Integrity

The app is signed, notarized, and stapled. SHA-256 hashes:

  • OmniWM-v0.7.4.zip: 1f1485e1d166831697e8cedb9c117577f5949fe00deeae8572bed6d6c58eb4e2
  • GhosttyKit.xcframework-v0.7.4.zip: 59e16cccd81ed87fde098bc40122154e640b950ba3b7b997879c786730b88c8e

Don't miss a new OmniWM release

NewReleases is sending notifications on new releases.