diff --git a/README.md b/README.md new file mode 100644 index 0000000..368527f --- /dev/null +++ b/README.md @@ -0,0 +1,30 @@ +# Mixrs + +A practical multimedia controller for PulseAudio written in Rust. + +## Installation +There is currently no convenient way to install Mixrs. To use this application, you have to compile it yourself and run it in the background. + +## Requirements +- [PulseAudio](https://www.freedesktop.org/wiki/Software/PulseAudio/) +- [playerctl](https://wiki.archlinux.org/title/MPRIS#Playerctl) +- [libnotify](https://gitlab.gnome.org/GNOME/libnotify) + +## Usage +Mixrs will create a unix socket at `/tmp/mixrs` and listen for instructions. Instructions are issued by sending a specific byte to the socket. + +## Example +`echo -ne '\x2' | nc -N -U /tmp/mixrs` will send a byte containing `2` to the `/tmp/mixrs` socket and instruct Mixrs to mute / unmute the currently selected sink input. + +### Instructions +|Byte|Instruction|Detail| +|---|---|---| +|0|SelectNext|Selects the next sink input| +|1|SelectPrevious|Selects the previous sink input| +|2|ToggleMuteCurrent|Toggles the current sink input's muted state| +|3|IncreaseCurrent|Increases the current sink input's volume by 5%| +|4|DecreaseCurrent|Decreases the current sink input's volume by 5%| +|5|GetCurrent|Displays the current sink input's name| +|6|PlayPauseCurrent|Tells the current sink input to toggle its `playing` state.
*Behavior varies based on the current sink input's player*| +|7|PlayNext|Tells the current sink input to play the next item (e.g. the next song).
*Behavior varies based on the current sink input's player*| +|8|PlayPrevious|Tells the current sink input to play the previous item (e.g. the previous song).
*Behavior varies based on the current sink input's player*|