Omahub
← All plugins
W

Lull

by Wyatt

Synthesised background noise — rain, ocean, wind, stream, fan and plain white/pink/brown — generated live from shaped noise, with sliders to dial each one in. No sample files.

Security review

No obvious issues detected

Deterministic scan — not a security guarantee

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

This plugin is a procedural ambient noise generator. It runs a local Python daemon that synthesizes audio and communicates via a unix socket, writes a config file, and uses pw-cat/paplay for playback. The source is transparent, well-documented, and shows no malicious behavior. The deterministic scan found no issues.

  • Runs a background Python process and listens on a unix socket, but this is clearly documented and local-only.
  • Requires python-numpy and uses pw-cat/paplay, which are standard dependencies for audio synthesis.
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/WyattB111/omarchy-lull --enable
Widgets #bar #quickshell #media

Lull

Background noise for Omarchy, generated live in the bar. Rain, ocean, wind, a stream, a fan, and plain white/pink/brown noise — each with sliders to dial it in.

There are no sound files. Every sound is synthesised from shaped noise as it plays, which is why the whole plugin is a few hundred kilobytes and why the sliders change the sound instantly instead of crossfading between loops.

The Lull mixer

Install

Review the repository, then add the plugin:

omarchy plugin add https://github.com/WyattB111/omarchy-lull.git

Accept the prompt to enable the plugin during installation.

For an unattended install from a repository you already trust:

omarchy plugin add https://github.com/WyattB111/omarchy-lull.git --enable --yes

Requirements

  • python-numpy — the synthesiser will not start without it. Install the python-numpy package before enabling the plugin. (Lull never installs anything itself; it only tells you when the package is missing.)
  • PipeWire (pw-cat), which Omarchy already ships. paplay is used as a fallback if pw-cat is missing.

Using it

The widget lands in the right-hand section of the bar.

Action What it does
Left click Open the mixer
Right click Start / stop
Middle click Next sound
Scroll Volume

Every sound keeps its own slider positions, so switching from Rain to Ocean and back returns the rain you had tuned. Muffle rolls the top end off everything (good for "through a wall"), Width sets how wide the stereo image is, and the sleep timer fades out over its last 90 seconds rather than cutting.

Optional keybindings

Keybindings stay user-owned. Add these to ~/.config/hypr/bindings.lua if you want them:

o.bind("SUPER + N",       "Lull mixer",       "omarchy-shell wyatt.lull mixer")
o.bind("SUPER + ALT + N", "Lull: toggle",     "omarchy-shell wyatt.lull toggle")
o.bind("SUPER + ALT + M", "Lull: next sound", "omarchy-shell wyatt.lull next")

The IPC endpoints are mixer, toggle, next, prev, louder, quieter.

From a terminal

The bundled engine is also a CLI, and it shares state with the bar live in both directions:

lull on|off|toggle
lull mode ocean
lull set volume=0.4 surf=0.8
lull sleep 30
lull status

It lives at ~/.config/omarchy/plugins/wyatt.lull/bin/lull. Symlink it onto your PATH if you want the short command:

ln -s ~/.config/omarchy/plugins/wyatt.lull/bin/lull ~/.local/bin/lull

What it does on your system

  • Runs a background process. bin/lull daemon, started on demand and exiting with your session. It holds the audio stream so sound survives a shell reload. Idle when stopped; roughly 1.5% of one core and ~40 MB while playing.
  • Executes pw-cat (or paplay) to play audio, and python3 to run itself.
  • Writes ~/.config/lull/config.json — your slider positions. Nothing else on disk is touched.
  • Listens on a unix socket at $XDG_RUNTIME_DIR/lull.sock, used by the bar widget and the CLI. It is not a network socket.
  • No network access at all.
  • Never starts playing on its own. Playback state is deliberately not restored, so a reboot is silent.

How the sound is made

Each 21 ms the engine draws a frame of random noise, multiplies it by a target spectral shape, inverse-FFTs it, and overlap-adds it with a square-root Hann window. That window sums to constant power at 50% overlap, so changing the shape between frames is a free crossfade — which is what lets you drag a slider mid-playback without hearing a click.

Rain and surf are then a matter of choosing the right shape and moving it: ocean gets a slow swell envelope that also opens the filter at the crest (so the foam arrives with the wave), wind gets a wandering resonance, and rain gets a layer of individually synthesised droplets sprinkled by a Poisson process, which is what turns hiss into rain.

Update

omarchy plugin update wyatt.lull

Remove

omarchy plugin remove wyatt.lull

That stops the widget and deletes the plugin. Your saved slider positions and the optional symlink are left behind deliberately; remove them yourself if you want nothing left:

rm -rf ~/.config/lull
rm -f ~/.local/bin/lull

Any keybindings you added to ~/.config/hypr/bindings.lua are yours to delete — the plugin never edits that file.

Validate from source

omarchy plugin validate .

Security

This plugin runs unsandboxed inside omarchy-shell when enabled, and it starts a background Python process. Review its source and the documented command, file, and socket behaviour before installing it.

License

MIT — see LICENSE.