All Projects → Sapd → Headsetcontrol

Sapd / Headsetcontrol

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

Programming Languages

c
50402 projects - #5 most used programming language

Projects that are alternatives of or similar to Headsetcontrol

python-hid-parser
Typed pure Python library to parse HID report descriptors
Stars: ✭ 31 (-92.09%)
Mutual labels:  usb, hid
RaspberryPi-Joystick
A virtual HID USB joystick created using Raspberry Pi
Stars: ✭ 73 (-81.38%)
Mutual labels:  usb, hid
ES-Timer
A USB timer powered by Digispark ATtiny85 according to 🍅 pomodoro time management technique
Stars: ✭ 45 (-88.52%)
Mutual labels:  usb, hid
Usbdeviceswift
wrapper for IOKit.usb and IOKit.hid written on pure Swift that allows you convenient work with USB devices
Stars: ✭ 156 (-60.2%)
Mutual labels:  usb, osx
Darklightning
Simply the fastest way to transmit data between iOS/tvOS and OSX
Stars: ✭ 286 (-27.04%)
Mutual labels:  usb, osx
Authorizer
Authorizer is a Password Manager for Android. It emulates an HID keyboard over USB and enters your credentials on your target device. Additionally it supports OTP 🔑📴
Stars: ✭ 172 (-56.12%)
Mutual labels:  usb, hid
ESP32-USB-Soft-Host
An Arduino wrapper to @sdima1357's usb_soft_host esp-idf example
Stars: ✭ 119 (-69.64%)
Mutual labels:  usb, hid
Android Usb Gadget
Convert your Android phone to any USB device you like! USB Gadget Tool allows you to create and activate USB device roles, like a mouse or a keyboard. 🛠🛡📱
Stars: ✭ 118 (-69.9%)
Mutual labels:  usb, hid
mkosxinstallusb
Linux shell script that creates USB flash drive booting OS X installer
Stars: ✭ 34 (-91.33%)
Mutual labels:  usb, osx
usb stack
Tiny and portable USB device/host stack for embedded system with USB IP
Stars: ✭ 175 (-55.36%)
Mutual labels:  usb, hid
Node Elgato Stream Deck
A Node.js library for interfacing with the Elgato Stream Deck.
Stars: ✭ 359 (-8.42%)
Mutual labels:  usb, hid
Teenyusb
Lightweight USB device and host stack for STM32 and other MCUs.
Stars: ✭ 287 (-26.79%)
Mutual labels:  usb, hid
Usbdevice
Highly flexible Composite USB Device Library
Stars: ✭ 144 (-63.27%)
Mutual labels:  usb, hid
EspTinyUSB
ESP32S2 native USB library. Implemented few common classes, like MIDI, CDC, HID or DFU (update).
Stars: ✭ 375 (-4.34%)
Mutual labels:  usb, hid
Hidguardian
Windows kernel-mode driver for controlling access to various input devices.
Stars: ✭ 138 (-64.8%)
Mutual labels:  usb, hid
pi400kb
Raw HID keyboard forwarder to turn the Pi 400 into a USB keyboard
Stars: ✭ 182 (-53.57%)
Mutual labels:  usb, hid
Node Hid
Access USB & Bluetooth HID devices through Node.js
Stars: ✭ 1,064 (+171.43%)
Mutual labels:  usb, hid
Ehal
Embedded Hardware Abstraction Library
Stars: ✭ 84 (-78.57%)
Mutual labels:  usb, osx
android-usb-script
An Android app that allows you to script USB gadgets (work-in-progress).
Stars: ✭ 15 (-96.17%)
Mutual labels:  usb, hid
Vmware Usb Osx
Easily create a bootable USB installer for VMware ESXi / vSphere Hypervisor
Stars: ✭ 286 (-27.04%)
Mutual labels:  usb, osx

Summary

A tool to control certain aspects of USB-connected headsets on Linux. Currently, support is provided for adjusting sidetone, getting battery state, controlling LEDs, and setting the inactive time. See below for which headset supports which feature.

Sidetone

Want to use your Headset under Linux or Mac OS X, but you shout while talking because there is no support for sidetone? With sidetone, sometimes also called loopback, you can hear your own voice while talking. This differs from a simple loopback via PulseAudio as you won't have any disturbing latency.

Supported Headsets

  • Corsair Void (Every version*, regardless whether Pro or Wired)
    • Sidetone, Battery (for Wireless), LED on/off, Notification Sound
  • Logitech G430
    • No support in current version (Last working on macOS in commit 41be99379f)
  • Logitech G533
    • Sidetone, Battery (for Wireless)
  • Logitech G930
    • Sidetone, Battery
  • Logitech G633 / G933 / G935
    • Sidetone, Battery (for Wireless), LED on/off
  • SteelSeries Arctis (7 and Pro)
    • Sidetone, Battery, Inactive time, Chat-Mix level, LED on/off (allows to turn off the blinking LED on the base-station)
  • SteelSeries Arctis 9
    • Sidetone, Battery, Inactive time, Chat-Mix level
  • Logitech G PRO
    • Sidetone
  • Logitech Zone Wired
    • Sidetone, Voice prompts, Rotate to mute

For non-supported headsets on Linux: There is a chance that you can set the sidetone via AlsaMixer

* If your Corsair headset is not recognized, see Adding a corsair device

For more features or other headsets, the protocol of the respective headset must be analyzed further. This can be done by capturing the USB traffic between the device and the original Windows software and analyzing it with WireShark or USBlyzer. For that, you can also use a virtual machine with USB passthrough. The wiki provides a tutorial.

Building

Prerequisites

You will need hidapi, c compilers and cmake. All usually installable via package managers.

Debian / Ubuntu

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

CentOS / RHEL (RedHat based)

RHEL and CentOS also require the epel-repository: yum install epel-release. Please inform yourself about the consequences of activating the epel-repository.

yum groupinstall "Development tools" yum install git cmake hidapi-devel

Sabayon

equo i hidapi cmake

Arch Linux

pacman -S git cmake hidapi

FreeBSD

pkg install hidapi cmake

Gentoo

  1. Enable nitratesky overlay:

    eselect repository enable nitratesky

  2. Install:

    emerge -a app-misc/headsetcontrol

Mac OS X

I recommend using Homebrew.

You can automatically compile and install the latest version of the software, by using brew install sapd/headsetcontrol/headsetcontrol --HEAD.

If you wish to compile it manually, you can install the dependencies with brew install hidapi cmake.

Also you have to download Xcode via the Mac App Store for the compilers.

Windows

Windows support is a bit experimental and might not work in all cases. You can find binaries in the releases page, or compile instructions via MSYS2/MinGW in the wiki.

Compiling

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

If you want to be able to call HeadsetControl from every folder type:

make install

This will copy the binary to a folder globally accessible via path.

Access without root

Also in Linux, you need udev rules if you don't want to start the application with root. Those rules reside in the udev folder of this repository. Typing make install on Linux copies them automatically to /etc/udev/rules.d/.

You can reload udev configuration without reboot via sudo udevadm control --reload-rules && sudo udevadm trigger

Usage

Type headsetcontrol -h to get all available options.
(Don't forget to prefix it with ./ when the application resides in the current folder)

headsetcontrol -s 128 sets the sidetone to 128 (REAL loud). You can silence it with 0. I recommend a loudness of 16.

Following options don't work on all devices yet:

headsetcontrol -b check battery level. Returns a value from 0 to 100 or loading.

headsetcontrol -n 0|1 sends a notification sound, made by the headset. 0 or 1 are currently supported as values.

headsetcontrol -l 0|1 switches LED off/on (off almost doubles battery lifetime!).

headsetcontrol -c cut unnecessary output, for reading by other scripts or applications.

Third Party

The following additional software can be used to enable control via a GUI

Linux

headsetcontrol-notifcationd provides notifications on the battery status of connected headsets (PHP based)

headset-charge-indicator adds a system tray icon, displaying the current amount of battery. Also provides controls via the icon's menu (Python based)

Windows

HeadsetControl-SystemTray adds a system tray icon, displaying the current amount of battery. (Python based)

Development

Look at the wiki if you want to contribute and implement another device or improve the software.

Notice

HeadsetControl is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.

License

Released under GPL v3.

Like it?

If you like my software please star the repository.

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].