Omahub
← All plugins
M

Overview

by moorgrove

Workspace overview with live window previews, drag-and-drop window moving, and a bar icon

Security review

No obvious issues detected

Deterministic scan — not a security guarantee

None
Risk level
None
Analyzed commit
646c2fa
Scanned
1 month ago

No potentially dangerous behavior detected in the analyzed commit.

Automated analysis only — not a security guarantee.

AI advisory review

No obvious issues detected

Language-model assessment · ~deepseek/deepseek-v4-flash-latest — advisory only

None
AI risk level
None
Recommendation
install
Model
~deepseek/deepseek-v4-flash-latest
Analyzed commit
646c2fa
Reviewed
1 month ago

The plugin is a workspace overview overlay that uses Hyprland IPC for expected window and workspace actions, and it only edits the user's bindings.lua after an explicit Apply/Clear in settings. The Python helper scripts use bounded, descriptor-safe file handling with no shell involvement, and the reviewed code contains no obfuscation, persistence, credential theft, or destructive behavior. This matches the deterministic scan's 'none' finding.

How this check works

This review combines the deterministic scan (the rule-based results above) with an independent look at the plugin's code by a language model. The model reads a trimmed sample of the repository's files, the manifest, and the README, then gives a plain-language risk level and a recommendation: install (no notable danger), review (look closer first), or avoid (clearly dangerous).

It runs on the same analyzed commit as the deterministic scan and is strictly advisory — it is not a security guarantee and never blocks a plugin by itself. A human moderator still reviews plugins before they are listed.

AI advisory only — automated analysis, not a security guarantee.

Install
$ omarchy plugin add https://github.com/itsmoorgrove/omarchy-overview --enable
Desktop #Hyprland

Overview

A workspace overview for Omarchy. Every space on one screen, with live window previews, drag-and-drop, and a bar icon that opens it in one click.

Overview

Demo

Features

  • Live previews — real, moving window content, including workspaces you are not on
  • True layout — windows sit exactly where Hyprland has them, tiled and floating
  • Drag to move — pull a window onto another space to send it there
  • One click — the bar icon toggles the overview; right-click opens settings
  • Your keybinding, your call — ships unbound; pick a combination in settings and nothing touches your Hyprland config until you apply it
  • Keyboard first — arrows to navigate, / to filter, enter to jump, esc to leave
  • Every monitor — each screen shows its own spaces, at its own aspect ratio

Install

omarchy plugin add https://github.com/itsmoorgrove/omarchy-overview.git
omarchy plugin enable moorgrove.overview

The icon appears in the left section of the bar. The plugin ships with no keyboard shortcut and writes nothing to your Hyprland configuration on install — open the overview from the bar icon, then set a shortcut in settings if you want one. Move the icon with omarchy bar move moorgrove.overview --section right.

Use

Action Result
Your shortcut, once set Toggle the overview
Click the bar icon Toggle the overview
Right-click the bar icon Open settings
Click a space Switch to it
Click a window Focus it
Middle-click a window Close it
Drag a window onto a space Move it there, silently
← → ↑ ↓ / h j k l Move around the grid of spaces
tab / shift+tab Step through all spaces, in order
1–0 Jump to a space
enter Open the selection
/ Filter windows by title or app
s Settings
esc Clear the filter, then close

Settings

Open the gear in the top right, or press s. Everything is a click.

Shortcut · window previews · window titles · wallpaper backdrop · empty spaces · special spaces · card size · backdrop dim · minimum spaces

No shortcut is set until you set one. Pressing Apply in the settings sheet is the only thing that writes to ~/.config/hypr/bindings.lua; it puts a single managed block there and rewrites that block whenever you change the combination. Applying unbinds whatever held that combination before, and the settings sheet names it first so you can decide. Clear removes the block, leaves the rest of the file untouched, and stays cleared. Everything else is stored inline on the plugin's entry in ~/.config/omarchy/shell.json.

How the bindings file is accessed

~/.config/hypr/bindings.lua is a predictable path that Hyprland sources and executes, so the plugin never touches it from QML directly. Everything goes through the small helpers in bin/:

Helper Does
omarchy-overview-bindings-read One open() with O_NOFOLLOW|O_NONBLOCK, then fstat/read on that same descriptor — regular file, owned by you, under a 512 KiB cap
omarchy-overview-bindings-write Builds the replacement in a fresh O_EXCL sibling and rename()s it into place relative to a held directory descriptor; the target is never opened for writing
omarchy-overview-binds Runs hyprctl -j binds under a timeout, reads its stdout incrementally against a hard 1 MiB ceiling — signalling the child the moment it crosses either bound — and re-emits only the five fields the conflict check uses

A symlink, FIFO, device node, or oversized file at the bindings path is refused with a message in the settings sheet rather than followed, blocked on, or read into the persistent shell.

Requirements

Omarchy 4 (Quattro) with omarchy-shell, Hyprland 0.56 or newer.

License

MIT