Omahub
← All plugins
F

Oligarchy Screensaver

by Fabio Pauli

Rotates oligarchy.fyi taglines beneath Omarchy's screensaver banner.

Security review

No obvious issues detected

Deterministic scan — not a security guarantee

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

The plugin is a straightforward service that listens to Hyprland window events and runs a bundled bash script to rotate a screensaver banner. It writes only to the expected configuration file, creates a backup, and uses atomic file replacement. No network, privilege escalation, or obfuscation is present.

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/fabiopauli/omarchy-oligarchy-plugin --enable
Appearance #Hyprland #quickshell

Oligarchy Screensaver for Omarchy

An oligarchy.fyi skin for Omarchy Quattro's screensaver: the site's exact 100-column pixel OLIGARCHY banner plus its 13 rotating taglines.

This is a headless service plugin. It listens to Hyprland's window events inside omarchy-shell, starts a six-second timer while an org.omarchy.screensaver window exists, and stops the timer when the last screensaver window closes. It adds no bar button; a second launcher would duplicate existing screensaver controls without helping the rotation service.

Install

Add and enable the plugin:

omarchy plugin add https://github.com/fabiopauli/omarchy-oligarchy-plugin.git --enable

Try it with:

omarchy-launch-screensaver force

Inspect the running service with:

omarchy-shell io.github.fabiopauli.oligarchy-screensaver status

The first write backs up the previous banner to:

~/.local/share/oligarchy/screensaver.txt.omarchy-backup

The backup is outside the plugin checkout, so removing the plugin does not discard it.

Remove and restore the previous banner

Disable the service before restoring the banner so it cannot overwrite the restored file during a running screensaver:

omarchy plugin disable io.github.fabiopauli.oligarchy-screensaver
cp ~/.local/share/oligarchy/screensaver.txt.omarchy-backup \
  ~/.config/omarchy/branding/screensaver.txt
omarchy plugin remove io.github.fabiopauli.oligarchy-screensaver --yes

If no backup exists, reset to Omarchy's current stock banner instead:

omarchy branding screensaver reset

How it works

Omarchy opens a fullscreen terminal on each monitor and runs ttfx over ~/.config/omarchy/branding/screensaver.txt. The file is otherwise static.

Service.qml follows the same Hyprland window-event pattern as Omarchy's idle service. On the first screensaver window it runs the bundled writer immediately and every six seconds thereafter. Multiple monitor windows share one timer and one tagline. No polling process, socat, systemd user unit, PATH shim, or separate daemon is involved.

bin/oligarchy-screensaver-text chooses a random tagline other than the one currently displayed, pads it against the banner's fixed 100-column width, and atomically swaps a temporary file into place. The rename prevents ttfx from seeing a torn banner if it reads during a rotation.

Banner fixture

The banner is not figlet output and not a rasterised or traced image. oligarchy.fyi's logo is a vectorised <pre>, and bin/oligarchy-make-logo decodes the SVG rectangles back into their exact original ▀▄█▌ characters on a 100 × 9 grid.

Verify the fixture with:

fixture=$(mktemp)
cp share/logo.txt "$fixture"
./bin/oligarchy-make-logo
diff -u "$fixture" share/logo.txt
rm -f "$fixture"

Development

omarchy plugin validate .
shellcheck bin/oligarchy-screensaver-text
python -m py_compile bin/oligarchy-make-logo

QML load diagnostics are written to the active Quickshell log under $XDG_RUNTIME_DIR/quickshell/by-pid/<pid>/log.log.

Security and privacy

Omarchy plugins run unsandboxed. This plugin observes only Hyprland window metadata and invokes its bundled local writer. It does not use the network, elevate privileges, or inspect window contents. See SECURITY.md for the complete file and process surface.

License

MIT