Every flag GlavaSharp accepts, grouped by what it affects. This mirrors
the reference comment block at the top of src/GlavaSharp/Program.cs —
that file is the source of truth if this ever drifts.
Force rendering onto a specific GPU (index from --list-gpus). Sets DRI_PRIME/NVIDIA prime-offload env vars before the GL context is created. Also picks the GPU --fft-device gpu runs on, since it shares the same context.
See GPU Selection for how the index
maps to a real device.
rc.glsl's setbufsize (rounded up to a power of two), else 2048
FFT/audio window size in samples, must be a power of two. Bigger = more bins (bins = n/2) and more smoothing lag; smaller = fewer bins but snappier.
--fft-attack <0..1>
0.6
Gravity smoothing: how fast bins rise on a louder reading.
--fft-decay <0..1>
0.08
Gravity smoothing: how fast bins fall back down on a quieter reading.
--fft-gain <n>
40
Log-compression contrast for bin magnitudes before display; higher = more contrast between quiet and loud.
--fft-device <cpu\|gpu>
cpu
Which FFT backend runs: cpu (works everywhere) or gpu (GLSL compute shader; needs GL 4.3 + compute shaders + SSBOs, and caps --fft-size at 2048). See FFT & Frequency Bucketing.
--freq-scale <name>
log2
Perceptual scale raw FFT bins get bucketed into before any shader sees them: log2, mel, bark, erb, or linear (no bucketing, raw bins). See FFT & Frequency Bucketing for why this matters.
Render pinned behind desktop icons via X11 EWMH hints instead of a normal window (GLava's -d). X11 only — forces --platform x11 internally. Also honored via rc.glsl's #request setxwintype "desktop" when this flag isn't passed.
--desktop-geometry X,Y,W,H
whole virtual screen
Place/size the desktop-mode window at an exact rect instead of covering the whole screen. Only applies with --desktop.
--desktop-monitor <index>
—
Cover exactly this monitor (index from --list-monitors) instead of the whole virtual screen. Mutually exclusive with --desktop-geometry. Only applies with --desktop.
Verified on XFCE/xfwm4 only — see
Desktop-Embedded Mode for what's
implemented and what isn't (GNOME, native Wayland).
Live control channel bind host. Set to 0.0.0.0 for LAN access (e.g. a phone on the same network) — there's no authentication, so only widen this on a network you trust.
--control-port <n>
8642
Live control channel port. Running multiple instances at once needs a distinct port per instance — a bind failure just disables the control channel for that instance (logged warning, not fatal).
Runs aurora pinned behind desktop icons on monitor 1, FFT on the GPU
with ERB perceptual bucketing, rendering pinned to GPU index 1, control
channel reachable from the LAN on port 9000, with debug logging on.