Rule-based volume control for PulseAudio.

2e90522 Expose log functions in Lua

7 months ago

86f3dca Rewrite the whole thing using Lua

8 months ago


pustule is a rule-based volume control for PulseAudio.

By writing some simple rules in Lua, it is possible to easily control the volume of all the applications that use PulseAudio to play sound on a computer.

The default configuration file, provided with pustule, shows some of these possibilities:

  • music players have their volume set to 50%
  • video players and web browsers have their volume set to 80%
  • other sounds are played at 60%




pustule is written in C. It's very lightweight and has few dependencies:

  • PulseAudio (specifically libpulse), as it acts as a PulseAudio client
  • Lua, a lightweight, extensible programming language.


git clone https://git.sr.ht/~schnouki/pustule
cd pustule
git submodule update --init

The default configuration file is pustule.lua. It's actually not a simple configuration file, but a Lua script, as documented below.

./pustule --config pustule.lua

If you don't add the --config option, pustule will try to load ~/.config/pustule.lua.