Omahub
← All plugins
R

Idle Settings

by Remco

Adjust the screensaver and lock timeouts from a small popup

Security review

No obvious issues detected

Deterministic scan — not a security guarantee

None
Risk level
None
Analyzed commit
4d6c6ef
Scanned
3 weeks 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
4d6c6ef
Reviewed
3 weeks ago

This plugin edits the user's shell.json to change idle screensaver and lock timeouts, using a deep-copy-and-merge approach that preserves other settings and refuses to save if the config is not fully loaded. The code is straightforward, well-commented, and does not perform any destructive or hidden actions. The deterministic scan found no issues, and the only risk is the minor one of editing a user config file, which is the plugin's stated purpose.

  • Writes directly to ~/.config/omarchy/shell.json, but only modifies the idle section and preserves the rest of the config with a full merge.
  • Requires a valid 'bar' object in shell.json before saving, preventing accidental data loss.
  • No network access, no external tools, no obfuscation, and no persistence mechanisms beyond normal config edits.
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/r3mcos3/omarchy-idle-settings --enable
System #bar #quickshell #system

Idle Settings

A small Omarchy bar-widget that adjusts the screensaver and lock timeouts (idle.screensaver and idle.lock in ~/.config/omarchy/shell.json) from a popup, instead of hand-editing the JSON.

Screenshot

<img src="assets/panel.png" alt="Idle Settings popup: Screensaver after 10m, Lock after 30m, and a Save button" width="300">

Features

  • Small centered popup — a full-screen layer-shell overlay with a compact card centered on screen, not a big window and not a popup anchored under the bar icon.
  • Live values — reads the current screensaver/lock timeouts straight from the running shell's config, so the panel always shows what's actually in effect (same fallbacks as Omarchy's own idle service: 150s screensaver, 300s lock, if unset).
  • Safe apply — edits are a local draft until you hit Save; closing the popup without saving discards them.
  • Validation — lock can't be set shorter than the screensaver.

Why a bar-widget, and why a layer-shell popup

Two design choices worth knowing if you're reading the source:

  • Bar-widget, not a keybinding-only panel. Omarchy's plugin/menu systems have no auto-discovery for a bar-icon-less "panel" plugin — you'd have to hand-add a keybinding (bindings.lua) or a menu entry (omarchy-menu.jsonc) yourself for it to be reachable at all. A bar-widget is the only plugin kind that's discoverable with zero manual config: omarchy plugin add ... --enable and the icon just appears.
  • Layer-shell (PanelWindow), not a plain FloatingWindow. A regular top-level window is something Hyprland's tiling layout manages — it does not float on its own, and needs a matching Hyprland windowrule (float/center/size) to look right. Nothing under this plugin's own files can apply that rule; it would mean a required manual hyprland.lua edit, which isn't "install and forget." A layer-shell surface (the same foundation as the bar itself, the emoji picker, etc.) isn't part of the tiling workspace at all, so it always renders as a small centered card with zero Hyprland-side configuration.

Dependencies

None beyond Omarchy itself. No helper scripts, no external tools — the panel reads and writes shell.json entirely through the shell's own shell.mutateShellConfig() API (the same one the built-in bar uses for things like toggling transparency), so there's nothing to install and nothing that can race the shell's own hot-reload.

Install

omarchy plugin add https://github.com/r3mcos3/omarchy-idle-settings.git --enable

Usage

Click the icon to open the popup. Adjust screensaver/lock with the +/− steppers (in minutes), then Save. Click outside the card or press Escape to close without saving.

Configure

omarchy bar move remco.idle-settings --section left    # or:
omarchy bar move remco.idle-settings --section center
omarchy bar move remco.idle-settings --section right

Uninstall

omarchy plugin remove remco.idle-settings

Uninstalling the plugin does not touch your current idle.screensaver / idle.lock values in shell.json — whatever was last saved stays in effect.