GitPedia

HeadsetControl

Sidetone and Battery status for Logitech G930, G533, G633, G933 SteelSeries Arctis 7/PRO 2019 and Corsair VOID (Pro) in Linux and MacOSX

From Sapd·Updated June 15, 2026·View on GitHub·

A cross-platform tool to control USB gaming headsets on **Linux**, **macOS**, and **Windows**. Manage sidetone, battery status, LED lights, equalizers, and more. The project is written primarily in C++, distributed under the GNU General Public License v3.0 license, first published in 2016. It has gained significant community traction with 1,843 stars and 223 forks on GitHub. Key topics include: battery, corsair, corsair-void, headsets, hid.

Latest release: continuousContinuous Build
January 7, 2026View Changelog →

HeadsetControl

A cross-platform tool to control USB gaming headsets on Linux, macOS, and Windows. Manage sidetone, battery status, LED lights, equalizers, and more.

Features

  • Sidetone - Hear your own voice without latency (unlike software loopback)
  • Battery Status - Monitor charge level, voltage, and time remaining
  • LED Control - Toggle lights on/off
  • Equalizer - Presets and custom EQ curves (including parametric EQ)
  • Inactive Time - Auto power-off timer
  • Chat-Mix - Game/chat audio balance
  • Microphone - Volume, mute LED brightness, rotate-to-mute
  • Voice Prompts - Enable/disable audio cues
  • Bluetooth - Power-on behavior, call volume

Supported Devices

DevicePlatformsidetonebatterynotification soundlightsinactive timechatmixvoice promptsrotate to muteequalizer presetequalizerparametric equalizermicrophone mute led brightnessmicrophone volumevolume limiterbluetooth when powered onbluetooth call volumemicrophone noise filter
Logitech G522 LIGHTSPEEDAllxxxx
Logitech G533Allxxx
Logitech G535Allxxx
Logitech G633/G635/G733/G933/G935Allxxx
Logitech G431/G432/G433Allx
Logitech G930Allxx
Logitech G PRO X 2 LIGHTSPEEDAllxxxxxx
Logitech G PRO SeriesAllxxx
Logitech Zone Wired/Zone 750Allxxx
Corsair Headset DeviceAllxxxx
Corsair Wireless V2 Headset DeviceAllxx
SteelSeries Arctis (1/7X/7P) WirelessAllxxx
SteelSeries Arctis (7/Pro)Allxxxxx
SteelSeries Arctis 9Allxxxx
SteelSeries Arctis Pro WirelessAllxxx
SteelSeries Arctis Nova 3Allxxxxx
SteelSeries Arctis Nova (5/5X)Allxxxxxxxxxx
SteelSeries Arctis Nova 7Allxxxxxxxxxxx
SteelSeries Arctis Nova 7PAllxxxxxxxxx
SteelSeries Arctis 7+Allxxxxxx
SteelSeries Arctis Nova Pro WirelessAllxxxxxx
SteelSeries Arctis Nova 3P WirelessL/Mxxxxxxx
HyperX Cloud Alpha WirelessAllxxxx
HyperX Cloud Flight WirelessAllx
HyperX Cloud II WirelessAllxx
HyperX Cloud 3Allx
HyperX Cloud II Wireless (Kingston)Allxxx
ROCCAT Elo 7.1 AirAllxx
ROCCAT Elo 7.1 USBAllx
Audeze MaxwellAllxxxxxxx
Audeze Maxwell 2Allxxxxxxx
Lenovo Wireless VoIP HeadsetAllxxxxxxxx
Sony INZONE BudsAllx
HeadsetControl Test deviceAllxxxxxxxxxxxxxxxxx

Platform: All = Linux, macOS, Windows | L/M = Linux and macOS only

Note: Some Corsair headsets may need additional configuration - see Adding a Corsair device. Some headsets (HS80, HS70 wired, RGB Elite, Virtuoso) expose sidetone via ALSA mixer instead.

Installation

Package Managers

macOS (Homebrew)

bash
brew install sapd/headsetcontrol/headsetcontrol --HEAD

NixOS

nix
# configuration.nix environment.systemPackages = [ pkgs.headsetcontrol ]; services.udev.packages = [ pkgs.headsetcontrol ]; # For udev rules

Or run without installing: nix run nixpkgs#headsetcontrol

Gentoo (nitratesky overlay)

bash
eselect repository enable nitratesky emerge -a app-misc/headsetcontrol

Building from Source

Requirements

  • C++20 compiler (GCC 10+, Clang 10+, MSVC 2019+)
  • CMake 3.12+
  • HIDAPI library

Install Dependencies

<details> <summary><b>Linux</b></summary>

Debian / Ubuntu

bash
apt-get install build-essential git cmake libhidapi-dev

Fedora

bash
dnf install cmake hidapi-devel g++

Arch Linux

bash
pacman -S git cmake hidapi

CentOS / RHEL

bash
yum install epel-release yum groupinstall "Development tools" yum install git cmake hidapi-devel

openSUSE

bash
zypper in -t pattern devel_basis zypper in cmake libhidapi-devel

FreeBSD

bash
pkg install hidapi cmake
</details> <details> <summary><b>macOS</b></summary>
bash
brew install hidapi cmake

Note: Xcode (from App Store) is required for compilers.

</details> <details> <summary><b>Windows</b></summary>

Pre-built binaries are available on the releases page.

For compilation using MSYS2/MinGW, see the Development Guide.

</details>

Build

bash
git clone https://github.com/Sapd/HeadsetControl && cd HeadsetControl mkdir build && cd build cmake .. make

Install

bash
sudo make install

On Linux, this also installs udev rules for non-root access. Reload them with:

bash
sudo udevadm control --reload-rules && sudo udevadm trigger

Usage

bash
# Show available options for your headset headsetcontrol -h # Show all options headsetcontrol --help-all # Get battery status headsetcontrol -b # Set sidetone level (0-128) headsetcontrol -s 64 # Turn off LEDs headsetcontrol -l 0 # Set auto-off timer (minutes, 0 = disabled) headsetcontrol -i 30 # List device capabilities headsetcontrol --capabilities # or shorthand headsetcontrol --caps

Output Formats

For scripting and integration with other tools:

bash
# JSON output headsetcontrol -o json # YAML output headsetcontrol -o yaml # Environment variables headsetcontrol -o env

See docs/LIBRARY_USAGE.md for building applications on top of HeadsetControl.

Developer Mode

For debugging and reverse-engineering headset protocols:

bash
# List all HID devices headsetcontrol --dev -- --list # Send raw HID data headsetcontrol --dev -- --device 0x1b1c:0x1b27 --send "0xC9, 0x64" --receive

Library API

HeadsetControl can be used as a library with C++ and C APIs. Build with shared library support:

bash
cmake -DBUILD_SHARED_LIBRARY=ON .. make

See docs/LIBRARY_USAGE.md for complete documentation.

Test Device

For development without hardware:

bash
headsetcontrol --test-device -b

GUI Applications

Linux

macOS

Windows

Contributing

Want to add support for a new headset or improve the software? See the Development Guide.

Adding a new device requires capturing USB traffic between the headset and its Windows software using Wireshark or USBlyzer (a VM with USB passthrough works well).

License

Released under GPL v3.

HeadsetControl is distributed WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.


If you find this useful, please star the repository!

Contributors

Showing top 12 contributors by commit count.

View all contributors on GitHub →

This article is auto-generated from Sapd/HeadsetControl via the GitHub API.Last fetched: 6/19/2026