🔊 volctl
GitHub

🔊 volctl

Per-application volume control and OSD for Linux desktops.

Screenshot

I couldn't find a simple tray icon that allows to control multiple applications easily from the task bar. So I wrote my own.

Bug reports and patches welcome!

It's not meant to be a replacement for a full-featured mixer application. If you're looking for that check out the excellent pavucontrol.

Features

Installation

Arch Linux

Available in AUR: volctl or volctl-bin

Cargo

Install from source using Cargo:

cargo install --git https://github.com/buzz/volctl.git

Install the GSettings schema manually.

Manual installation

  1. Clone this repository and build in release mode:

    cargo build --release
  2. Copy the binary to a location in your $PATH:

    cp target/release/volctl ~/.local/bin/

Install the GSettings schema manually.

GSettings schema installation

volctl uses GSettings to store preferences. The schema file must be installed for the settings to work. Copy the schema XML and compile the schemas:

PREFIX="${HOME}/.local"
mkdir -p "$PREFIX/share/glib-2.0/schemas/"
curl -fsSL https://raw.githubusercontent.com/buzz/volctl/main/data/apps.volctl.gschema.xml \
  -o "$PREFIX/share/glib-2.0/schemas/apps.volctl.gschema.xml"
glib-compile-schemas "$PREFIX/share/glib-2.0/schemas/"

Development

Run from source

cargo run

Linting and formatting

cargo clippy
cargo fmt

Rust Rewrite

This is a Rust rewrite of the original Python version. The Python implementation is still available on the legacy-python branch.

License

GNU General Public License v3.0 or later