aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTimmy Keller <tjk@tjkeller.xyz>2024-10-07 21:29:25 -0500
committerTimmy Keller <tjk@tjkeller.xyz>2024-10-07 21:29:25 -0500
commit1874c39d1260c9b83134b40c13b287300ee9b0c5 (patch)
treebc0e88798f64462716f9191f2a49caf0b5692e6e
parent23d702cdbf81d4ced47e28b7d8a33bc83083e1e3 (diff)
downloadpavolctld-1874c39d1260c9b83134b40c13b287300ee9b0c5.tar.xz
pavolctld-1874c39d1260c9b83134b40c13b287300ee9b0c5.zip
add manpage and mit license
-rw-r--r--LICENSE21
-rw-r--r--pavolctld.164
2 files changed, 85 insertions, 0 deletions
diff --git a/LICENSE b/LICENSE
new file mode 100644
index 0000000..6bdec6c
--- /dev/null
+++ b/LICENSE
@@ -0,0 +1,21 @@
+MIT License
+
+Copyright (c) 2024 Tim Keller
+
+Permission is hereby granted, free of charge, to any person obtaining a copy
+of this software and associated documentation files (the "Software"), to deal
+in the Software without restriction, including without limitation the rights
+to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
+copies of the Software, and to permit persons to whom the Software is
+furnished to do so, subject to the following conditions:
+
+The above copyright notice and this permission notice shall be included in all
+copies or substantial portions of the Software.
+
+THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
+IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
+FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
+AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
+LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
+OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
+SOFTWARE.
diff --git a/pavolctld.1 b/pavolctld.1
new file mode 100644
index 0000000..0eb8abc
--- /dev/null
+++ b/pavolctld.1
@@ -0,0 +1,64 @@
+.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
+<https://TJKeller.xyz>