Omahub
← All plugins
D

Minimized windows

by Dev-Herni

Show minimized windows in the bar and restore them

Security review

No obvious issues detected

Deterministic scan — not a security guarantee

None
Risk level
None
Analyzed commit
d76107d
Scanned
4 weeks 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
d76107d
Reviewed
4 weeks ago

This is a benign Quickshell bar widget that tracks and restores minimized windows via standard Hyprland dispatchers. It writes only a small state file under ~/.local/state and performs no network, destructive, or obfuscated operations. The deterministic scan found no issues, and manual review confirms the code is safe.

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/Dev-Herni/waybar-minimize-plugin --enable
Desktop #bar

Minimized windows — Omarchy bar widget

Minimized windows in the Omarchy bar

A Quickshell bar widget for Omarchy that tracks windows minimized to Hyprland's special:minimized workspace and shows one clickable Nerd Font icon per window in the bar. Clicking an icon restores that exact window.

Replaces the original Waybar module with a native Omarchy plugin: the bar widget itself does no polling and no socat. It reads Quickshell's Hyprland models, so icons update instantly on openwindow/closewindow/movewindow/ workspace events. Restore (click or the optional keybind script) issues a single sequential hyprctl chain so float/geometry cannot race the workspace move.

Features

  • Event-driven: renders straight from Quickshell's Hyprland models — no polling, no subprocesses.
  • Per-window icons: one button per minimized window; clicking an icon restores that specific window (not just the most recent one).
  • Smart icons: per-class Nerd Font glyphs with tight fallbacks (ghostty/terminal, chrome/firefox/brave/zen, nautilus/thunar, spotify, vscode).
  • Floating-state memory: floating flag and geometry are snapshotted before minimize and re-applied on restore, surviving Hyprland's tendency to drop them across special-workspace round-trips. Snapshots persist to ~/.local/state/omarchy/dev-herni.minimized.json so a shell restart does not forget them; every bar instance (one per monitor) watches that file.
  • No IPC surface: restoring happens via a left-click on a bar icon or your own keybind running the bundled restore-last.sh — nothing else can trigger it.

Prerequisites

  • Omarchy (Quickshell shell + Hyprland)
  • A Nerd Font in the bar (the default Omarchy font already is one)

Installation

From anywhere (installs into ~/.config/omarchy/plugins/dev-herni.minimized):

omarchy plugin add https://github.com/Dev-Herni/waybar-minimize-plugin.git --enable --yes

Or add the bar widget from the Omarchy settings UI (omarchy menu -> Settings -> Bar), picking Minimized windows from the widget catalog.

Keybindings

The widget needs no configuration. Add whatever keybinds you like to ~/.config/hypr/bindings.lua — the two basics are plain Hyprland dispatches, no plugin involved:

-- Minimize the focused window into the hidden workspace
o.bind("SUPER + M", "Minimize window", "hyprctl dispatch 'hl.dsp.window.move({ workspace = \"special:minimized\", follow = false })'")

-- Show / hide the minimized-windows overlay
o.bind("SUPER + ALT + M", "Toggle minimized overlay", "hyprctl dispatch 'hl.dsp.workspace.toggle_special(\"minimized\")'")

Optional: a restore-last keybind

Restoring a specific window is one click on its bar icon. If you also want a keyboard shortcut for "restore the most recently minimized window", bind the small script that ships with this plugin:

o.bind("SUPER + SHIFT + M", "Restore last minimized window", "~/.config/omarchy/plugins/dev-herni.minimized/restore-last.sh")

The script talks straight to Hyprland (hyprctl + jq, both ship with Omarchy). The plugin itself exposes no IPC, so nothing on your system can trigger restores behind your back — window state only changes when you click an icon or run the script yourself.

The script restores floating state and saved geometry the same way a bar click does: it reads the window's current Hyprland client info, then the widget's snapshot file (~/.local/state/omarchy/dev-herni.minimized.json) if Hyprland dropped the floating flag while the window was parked. Restore always targets the focused monitor's active workspace, even if the minimized overlay is currently open.

How it works

  • Minimizing moves the focused window to the special workspace special:minimized (persistent overlay, visible when toggled).
  • The widget watches that workspace's toplevels and shows one icon per window, ordered by focus history.
  • Left-clicking an icon moves that window back to the focused monitor's active workspace, re-applies its floating state/geometry if it had any, focuses it, and hides the special-workspace overlay if it is showing, using Hyprland's Lua dispatcher syntax: hyprctl dispatch 'hl.dsp.window.move({ window = "address:0x...", workspace = <id>, follow = false })'.

License

MIT License

Removal

omarchy plugin remove dev-herni.minimized --yes

Apart from the state file described above (~/.local/state/omarchy/dev-herni.minimized.json), the plugin creates no files outside its own folder.