Omahub
← All plugins
S

OmaQuote

by Sergey Nikulin

Presents a theme-aware Quote Surface on every display.

Security review

Review recommended · 1 finding

Deterministic scan — not a security guarantee

Low
Risk level
Low
Analyzed commit
cf86ef6
Scanned
1 month ago

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

OmaQuote is a benign desktop quote display plugin. It reads configuration and quote files, writes a small state file, and exposes IPC controls, but performs no dangerous operations. The only flagged item is a PNG magic-number string in a test file, which is a harmless fixture.

  • The deterministic scan flagged an obfuscated string in tests/test_release_package.py, but it is just a PNG header used for file-integrity testing and poses no risk.
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/snikulin/omaquote --enable
Desktop #quickshell

OmaQuote

OmaQuote is an Omarchy Quattro plugin that puts a theme-aware quote on your desktop. The same quote appears on every display, above the wallpaper and below application windows, without intercepting clicks. Its icon in the system bar opens Quote Controls for navigation and Automatic Advance Pause.

It works out of the box with a bundled quote collection. OmaQuote can advance when the wallpaper changes, on a timer, or on command. Wallpaper rotation stays entirely under Omarchy's control.

OmaQuote with the system-bar Quote Controls popover open

Why

I used Variety's desktop quotes and wanted the same experience without running a separate wallpaper manager: a small, native Omarchy plugin that feels like it belongs to the shell. OmaQuote is that Omarchy-native counterpart to Variety's quote feature.

Install

omarchy plugin add https://github.com/snikulin/omaquote.git --enable

Remove it with:

omarchy plugin remove io.github.snikulin.omaquote

Removing the plugin preserves your configuration, quotes, and selection state, so reinstalling picks up where you left off.

Upgrade from 1.0

Existing installations need to be disabled and enabled once so Omarchy registers the new system-bar widget:

omarchy plugin disable io.github.snikulin.omaquote
omarchy plugin enable io.github.snikulin.omaquote
omarchy restart shell

The restart clears Qt's cached QML directory listing so the newly added widget entry point can load. Fresh installations do not need this step. The quote icon is part of the enabled plugin; removing it from the bar disables OmaQuote rather than leaving an invisible background service behind.

Configure

OmaQuote needs no configuration. To override its defaults, create ~/.config/omarchy/omaquote/config.json:

{
  "version": 1,
  "visible": true,
  "selectionMode": "shuffle",
  "advanceOnWallpaperChange": true,
  "intervalMinutes": 0,
  "horizontalAlignment": "right",
  "verticalPositionRatio": 0.4,
  "maximumWidthRatio": 0.7,
  "maximumHeightRatio": 0.8,
  "screenMargin": 32,
  "fontFamily": null,
  "preferredFontSize": 24,
  "minimumFontSize": 12,
  "textColor": null,
  "attributionColor": null,
  "backdropColor": null,
  "backdropOpacity": 0.55,
  "shadow": false
}

All fields except version are optional. Colors accept #RRGGBB or #AARRGGBB; null follows the active Omarchy theme. Selection can be shuffle or random, alignment can be left, center, or right, and ratios range from 0 to 1. Set intervalMinutes to 0 to disable the timer. Configuration changes are picked up automatically.

Use your own quotes

Create ~/.config/omarchy/omaquote/quotes.json:

{
  "version": 1,
  "quotes": [
    {
      "text": "The quote text.",
      "attribution": "Optional credit"
    },
    {
      "text": "A quote without attribution."
    }
  ]
}

A user collection replaces the bundled collection. Changes are reloaded automatically, and invalid edits leave the last valid collection running.

Already have Variety quotes? Import them once with:

./tools/import-variety.py

By default, the importer reads Variety's standard quotes.txt location and writes the OmaQuote user collection. It never overwrites an existing collection unless you pass --force. See the import guide for custom paths and format details.

Control

Click the quote icon in the system bar to open the full current quote and its fixed Previous, Pause/Resume, and Next controls. Long quotes scroll without moving the controls. While the popover has keyboard focus, use Left, Space, Right, and Escape. Opening the popover does not activate Automatic Advance Pause.

The same controls are available over IPC:

omarchy-shell io.github.snikulin.omaquote previous
omarchy-shell io.github.snikulin.omaquote next
omarchy-shell io.github.snikulin.omaquote pause
omarchy-shell io.github.snikulin.omaquote resume
omarchy-shell io.github.snikulin.omaquote togglePause
omarchy-shell io.github.snikulin.omaquote show
omarchy-shell io.github.snikulin.omaquote hide
omarchy-shell io.github.snikulin.omaquote toggle
omarchy-shell io.github.snikulin.omaquote reload
omarchy-shell io.github.snikulin.omaquote status

status returns JSON for diagnostics and scripting. show, hide, and toggle affect the current session without rewriting your configuration.

Previous and Next traverse a browser-like, runtime-only Presentation History of up to 100 quotes; after going back, Next first moves forward through that history. Pause stops timer and wallpaper-triggered advances, while Backward and Forward Navigation remain available and no missed changes are queued. Resume begins a full Interval. A service restart or valid Configuration Reload clears Automatic Advance Pause; a Collection Reload preserves it.

Development

OmaQuote is developed entirely through software agents. They implement the code, tests, documentation, and reviews; I define and control the target functionality, constraints, and final decisions.

Run the complete test suite from the repository root:

./tests/run

Like Omarchy itself, this project is for people who love computers. If OmaQuote is useful to you, you are welcome to use it, study it, report problems, and help develop it further.

The plugin code is licensed under the MIT License. The bundled quote collection has separate, documented sources and licensing.