❮ cd ~/apps/omarchy
1Omarchy — bar widgets & plugins

Screensaver Lock

Lock the session every time the screensaver is dismissed. Dismissing it goes straight to black, then to the lock screen — your desktop never shows in between.

QML Omarchy — Arch + Hyprland

About

Stock Omarchy starts the screensaver after 150 seconds and locks after 300 — but only if the screensaver is still up at that point. Come back and press a key in between, and Omarchy treats it as activity, cancels the pending lock and shows your desktop. Whether you get a lock screen depends on how long you were away. Setting idle.lock equal to idle.screensaver doesn't help: locking closes the screensaver, so you'd never see it.

This plugin watches Hyprland for screensaver windows (event-driven, nothing polled) and runs omarchy-system-lock when one closes on an unlocked session. A transparent, click-through curtain sits on every screen while the screensaver runs; the moment it closes, the curtain turns black in the same frame and the lock starts behind it. Once the lock is confirmed the curtain goes — and if the lock never arrives within 8 seconds, it goes anyway, so you can't get stuck behind a black screen.

Highlights

  • Always locks — however long you were away, dismissing the screensaver means a lock screen
  • No desktop flash — a black curtain covers the gap between screensaver and lock
  • Fail-safe — the curtain lifts after 8 seconds if the lock doesn't come up
  • Works with lock plugins — anything implementing the stock lock IPC
  • Leaves nothing behind — no files written, no config edited, no network

Install

$ omarchy plugin add https://github.com/davidboulay/omarchy-screensaver-lock.git
# try it: start the screensaver, wait, press a key
$ omarchy-launch-screensaver force

Accept the prompt to enable it. It's keepLoaded, so run omarchy restart shell if it doesn't take effect right away.