created_at2020-08-24 09:29:17.744576
updated_at2021-04-22 20:45:30.062691
descriptionPulseAudio volume mixer written in rust



# RsMixer ![GitHub tag (latest by date)]( ![ tag]( RsMixer is a PulseAudio volume mixer written in rust ## Features - monitors displaying current volume - applications using outputs displayed in a nested tree structure for easier viewing - changing card settings - all the basic stuff you expect a volume mixer to do ## Installation You can install RsMixer through cargo: ``` cargo install rsmixer ``` or by manually building it: ``` git clone cargo install --path ./rsmixer ``` or if you're an Arch user, you can install it from AUR: ``` git clone cd rsmixer makepkg -si ``` ## Usage Application screen is divided into 3 pages: Output, Input and Cards. Output combines PulseAudio sinks and sink inputs (if you don't know much about pulseaudio - basically sinks/sources are speakers/microphones, sink inputs/source outputs are audio streams from applications, for outputing and inputing sound respectively) into one tree-like view, that makes it easy to see which device every app uses. All keybindings are configurable through `~/.config/rsmixer/rsmixer.toml`. [Changing keybindings][changing keybindings] for more info. Default keybindings: - j,k - move between entries - h, l, H, L - change volume - 1, 2, 3 - open outputs, inputs, and cards respectively - enter - open context menu ## Changing keybindings In `~/.config/rsmixer/rsmixer.toml` you will find a section `[bindings]`. There you will find a list of default keybindings. All keybindings look one of these: ``` q = ['exit'] "shift+tab" = ['cycle_pages_backward'] right = ['raise_volume(5)'] ``` Basically `key = ArrayOf(action)`. Key is either: - a char - a special key. [Special keys supported]( (if anything is missing just create an issue) - a key combination, with plus signs between keys (one or more of shift, ctrl, alt and and a char/special key, seperated by plus signs) In the same way you can set behavior on right and middle clicks on entries ``` mouse_right = ['mute'] mouse_middle = ['hide'] ``` (left mouse click is automatically assigned to selecting entries and opening context menu when entry is already selected) When that key/key combination gets pressed rsmixer performs an action assigned to that keybinding. [Possible actions]( ## License [MIT](
Commit count: 135

cargo fmt