v1.0.0 · Ubuntu · JBL Quantum

Never run flat mid-game.

Headset Battery Indicator 1.0.0Python · GTK3 · free
Ubuntu 22.04 or newer

JBL Quantum wireless headsets don't tell Linux how much battery they have left, and HeadsetControl doesn't support them. This reads the level straight from the USB dongle and puts it in the top bar. Green when full, red when low, grey when the headset is off.

What it does

One icon. One number.

Deliberately small. No settings window, no background service, no cloud. A tray icon, a menu with the exact percentage, and a command for scripts.

// at a glance

Colour is the level

The headset glyph is solid green from 90% up, fades through yellow and orange, and is red at 20% or less. A small bar under the headband shows the level too, so it reads even if you can't tell the colours apart.

// off or away

Grey when off

Switch the headset off or walk out of range and the icon turns grey. The bar and the menu keep the last reported level, e.g. not connected (last 95%).

// menu

The exact percentage

Click the icon to see the headset name and level, with Refresh now to read it again straight away and Quit.

// polling

Once a minute

The level is read every 60 seconds, off the main loop so the menu never freezes. Change it with --interval.

// login

Starts by itself

The package adds a login autostart entry for every user. Starting it again does nothing if it's already running, so you never get two icons.

// permissions

No root needed

A udev rule gives the logged-in user access to the dongle's HID interface. Installed and applied by the package; replug the dongle if it was already in.

// cli

Scriptable too

jbl-battery prints the level as text, as a bare number or as JSON, once or on repeat, for status bars, conky or notifications.

The icon

Green to red.

These are the exact colours and bars the indicator draws, shown on a dark top bar.

100%green from 90% up
75%still plenty
60%yellow
45%amber
30%charge soon
20%red at 20% and below
Offgrey; bar keeps the last level
Install

Install the .deb

Requires Ubuntu 22.04 or newer, or another Debian-based desktop with a tray. On GNOME the icon needs the AppIndicator extension, which Ubuntu ships and enables by default. The .deb works on any architecture, and apt pulls in any missing dependencies.

  1. 01

    Download the package

    Download rc-headset-battery-indicator_1.0.0_all.deb. It usually lands in your Downloads folder.

  2. 02

    Install it with apt

    Keep the ./ so apt treats it as a local file rather than a package name to download. apt asks for your password, installs the dependencies and applies the udev rule.

    terminal
    $ cd ~/Downloads
    $ sudo apt install ./rc-headset-battery-indicator_1.0.0_all.deb
  3. 03

    Start it

    It starts by itself from your next login. To start it now, open Headset Battery Indicator from the app grid, or run:

    terminal
    $ headset-battery-indicator &

    If the dongle was already plugged in and the icon stays grey with No permission in its menu, unplug the dongle and plug it back in.

    Upgrade: download the newer .deb and run the same apt install line with it. Remove: sudo apt remove rc-headset-battery-indicator.

Compatibility

Which headset?

JBL Quantum wireless headsets with a USB dongle, matched by its USB ID.

Quantum 610✓ tested
Quantum 810recognised, untested
Quantum 910recognised, untested

Dependencies

// all from the standard Ubuntu archive; apt installs them with the .deb

python3 ≥ 3.8runs the indicator and the CLI
python3-giPython bindings for GTK
gir1.2-gtk-3.0GTK 3, for the menu
gir1.2-ayatanaappindicator3-0.1Ayatana AppIndicator, for the tray icon
gnome-shell-extension-appindicatorsuggested: shows tray icons on GNOME (preinstalled on Ubuntu)
Command line

Ask from a terminal.

terminal
$ jbl-battery
JBL Quantum 610: 95%
$ jbl-battery
JBL Quantum 610: not connected (last 95%)
$ jbl-battery -q
95
$ jbl-battery --json
{"device": "JBL Quantum 610", "hidraw": "/dev/hidraw5", "battery": 95, "connected": true}
Just the number-q prints the level, or nothing when the headset is off
JSON--json one object per dongle, including the last level when off
On repeat--watch 60 prints again every 60 seconds
Exit codes0 ok · 1 headset not reporting · 2 no dongle · 3 permission denied

Charge it in time.

Built and tested with a JBL Quantum 610 on Ubuntu 26.04.

downloadrc-headset-battery-indicator_1.0.0_all.deb