Skip to content

publi0/audioctl

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 

Repository files navigation

PipeWire Audio Controller

A command-line utility for managing PipeWire audio devices with a simple menu interface.

Features

  • 🔊 Set default output/input devices
  • 🎚️ Control volume (set exact level or adjust up/down)
  • 🔇 Toggle mute status
  • 📋 List all available audio devices
  • ✅ Simple, scriptable CLI interface

Installation

Prerequisites

  • Go 1.24+
  • PipeWire with wpctl and pw-cli installed

Build from source

git clone https://github.com/publi0/audioctl.git
cd audioctl
go build -o audioctl
sudo mv audioctl /usr/local/bin/

Usage

Basic commands

# Show interactive menu
audioctl

# List all devices with current status
audioctl --list

# Set output device (interactive selection)
audioctl --output

# Set specific output device by ID
audioctl --output 42

# Set volume to 75%
audioctl --volume 75

# Toggle mute
audioctl --mute

Full options

Usage:
  audioctl [flags]

Flags:
  -h, --help          Show help
  -l, --list          List all audio devices
  -m, --mute          Toggle mute
  -o, --output string Set output device (leave empty for interactive selection)
  -i, --input string  Set input device (leave empty for interactive selection)
  -v, --volume int    Set volume (0-150) or use -1 for interactive control

Example workflow

# See available devices
audioctl --list

# Set new output device
audioctl --output

# Set volume to 80%
audioctl --volume 80

# Quick mute toggle
audioctl --mute

Output Format

When listing devices (--list), the output shows:

  • Current volume and mute status
  • Output devices with default marked (●)
  • Input devices with default marked (●)

Example:

Volume: 80% (MUTED)

Audio Outputs:
●  42  Built-in Audio Analog Stereo
   56  HDMI Output

Audio Inputs:
●  23  Built-in Microphone
   45  Webcam Microphone

Troubleshooting

Command not found: Ensure /usr/local/bin is in your PATH or use ./audioctl from build directory

Missing wpctl/pw-cli: Install WirePlumber (wireplumber package) and PipeWire tools

No devices listed: Check PipeWire is running with systemctl --user status pipewire

About

A command-line utility for managing PipeWire audio devices with a simple menu interface.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages