Omahub
← All plugins
J

Screensaver & Lock

by Jamie Stevens

Bar toggle that switches the screensaver and idle screen lock off and on.

Security review

Review recommended · 1 finding

Deterministic scan — not a security guarantee

Low
Risk level
Low
Analyzed commit
9ef4485
Scanned
1 month ago

Flagged patterns appear only in documentation files (README / docs) — descriptive examples, not executable code.

  • Docs external_hosts README.md:22

    Downloads or connects to an external HTTP(S) host.

    git clone https://github.com/bodhiblues/omarchy-idle-toggle.git \

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
9ef4485
Reviewed
1 month ago

The plugin is a simple QML bar widget that toggles Omarchy's idle/stay-awake state via the first-party service or the omarchy-toggle-idle CLI. No install-time code, network access, obfuscation, or destructive behavior was found; the only deterministic finding is a git clone URL in the README, which is documentation only.

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/bodhiblues/omarchy-idle-toggle --enable
System #bar #quickshell #power-management

Screensaver & Lock

A one-click Omarchy bar widget that switches the screensaver and the idle screen lock off and on.

The widget in both states

Icon State Meaning
󰌾 (dimmed) idle armed Screensaver and lock fire on their normal timeouts
󰅶 (highlighted) staying awake Neither the screensaver nor the lock will fire

Install

omarchy plugin add https://github.com/bodhiblues/omarchy-idle-toggle.git --enable

Or manually:

git clone https://github.com/bodhiblues/omarchy-idle-toggle.git \
  ~/.config/omarchy/plugins/io.github.bodhiblues.idle-toggle
omarchy plugin enable io.github.bodhiblues.idle-toggle --section right --before omarchy.power

Remove it from the bar with omarchy plugin disable io.github.bodhiblues.idle-toggle.

Requires Omarchy 4.x (the Quickshell shell). Earlier releases handled idle outside the shell and have no omarchy.idle service to drive.

How it works

The widget owns no state. It reads and writes the first-party omarchy.idle service's stay-awake flag — the same state used by:

  • the built-in StayAwake indicator in omarchy.indicators
  • omarchy toggle idle
  • omarchy-shell idle toggle|enable|disable|status
  • ~/.local/state/omarchy/indicators/stay-awake

Flip it from any of those and the icon follows, and vice versa.

That service is internal shell surface rather than part of the documented plugin contract, so the widget never assumes it is there:

  • The lookup (bar.shell.firstPartyServiceFor) is guarded and wrapped, and the service is only used once setIdleEnabled and stayAwake are confirmed present and of the expected type.
  • Otherwise the widget degrades to the omarchy-toggle-idle CLI, which writes the same state file: clicks shell out to omarchy-toggle-idle toggle, and the icon tracks reality by polling omarchy-toggle-idle status every 5s. Polling only happens in this degraded mode.
  • State is read from stayAwake rather than the service's own idleEnabled, which stays false until the state file has been read back and would otherwise flash the widget into "staying awake" at every shell start.

Timeouts themselves live in ~/.config/omarchy/shell.json under idle.screensaver and idle.lock (seconds).

Settings

One option, editable from the widget's settings or inline in shell.json:

{ "id": "io.github.bodhiblues.idle-toggle", "notify": true }
  • notify (boolean, default false) — desktop notification on each toggle.

Development

manifest.json and shell.json hot-reload, but an already-rendered bar widget keeps its old QML — after editing BarWidget.qml run:

omarchy restart shell

(omarchy-shell shell rescanPlugins refreshes the registry but does not re-instantiate a live widget.)

Validate and check it loaded:

omarchy plugin validate ~/.config/omarchy/plugins/io.github.bodhiblues.idle-toggle
qs log -p /usr/share/omarchy/shell --tail 100 | grep -i idle-toggle

(qmllint -I /usr/share/omarchy/shell <file>, as the plugin docs suggest, exits 255 silently on some setups — including on Omarchy's own widgets — so the shell log is the reliable check.)

Optional: keybinding

No plugin code needed; the shell already exposes the route:

-- ~/.config/hypr/bindings.lua
o.bind("SUPER SHIFT", "A", "Toggle screensaver & lock", "omarchy-shell idle toggle")

License

MIT — see LICENSE.