Omahub
← All plugins
S

Live Lock

by Sumiran Dahal

Session lock screen with the live wallpaper treatment behind the blur: parallax drift and an accent rim pulse.

Security review

No obvious issues detected

Deterministic scan — not a security guarantee

None
Risk level
None
Analyzed commit
c3930c6
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

Low
AI risk level
Low
Recommendation
install
Model
~deepseek/deepseek-v4-flash-latest
Analyzed commit
c3930c6
Reviewed
1 month ago

This plugin is a fork of the stock Omarchy lock screen with added visual effects. The code is transparent, uses standard PAM authentication, and only reads a local runtime spec file. No malicious or dangerous behavior was found.

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/sumdahl/omarchy-plugin-lock --enable
Appearance #quickshell

Live Lock

A fork of Omarchy's built-in omarchy.lock that carries the live wallpaper treatment onto the lock surface: the blurred background drifts, and an accent rim breathes in from the screen edges.

Companion to io.github.sumdahl.livewallpaper. Cosmetic only — the wallpaper plugin works fully on its own, including parking the desktop scene while the screen is locked. This adds the treatment behind the lock blur and nothing else.

Everything not listed under Divergence is stock, so rebasing onto a newer Omarchy should stay a small diff.

Install

omarchy plugin add https://github.com/sumdahl/omarchy-plugin-lock.git
omarchy restart shell

Enabling it moves the built-in omarchy.lock into disabledPlugins[], so exactly one lock screen is ever mounted. Password entry, the clock, the idle and secure-lock paths are untouched.

Check that the lock screen still works before you next walk away from the machine. A lock plugin that fails to mount leaves you with no lock screen at all, and that is a bad thing to discover later.

Removal

omarchy plugin disable io.github.sumdahl.lock
rm -rf ~/.config/omarchy/plugins/io.github.sumdahl.lock
omarchy restart shell

Disabling re-enables the built-in omarchy.lock, so you get the stock lock screen back. Confirm the lock screen works before walking away — a session with no lock plugin mounted has no lock screen.

Divergence from stock

LockView.qml

  • Wraps the wallpaper and its MultiEffect blur in an overscanned plate item and applies the parallax transform to that. Panning the source would make MultiEffect redo a 128px blur every frame for a result the blur discards; transforming the finished texture looks identical and costs one matrix.
  • Adds senseRim — four edge gradients, full screen, driven by a pulse envelope. Gradients rather than a radial shader so it composites over the plate without a second offscreen pass.
  • Reads its numbers from the resolved live spec (see below) with stock fallbacks, so a missing spec means stock behaviour.

The lock motion is damped only lightly against the desktop's — drift ×0.85, zoom ×0.8, same loop period. An earlier version halved the drift and doubled the period, which compounds to a quarter of the desktop's apparent speed, about 0.9 px/s. On a 128px blur that is indistinguishable from a still image. Blur removes the fine detail the eye tracks to perceive slow motion, so it hides movement rather than exaggerating it.

Service.qml

  • Watches $XDG_RUNTIME_DIR/omarchy-live/resolved.json — the merged spec the wallpaper plugin publishes — and hands it to both LockView mounts. Reading a theme's own live/live.json instead would see one of four layers and disagree with the desktop.
  • Notifies omarchy-shell livewallpaper setLocked <bool> on lock and unlock. The wallpaper plugin also detects lock state itself, so this is a faster, more explicit signal rather than a requirement.
  • A re-arm timer re-points the watcher, since a theme switch replaces the directory and the watch on the old inode dies with it.

Configuration

None of its own. Everything comes from the live spec — see the wallpaper plugin's README for the layer model. The keys this plugin reads:

Key Effect
lock.pulse Rim strength, 0 disables the rim entirely
motion.period Loop length, shared with the desktop
motion.driftX / driftY Pan amplitude, damped ×0.85 here
motion.zoom Breathing amplitude, damped ×0.8 here
pulse.everyMin / everyMax Seconds between rim pulses

To tune it, set those on the wallpaper side — omarchy-live tune lock.pulse 0 turns the rim off without touching this plugin.

Rebasing onto a newer Omarchy

diff -u /usr/share/omarchy/shell/plugins/lock/LockView.qml LockView.qml
diff -u /usr/share/omarchy/shell/plugins/lock/Service.qml  Service.qml

Re-clone with omarchy plugin clone omarchy.lock and re-apply the two changes above if upstream has moved on.