.TH PAVOLCTLD 1 pavolctld\-1.0 .SH NAME pavolctld - A minimal PulseAudio volume control/monitoring daemon .SH DESCRIPTION pavolctld is a minimal volume control daemon for PulseAudio written in C. It uses libpulse's threaded/asynchronous API for communicating with the PulseAudio server. Unlike other CLI solutions for controlling audio, pavolctld acts as a persistent client. This allows for realtime monitoring of output sinks/volume levels, low-latency volume control, and minimal overhead. The stdin/stdout buffers are used for IO, and all events are logged to stdout as csv data with a one letter prefix specifying the event type. Commands are sent via stdin using a similar syntax. .P pavolctld is designed specifically for use with window managers and is extremely versatile due to its simple design. It can also be used interactively in the terminal. .SH STATE CHANGE EVENTS When pavolctld is ran, it will immediately log the state of all sinks to stdout. When any change is made to a sink thereafter, it will be logged as a new event. Each event is output on a new line. .P Here are the possible events and their parameters: .TP .B v[Sink Index],[Volume Percentage],[Volume dBs],[Muted] Volume level/mute change .TP .B f[Sink Index] Default sink changed .TP .B s[Sink Index],[Sink Name],[Sink Description] New sink added .TP .B x[Sink Index] Sink removed .SH VOLUME CONTROL COMMANDS Sink parameters can be modified by entering commands via stdin. Note that the default sink is not necessarily the sink being modified. Instead, you can set the "command sink" using the `s` command. This way, you can modify a sink without making it the default sink. The initial command sink however is the default sink for convenience. .P Here are the list of commands and their parameters: .TP .B s[Sink Index] Set the command sink to sink index. If sink index is not specified, it will be set to the default sink instead. .TP .B v[+-][Volume Percentage] Set the volume level of the command sink. If '+' or '-' are specified, then the current value will be incremented or decremented instead. .TP .B m[Mute State] Mute/Unmute the command sink. Mute state is either '0' for unmuted, or '1' for muted. If mute state is not specified, then mute will be toggled instead. .TP .B f[Sink Index] Set the default sink to sink index. If sink index is not specified, it will be set to the command sink instead. .SH COPYRIGHT Copyright 2024 Tim Keller. MIT License. .P .P