Disclaimer: this program was written with AI agents.
https://github.com/YaBulochka/appvol
I made this because I needed to control the volume of individual apps from the keyboard. It seemed like a pretty good idea, so here it is: appvol!
I used to get by with a hacky bash script bound to a hotkey that adjusted Spotify, but it had its problems and couldn't be scaled to more programs.
Plasma's volume applet and pavucontrol do per-app volume too, but with the mouse. appvol is for the keyboard.
What it does
- Change the volume of an app straight from the keyboard, without losing focus.
- Control the volume of whichever window you are currently focused on.
- Profiles: a profile controls a group of chosen apps, or ALL apps except the ones you exclude.
- Auto mode: the keys cycle through the focused window and every app that is currently playing audio.
- Native integration with Plasma Shortcuts and the Plasma OSD, plus a Qt GUI for profiles and settings.
Where it's useful for me
You’re sitting there playing, really getting into the vibe, and you just want to crank
the music volume way up—no need to Alt-Tab or jump over to a second monitor;
you just hit a hotkey, and—BOOM—it’s louder, or you can turn it back down. It’s fantastic.
In games while I'm in a voice chat: with two key presses I can make the game
louder or mute Discord completely, and then unmute it the same way. Or say
you're in a really tense clutch in CS2: one hotkey mutes EVERYTHING except CS2.
Packages
The program is split into two packages:
- `appvol`: the CLI and the daemon
- `appvol-gui`: the interface for profiles and other settings
Available for Arch (`.pkg.tar.zst`), Debian-based (`.deb`) and Fedora-based (`.rpm`), plus an install script for any other distribution (as long as its dependencies are met).
Status and limits
- Tested on Arch, KDE Plasma 6.7/6.8 (Wayland) only. Plasma 5 is not supported.
- KDE only for now. I may port it to other desktops in the future.
- Bug reports from other setups (distro, Plasma version, `appvol list` output) are very welcome, and so is any feedback.
I hope someone finds it useful :)