Omahub
← All plugins
M

Minimize

by Mike Gardner

Minimize Hyprland windows into Omarchy bar chips with icons, live previews, and interactive Peek.

Security review

No obvious issues detected

Deterministic scan — not a security guarantee

None
Risk level
None
Analyzed commit
5c29836
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
5c29836
Reviewed
1 month ago

The plugin implements window minimize/restore by moving clients between Hyprland special workspaces and issuing local hyprctl Lua dispatchers built from Hyprland-provided addresses and workspace names with proper JSON escaping. No shell is used, no network or persistence behavior exists, and the code is transparent and consistent with its documentation. The included deploy script is a development-only helper and not part of the plugin runtime.

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/gardnmi/omarchy-minimize --enable
Desktop #Hyprland #bar #quickshell

Omarchy Minimize

Minimize Hyprland windows into compact, clickable title chips in the Omarchy bar. Clicking a chip restores that exact window onto the workspace you are currently viewing.

Hyprland does not provide conventional desktop minimization. Omarchy Minimize implements the behavior by parking windows on the private special:omarchy-minimized workspace and using Hyprland's window addresses to restore the correct client.

Omarchy Minimize centered interactive Peek

Features

  • Adds a mouse-accessible minimize button to the Omarchy bar
  • Shows every minimized window as an individual application icon and title chip
  • Displays a live, non-interactive window preview after hovering a chip briefly
  • Opens the real window as a centered, interactive Peek on right-click
  • Restores a window onto the currently focused workspace
  • Tracks windows reactively through Quickshell without polling
  • Reconstructs its state after shell restarts from the Hyprland workspace
  • Supports horizontal and vertical Omarchy bars
  • Uses the active Omarchy theme, spacing, typography, and tooltips
  • Stores no separate state and starts no background processes

Requirements

  • Omarchy with the Quattro shell plugin system
  • Hyprland running in Lua configuration mode
  • Quickshell 0.3.0 or newer

Install

Review the source before installing. Omarchy plugins run as unsandboxed code inside the long-running shell process.

omarchy plugin add https://github.com/gardnmi/omarchy-minimize.git --enable

The widget defaults to the left bar section. If you installed it without --enable, enable it later with:

omarchy plugin enable io.github.gardnmi.window-shelf --section left

Quick Start

The plugin works immediately with the mouse: click the minimize glyph to send the active window to the shelf, then click its chip to restore it.

For keyboard control, first confirm SUPER + M is not already assigned:

omarchy menu keybindings --print

Then add this optional binding to ~/.config/hypr/bindings.lua:

o.bind("SUPER + M", "Minimize window", hl.dsp.window.move({
  workspace = "special:omarchy-minimized",
  follow = false,
}))

Apply and validate the change:

hyprctl reload
hyprctl configerrors

If SUPER + M is already assigned, choose another unused key instead of silently replacing its existing action. Installing Omarchy Minimize never modifies Hyprland bindings automatically.

Use

Input Action
Left click the minimize glyph Minimize the active window
Left click a title chip Restore that window on the current workspace
Hover a title chip Show a live preview and the complete window title
Right-click a title chip Open or close a centered, interactive Peek
SUPER + M from Peek Return the window to the shelf and restore its layout state

Omarchy Minimize live hover preview

The window list is global. On a multi-monitor setup, every live bar instance reflects windows parked on the shelf, and restoring uses the workspace focused at the time of the click.

Interactive Peek temporarily moves one exact client onto special:omarchy-window-peek, floats it at the configured size, and centers it over the current workspace. It is the real application window, so pointer and keyboard input work normally after you click it. Right-click its chip again or press SUPER + M while the Peek window is active to return it to the shelf. Switching normal workspaces also dismisses Peek. Left-click the chip while Peek is open to restore it permanently. Tiled windows return to tiled state; previously floating windows recover their prior size and position.

Configuration

Title chips default to 18 characters. Set maxTitleLength on the bar entry to change the limit. maxChipWidth controls the rendered chip width and previewDelay controls the hover delay in milliseconds. peekWidth and peekHeight control the centered interactive window size:

{
  "id": "io.github.gardnmi.window-shelf",
  "maxTitleLength": 24,
  "maxChipWidth": 220,
  "previewDelay": 350,
  "peekWidth": 960,
  "peekHeight": 640
}

Update

omarchy plugin update io.github.gardnmi.window-shelf

Omarchy rescans plugins after an update; a shell restart is not normally needed.

Remove

Restore any windows you still need before removing the plugin, then run:

omarchy plugin remove io.github.gardnmi.window-shelf

Removing the plugin does not close parked applications or move them out of the special workspace. If the plugin is unavailable while windows remain parked, reveal the shelf with:

hyprctl dispatch 'hl.dsp.workspace.toggle_special("omarchy-minimized")'

Move or close those windows normally before hiding the special workspace again.

Data And Privacy

  • The plugin reads Quickshell's in-process Hyprland toplevel and workspace models, including window addresses, application IDs, and titles.
  • While a chip is hovered, Quickshell requests a local live compositor export of that exact window to render its preview. The frame remains in the shell process and is discarded when the preview closes.
  • Minimizing, restoring, and interactive Peek issue only local Hyprland Lua dispatchers. Peek temporarily changes the exact client's workspace, floating state, size, and position, then restores its prior layout state when closed.
  • Desktop-entry metadata and icons are resolved from the local application database and icon theme.
  • The plugin does not save screenshots, access application files, use the network, execute a shell, or persist state.
  • Window titles are rendered locally in the bar and may contain application or document names supplied by those applications.

Troubleshooting

The widget does not appear

Confirm Omarchy discovered and enabled it:

omarchy plugin list
omarchy plugin enable io.github.gardnmi.window-shelf --section left
omarchy-shell shell rescanPlugins

A window is still hidden

Show the private special workspace:

hyprctl dispatch 'hl.dsp.workspace.toggle_special("omarchy-minimized")'

If the window appears there, move it to a normal workspace or restore it after reenabling Omarchy Minimize.

The keyboard shortcut does nothing

Confirm the binding exists and Hyprland has no configuration errors:

omarchy menu keybindings --print
hyprctl configerrors

Development

Deploy the complete working tree while Quickshell is stopped, then restart it:

mise run restart

This replaces the installed local plugin copy. Keep repository work in this directory rather than editing ~/.config/omarchy/plugins/ directly.

Validate the repository with:

omarchy plugin validate .
qmllint -I /usr/share/omarchy/shell BarWidget.qml
bash -n deploy-local.sh
mise run test
git diff --check

License

Omarchy Minimize is licensed under the MIT License.