Omahub
← All plugins
M

Display Watcher

by Matheus

Turn the laptop display off when an external monitor is connected and back on when it is disconnected, using Omarchy's own internal-monitor toggle.

Security review

No obvious issues detected

Deterministic scan — not a security guarantee

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

The plugin is a simple QML service that reacts to monitor events and toggles the internal display using Omarchy's own command. The embedded shell script only queries Hyprland and calls the standard toggle, with no harmful operations, network access, or persistence. The deterministic scan found no issues, and manual review confirms the code is benign.

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/mfellipeso/omarchy-display-watcher --enable
Hardware #Hyprland #quickshell #system

Display Watcher — Omarchy shell plugin

Turns the laptop display off when you connect an external monitor, and back on when you disconnect it. No bar widget, no daemon scripts — just a tiny service plugin running inside omarchy-shell.

Install

omarchy plugin add https://github.com/mfellipeso/omarchy-display-watcher.git --enable

How it works

The service listens to Hyprland monitor events straight from Quickshell and reconciles the laptop panel through Omarchy's own toggle (omarchy-hyprland-monitor-internal) — so it behaves exactly like the built-in keybinding: same notifications, same guards (never disables the only active display, respects mirror mode), same state flag.

flowchart TD
    E["Hyprland event<br/>monitoradded / monitorremoved"] --> F{"Internal panel<br/>eDP / LVDS / DSI?"}
    F -- "yes" --> I["Ignore — own actions and<br/>manual toggles echo back here"]
    F -- "no" --> R["Reconcile at 0s / 1s / 3s<br/>(a fresh monitor can take a<br/>moment to become active)"]
    R --> D{"External monitor<br/>active?"}
    D -- "yes" --> OFF["omarchy-hyprland-monitor-internal <b>off</b><br/>🔔 Laptop display disabled"]
    D -- "no" --> ON["omarchy-hyprland-monitor-internal <b>on</b><br/>🔔 Laptop display enabled"]

It also reconciles once when the shell starts, covering logins that begin already docked.

Behavior notes

  • Re-enable the laptop display manually while docked and the plugin respects it — the policy is only re-applied on the next monitor change.
  • Clamshell mode (lid closed) stays with Omarchy's stock watcher; this plugin only manages the flag it sets itself.
  • When the last real monitor is unplugged while the panel is off, Hyprland spawns a virtual FALLBACK output. The reconcile check ignores it (and HEADLESS-*), so you never get stranded on a black screen — a case the stock omarchy-hyprland-monitor-external-active check gets wrong.

Update / remove

omarchy plugin update mfellipeso.display-watcher
omarchy plugin remove mfellipeso.display-watcher

Removal is clean: the plugin only calls Omarchy's own toggle and writes no state of its own. If the laptop panel is off when you remove it, turn it back on with the built-in keybinding or omarchy-hyprland-monitor-internal on.

Dependencies

Nothing beyond a stock Omarchy install — Hyprland, omarchy-shell (Quickshell), and the omarchy-hyprland-monitor-internal command that ships with Omarchy.

License

MIT