Omahub
← All plugins
T

Workspaces Per Monitor

by TheRuckh

Hyprland workspace switcher for multi-monitor setups: each bar shows only the workspaces of its own monitor.

Security review

No obvious issues detected

Deterministic scan — not a security guarantee

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

The plugin is a straightforward QML bar widget that reads workspace data from Hyprland and renders buttons; no install scripts, network calls, credential access, or destructive operations are present. The only command execution is a hyprctl dispatch with a numeric workspace ID passed through Util.shellQuote, which is safe. The deterministic scan found no issues and the manual review agrees.

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/ElRuckh/workspaces-per-monitor --enable
Appearance #workspaces

Workspaces Per Monitor

A Hyprland workspace switcher for the Omarchy Quattro bar that is aware of multiple monitors.

On a typical two-monitor Omarchy setup the default omarchy.workspaces widget shows the same numbered workspaces (1-10) on both screens. This plugin keeps each bar tidy by showing only the workspaces that belong to that monitor's bar, and it can additionally collapse a range of workspaces into a single compact slot.

Install

omarchy plugin add https://github.com/<yourname>/workspaces-per-monitor.git --enable

Usage

Add the widget to the bar and replace the built-in omarchy.workspaces entry in ~/.config/omarchy/shell.json:

{
  "bar": {
    "layout": {
      "left": [
        { "id": "omarchy.menu" },
        { "id": "theruckh.workspaces-per-monitor" }
      ]
    }
  }
}

Configure

All behavior is controlled by the widget's settings block in shell.json:

{
  "id": "theruckh.workspaces-per-monitor",
  "settings": {
    "perMonitor": true,
    "limit": 0,
    "dynamicStart": 0
  }
}
Setting Default Purpose
perMonitor true Show only the workspaces of the monitor this bar is on. Set false to list all workspaces on every screen (built-in behavior).
limit 0 Maximum number of workspace buttons in the fixed list. 0 means no limit.
dynamicStart 0 Collapse workspaces with id >= this value into a single trailing button. 0 disables the collapse.

Example: compact 1-5 + a single 6-9 slot

Show the first five workspaces as buttons and collapse 6-9 into one button that follows you to whichever of them is active:

{
  "id": "theruckh.workspaces-per-monitor",
  "settings": {
    "perMonitor": true,
    "dynamicStart": 6
  }
}

How per-monitor detection works

The widget has no direct window handle from the shell, so it resolves the monitor of the active bar surface by matching the widget's global position against each Quickshell screen's geometry. It then lists the workspaces that Hyprland reports on that monitor (each HyprlandWorkspace carries its monitor), instead of repeating the same id list on every screen.

Remove

omarchy plugin remove theruckh.workspaces-per-monitor

License

MIT