Rule-based volume control for PulseAudio.

e3f7845 Make Lua 5.3 a hard dependency

7 months ago

2e90522 Expose log functions in Lua

3 years 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
  • scdoc, a simple man page generator (to generate the documentation).


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.