preamp/for omarchy
v0.1.3·system equalizer

Tune everything you hear on Omarchy.

Every app plays through preamp into your speakers or headphones. Pick a preset from the bar, shape ten bands in the window, or load a correction curve for your headphones.

Follows your Omarchy theme, rounding and language.
preamp on Omarchy: a preset from the bar, a band in the window, then bypass to compare
a preset from the bar, a band in the window, then bypass to compare watch with sound · 25 s
install

Four commands and it's on the bar.

You need Omarchy with the Omarchy shell, PipeWire and WirePlumber.

release packagesh
$curl -LO https://github.com/bjarneo/preamp/releases/download/v0.1.3/preamp-0.1.3-1-x86_64.pkg.tar.zst
$sudo pacman -U preamp-0.1.3-1-x86_64.pkg.tar.zst
$systemctl --user enable --now preamp.service
$preamp shell install

pacman installs the dependencies. The service starts now and at each login. The last command puts the preamp widget on the Omarchy bar.

from sourcesh
$git clone https://github.com/bjarneo/preamp.git
$cd preamp
$./bin/install

bin/install builds the package with makepkg, installs it, starts the service and puts the widget on the bar.

Open the window with super alt e. Add to ~/.config/hypr/bindings.lua:
o.bind("SUPER + ALT + E", "preamp", { launch = "preamp" })
features

Everything between your apps and your speakers.

1Ten bands per channelA parametric equalizer for each channel. Edit L and R together or apart.
2Automatic preampIt cuts the input so that the loudest point of the curve stays at 0 dB.
3Live analyzerSee the signal after the equalizer, under the curve you are shaping.
4Presets on number keysTwelve built-in presets and your own. Keys 1 to 6 apply the everyday presets, 7 and 8 the others you used last.
5AutoEq headphone profilesCorrection curves from AutoEq, for more than 6,000 headphones.
6LV2 and LADSPA effectsEffects after the equalizer, for example a compressor or a limiter from lsp-plugins-lv2.
7Room, width, balanceA room reverb, stereo width and balance.
8Volume to 150%Plus volume and mute for each app.
9Auto-switch rulesA preset can follow an output, an app in a call, or a fullscreen app.
10Output notificationsA notification when preamp moves to a new output.
11Follows your themeThe window and the bar widget take your Omarchy colors, rounding and font.
1250 languagesThe same set as Omarchy.
views

Four views. tab moves between them.

The presets view is the everyday view. Studio, Modes and Signal chain have the detailed controls. The window opens on the view you used last.

The presets view: one card for each preset with its curve, the output and the volume
presetsOne card for each preset with the shape of its curve, and the output and volume below the cards. Click a card or press its number to use the preset.
The studio view
studioThe curve over the analyzer, the ten bands, presets and effects.
The modes view
modesBasic, graphic and parametric editing, and the command bar.
The signal chain view
signal chainApps, equalizer, effects, room and output in the order the audio flows, and the auto-switch rules.
autoeq

Correct your headphones by name.

preamp reads the AutoEq profiles, more than 6,000 headphones. Give it the name of your model and the correction becomes a preset.

Type :pin in the command bar and the preset applies each time that output is selected. When you connect those headphones again, preamp moves to them and applies it.

terminalsh
$preamp autoeq "hd 650"
presets1–8
5Night
6Podcast
7HD 650 · AutoEQ●
8WH-1000XM5 · AutoEQ
bar widget

One click from the bar.

The widget is the preamp mark in the bar color. The tall block dims while the equalizer is off.

click
open the popover
right-click
bypass the equalizer
scroll
change the volume

To show the quick popover:

$omarchy bar set preamp variant quick
The full popover
full popover
The quick popover
quick popover
keys

Your hands stay on the keyboard.

Press ? in the window to show the keys for the view.

presets view

h l ← →
previous or next preset
j k ↓ ↑
preset above or below
- +
volume down or up by 5%
1–8
apply a preset
b
bypass the equalizer
tab
next view
q
quit

other views

h l ← →
select a band
j k ↓ ↑
band gain down or up
H L
band frequency down or up
J K
band Q down or up
0
set the band gain to 0
c
channel: L+R, L or R
m
mode: basic, graphic or parametric
:
open the command bar

command bar · also finds presets and AutoEq profiles

w NAME
save the curve as a preset
rm NAME
delete a saved preset
pin
apply this preset each time this output is selected
unpin
remove the pin from this output
command line

Script it.

Each command starts the audio service if it is not running, exits with 0 or 1 and writes errors to stderr. Add --json to get the full answer of the service.

To teach coding agents to use these commands, run preamp skill install.

terminalsh
$preamp status
$preamp preset "Bass boost"
$preamp autoeq "hd 650"
$preamp band 3 --freq 125 --gain -2 --q 1.4
$preamp bypass on
$preamp outputs
$preamp output "Laptop Speakers"
$preamp volume 120
how it works

One sink in front of your output.

The preamp.service user service runs preamp daemon. The daemon creates a PipeWire sink named preamp and makes it the default output. Apps play into this sink. The daemon runs the audio through the equalizer and plays it into the output that you select.

appsSpotify, Discord…
default sinkpreamp
eqten bands
pluginslv2 · ladspa
spatialroom · width
outputyour device

Press 1 and hear the difference.