The best gaming headset for Linux is the one HeadsetControl already knows by its USB ID. Audio is rarely the problem: these 2.4 GHz dongles present themselves as USB audio devices, so game sound and the mic normally work before you install anything. What breaks is everything the vendor’s Windows app normally handles. That’s battery level, sidetone, ChatMix, EQ and the auto-off timer. On Linux those come from HeadsetControl, a small open source CLI, and its device table decides which of those controls you actually get.
This guide picks seven headsets from SteelSeries, Logitech, HyperX, Audeze and Corsair by that table, then shows which features work natively through PipeWire and the kernel and which ones need HeadsetControl. HeadsetControl 4.2.0 was installed and run on Ubuntu 24.04 and Fedora 44 lab VMs in November 2026, and every price band below was pulled from Amazon US on the same day.
Pick the best gaming headset for Linux by feature
Start with the controls you’ll miss most, because no headset on the list exposes every HeadsetControl feature. Battery and sidetone are common, ChatMix is not, and EQ support varies a lot by model:
- Best overall: SteelSeries Arctis Nova 7 Wireless Gen 2, about $185. Battery, sidetone, ChatMix and EQ in HeadsetControl, plus kernel battery reporting from Linux 7.3.
- Best value with ChatMix: SteelSeries Arctis Nova 5 Wireless, about $130. The cheapest pick that reports ChatMix, and the only SteelSeries pick with a parametric EQ.
- Best for EQ tweakers: Logitech G PRO X 2 LIGHTSPEED, about $220. Sidetone, battery, presets and a parametric EQ, and Solaar reads it too.
- Best battery life: HyperX Cloud Alpha Wireless, about $110. Up to 300 hours by HyperX’s figure, with battery and sidetone in HeadsetControl.
- Best sound: Audeze Maxwell 2, about $350. 90 mm planar drivers, ChatMix, sidetone and battery, at about 215 g more than the Logitech.
- Best with ANC: SteelSeries Arctis Nova Pro Wireless, about $250. Hot-swap batteries and a base station, but no ChatMix in HeadsetControl and a USB ID you should check first.
- Best Corsair: Corsair VOID Wireless v2, about $90. Battery, sidetone and the auto-off timer in the packaged HeadsetControl, at 303 g.
Two popular headsets are not on the list on purpose. HyperX’s Cloud III Wireless has no HeadsetControl entry at all (the “HyperX Cloud 3” row covers only the wired model), and the Arctis Nova 7P gets battery and EQ but no sidetone or ChatMix. If you also want a pad for the same rig, the controller guide for Linux and Steam works through the same kind of driver question for gamepads.
Compare HeadsetControl support for each headset
Every mark below comes from the HeadsetControl 4.2.0 supported-device table and the 4.2.0 source, the release the PPA and COPR ship, which is where the USB IDs live. The price band is what Amazon US charged when this was written:
| Headset | USB ID | Battery | Sidetone | ChatMix | EQ | Price band (Nov 2026) |
|---|---|---|---|---|---|---|
| Arctis Nova 7 Gen 2 | 1038:227e | Yes | Yes | Yes | Presets + bands | About $185 |
| Arctis Nova 5 | 1038:2232 | Yes | Yes | Yes | Presets, bands, parametric | About $130 |
| G PRO X 2 LIGHTSPEED | 046d:0af7 | Yes | Yes | No | Presets, bands, parametric | About $220 |
| Cloud Alpha Wireless | 03f0:098d | Yes | Yes | No | No | About $110 |
| Audeze Maxwell 2 | 3329:4b28 / 4b29 | Yes | Yes | Yes | Presets | About $350 |
| Arctis Nova Pro Wireless | 1038:12e0 / 12e5 | Yes | Yes | No | Presets + bands | About $250 |
| VOID Wireless v2 | 1b1c:2a08 | Yes | Yes | No | No | About $90 |
Read the ChatMix column first if you play with voice chat. Only three of the seven report the dial at all, and the Nova Pro Wireless is the surprise: it is SteelSeries’ flagship, yet HeadsetControl does not read its ChatMix. Read the USB ID column second, because HeadsetControl matches on vendor and product ID, not on the name printed on the box. A relaunched model with a new ID simply is not found until someone adds it.
Check how the headsets were picked
The headsets were not on a bench for this guide. Support claims come from HeadsetControl’s device table and source code, the kernel and PipeWire source trees, and the maker’s spec pages, each linked where it is used. What did run in the lab is the Linux side of the purchase:
- HeadsetControl 4.2.0 from the developer’s PPA on Ubuntu 24.04, with kernel 6.8 and PipeWire 1.0.5.
- The same release from the COPR on Fedora 44, with kernel 7.2 and PipeWire 1.6.11.
- The stock PipeWire rules that decide whether a headset gets separate game and chat outputs.
No headset was plugged into either VM, so every output below comes from HeadsetControl’s built-in test device or from the packaged files themselves.
The package ships one udev rule file, and counting it by vendor shows how deep each brand’s support goes. SteelSeries leads with 37 rule lines, Corsair has 25 and Logitech 23, while HyperX has 8 across its HP and Kingston vendor IDs:

Those counts were identical on Ubuntu and Fedora, because both packages ship the same 4.2.0 rule file. Each line tags one USB product ID’s hidraw node with uaccess, which is what lets your desktop user talk to the headset without root. A headset that is not in this file isn’t supported, no matter what the box says about “PC compatible”.
Buy the Arctis Nova 7 Gen 2 for the full set
The Nova 7 Gen 2 is the headset to buy if you want every common control without hunting for a workaround.
HeadsetControl’s “Arctis Nova 7” entry covers twelve product IDs, including the Gen 2 at 1038:227e, and gives it battery, sidetone, ChatMix, the inactive timer, EQ presets and a custom band EQ, mic volume and the volume limiter. The Gen 2 is also the one Nova 7 variant where HeadsetControl has verified its sidetone status reading. Linux 7.3 goes further: its new hid-steelseries-arctis driver lists the Gen 2 and the rest of the Nova 7 family, so battery shows up as a kernel power-supply device your desktop can read without HeadsetControl running.
SteelSeries rates it at 50+ hours, with 15 minutes of charging giving about 6 hours, and the USB-C dongle and Bluetooth run at the same time so a phone call can mix into game audio. Pass on it if you want the ChatMix dial to actually rebalance game and chat on Linux, because HeadsetControl only reads the dial (more on that below). It ran about $185, check the live price on Amazon.
Get the Arctis Nova 5 for ChatMix under $150
The Nova 5 Wireless gets you almost the Nova 7’s control set for about $55 less.
It’s listed as “Arctis Nova (5/5X)” in HeadsetControl with battery, sidetone, ChatMix, the inactive timer and the widest EQ support of any SteelSeries here: presets, bands and a parametric EQ. The Amazon listing quotes 60 hours of battery and a ClearCast Gen 2.X mic. One catch matters on new kernels: the Linux 7.3 battery driver lists the Nova 5X (1038:2253) but not the plain Nova 5 (1038:2232), so on the Nova 5 you’ll still read battery through HeadsetControl.
Skip it if you run Linux 7.3 or newer and want battery in your desktop without HeadsetControl, because only the 5X gets that. It ran about $130, check the live price on Amazon.
Choose the G PRO X 2 for EQ control
Logitech’s G PRO X 2 LIGHTSPEED is the pick when you care more about tuning sound than about ChatMix.
HeadsetControl knows it as 046d:0af7 with sidetone, battery, the inactive timer, EQ presets, a custom EQ and a parametric EQ, and the 4.2.0 release fixed its battery queries and offline detection. It’s also the one pick with a second Linux tool: Solaar documents the same headset with battery charge, auto-sleep, sidetone and onboard EQ, which suits you if you already run Solaar for a Logitech mouse. The kernel’s Logitech HID++ driver does not list it, so there’s no native battery readout without one of the two.
Logitech specifies 50 mm graphene drivers, up to 50 hours, LIGHTSPEED plus Bluetooth plus 3.5 mm, and 345 g. Look elsewhere for ChatMix, which it does not have. It ran about $220, check the live price on Amazon.
Take the Cloud Alpha Wireless for battery life
The HyperX Cloud Alpha Wireless carries the longest battery claim here, so it’s the pick you’ll charge least.
HyperX rates it at up to 300 hours, measured at 50% volume, and even at 10 hours of play a day that figure works out to about a month per charge. HeadsetControl supports it as 03f0:098d with battery, sidetone, the inactive timer and voice prompts, and that’s the whole list: no ChatMix and no EQ. It’s 2.4 GHz only with a detachable mic, and HyperX sells it as a PC headset, which is exactly what a Linux desktop needs.
The newer Cloud Alpha 2 Wireless (about $200) isn’t in any HeadsetControl release yet: its support was merged after 4.2.0, so the packaged build answers No supported device found. HyperX also quotes 250 hours for it instead of 300. Skip the original if you want Bluetooth or EQ. It ran about $110, check the live price on Amazon.
Step up to the Audeze Maxwell 2 for sound
The Maxwell 2 is the audiophile pick, and it is better covered on Linux than most premium headsets.
HeadsetControl lists both Maxwell 2 dongles (3329:4b29 for PlayStation and PC, 3329:4b28 for Xbox) with battery, sidetone, ChatMix, the inactive timer, voice prompts, EQ presets, and the mic noise filter. The linked Amazon unit is the Xbox, PC, Mac, Switch and PlayStation version, which uses the 4b28 dongle. Audeze specifies 90 mm planar magnetic drivers, 80+ hours wireless, a USB-C dongle, USB-C wired, 3.5 mm and Bluetooth with LDAC. PipeWire’s development branch adds a game and chat profile for the original Maxwell, but no release carries it yet (Fedora 44’s 1.6.11 does not), and the Maxwell 2’s IDs aren’t in it.
It is the wrong pick for long sessions if weight bothers you, because 560 g is about 215 g more than the Logitech. Stock was listed as limited when prices were pulled. It ran about $350, check the live price on Amazon.
Check the USB ID before buying a Nova Pro
The Arctis Nova Pro Wireless is the only pick here with active noise cancelling and swappable batteries, and it’s also the riskiest on Linux.

HeadsetControl supports the Nova Pro Wireless at 1038:12e0 and 1038:12e5 with battery, sidetone, lights, the inactive timer and EQ, but not ChatMix. The listing on sale now (neodymium drivers, Switch support, no Xbox) differs from the original 2022 listing, and a Linux hardware probe has already reported a Nova Pro Wireless at 1038:225d, an ID HeadsetControl doesn’t list. SteelSeries’ own replacement, the Nova Pro Omni, has only an open pull request so far. For ChatMix on the base station’s dial, community tools such as nova-chatmix-linux switch the base into Sonar mode and create separate game and chat PipeWire sinks.
Buy it from a store with easy returns, and check it the day it arrives:
- Plug the base station into a USB port and power the headset on.
- Run
lsusb | grep 1038and note the product ID after the colon. - Run
headsetcontrol -b. A battery reading confirms support;No supported device foundmeans your unit has an ID HeadsetControl does not know yet.
An ID of 12e0 or 12e5 is the supported one. Leave it alone if you want ChatMix without a community script. It ran about $250, check the live price on Amazon.
Pick the VOID Wireless v2 if you want Corsair
Corsair support in HeadsetControl is wide but uneven, and the VOID Wireless v2 is tied with the Virtuoso MAX and HS80 MAX Wireless for the most coverage among current Corsairs in the packaged 4.2.0 release.

HeadsetControl 4.2.0 files it under “Corsair Wireless V2” at 1b1c:2a08, with battery, sidetone and the inactive timer. PC Gamer’s review lists 50 mm drivers, a 2.4 GHz dongle plus Bluetooth, a flip-down omnidirectional boom mic and 303 g. There’s no wired mode, so a flat battery means a break to charge, and this guide doesn’t quote a battery figure because Corsair’s spec page couldn’t be checked.
Older Corsairs are covered differently. The Void, Void Pro and Void Elite family appear in HeadsetControl 4.2.0 as “Corsair Headset Device” (sidetone, battery, notification sound and lights), and they also get battery and a sidetone control from the in-kernel hid-corsair-void driver since Linux 6.13. The 4.2.0 README says the HS80, HS70 wired, RGB Elite and Virtuoso expose sidetone as an ALSA mixer control. The Virtuoso RGB Wireless XT is the exception to watch. A later HeadsetControl change found the XT has no ALSA sidetone, and 4.2.0’s XT battery request returns a constant 59%. Working battery, sidetone, lights and the inactive timer for the XT only arrive with the release after 4.2.0. Skip the VOID v2 if you want ChatMix or EQ. It ran about $90, check the live price on Amazon.
Know what works without HeadsetControl
Audio and the mic are the native part, because the dongles are USB audio devices that the kernel’s snd-usb-audio driver, the module for USB audio, picks up without extra packages. Everything that talks to the headset’s firmware is a different story, and it splits like this:
| Feature | Works natively | Needs HeadsetControl (or another tool) |
|---|---|---|
| Game audio and mic | USB audio through snd-usb-audio | Nothing |
| Battery level | Nova 7 family and Nova 5X on Linux 7.3+; Corsair Void family on 6.13+ | Nova 5, Nova Pro, G PRO X 2 (or Solaar), Cloud Alpha, Maxwell 2, VOID Wireless v2 |
| Sidetone | Corsair Void (sysfs) and HS80, HS70 wired, RGB Elite (ALSA mixer) | Every other pick |
| ChatMix dial | Only older Arctis models with a PipeWire game/chat profile | Reading the dial on Nova 7, Nova 5 and Maxwell 2; routing needs a community script |
| EQ and auto-off timer | Nothing | Every pick that supports them |
ChatMix is the row people get wrong. On the original Arctis 7, Arctis 9 and Arctis Pro Wireless, the headset exposes two playback devices and PipeWire ships a profile that turns them into a Game sink and a Chat sink, so the dial balances real audio streams with no extra software. You can see that list in PipeWire’s own udev rules, unchanged between Ubuntu 24.04’s 1.0.5 and Fedora 44’s 1.6.11:

No Nova model appears there, and neither do the Corsair, HyperX or Logitech picks. The profile set mapped to the Arctis 5 and Arctis Pro 2019 shows what an entry buys you (the usb-gaming-headset.conf profile used by the Arctis 7, 9 and Pro Wireless splits the same way): a chat mapping on the first USB playback device carrying the mic, and a game mapping on the second device:

On the Nova 7, Nova 5 and Maxwell 2, HeadsetControl’s -m reads the dial as a level from 0 to 128 with 64 in the middle, and that’s all it does. It doesn’t create sinks or move audio. If you want the dial to rebalance Discord against the game, you need a community tool that builds virtual Game and Chat sinks and follows the dial, such as Arctis Sound Manager. The older Nova 7 script, nova7wireless-chatmix-linux, says in its own README that only the first half of the dial works.
Install HeadsetControl and read the battery
The developer’s own PPA and COPR carry the current release, and both installed 4.2.0 on the lab VMs. On Ubuntu 24.04, add the PPA and install:
sudo add-apt-repository -y ppa:sapd/headsetcontrol
sudo apt update && sudo apt install -y headsetcontrol
The PPA build pulls in libhidapi-hidraw0 from Ubuntu’s universe pocket, and headsetcontrol --version confirms the release.

On Fedora, enable the COPR and install from it. If you game on a Fedora desktop, the Fedora gaming setup guide covers Steam, Proton and MangoHud on the same system:
sudo dnf -y copr enable thesapd/headsetcontrol
sudo dnf -y install headsetcontrol
Fedora 44 pairs it with hidapi 0.15.0 from the main repos, and you end up on the same 4.2.0 binary.

Both packages install /usr/lib/udev/rules.d/70-headsets.rules. If the headset’s dongle was already plugged in during the install, unplug it and plug it back in so udev applies the new permissions, otherwise you’ll only get access as root. Then run it once bare, which looks for a supported headset, and once with -b for the battery:
headsetcontrol
headsetcontrol -b
With no supported headset attached, the bare command prints No supported device found and exits with status 1, which is the message you’ll see if your model or its USB ID isn’t in the table. The built-in test device shows what a working headset returns: level, voltage and estimated time left:

That exit status is handy in scripts, because a battery widget can tell “headset off or unsupported” apart from a real reading without parsing text. A real headset may report fewer fields than the test device, since not every model sends voltage or time to empty. No headset yet? Add --test-device to any command in this section, as in headsetcontrol --test-device -b, and you get the same sample output the screenshots show.
Set sidetone and read ChatMix
Ask the headset what it supports before you try a flag, because --caps prints only the features your model has. On the test device, which implements everything, the full 4.2.0 list is 23 capabilities long:
headsetcontrol --caps
A real Nova 7 Gen 2 shows a short subset of these, and the names match the columns in the comparison table above.

Sidetone takes a level from 0 to 128, and running -s without a value reads the current level back on models that support it. -m reads ChatMix:
headsetcontrol -s 64
headsetcontrol -s
headsetcontrol -m
Ignore the 85 in the read-back: the test device always returns that fixed value, whatever you set. On a real headset with read-back support, the reply is what the firmware stores. A ChatMix of 64 means the dial sits in the centre:

For a graphical control, the GNOME Shell extension (current release targets GNOME 50 and 51) adds battery and sidetone to the top bar, and HeadsetControl-GUI does the same as a Qt tray app on KDE Plasma. If the headset is part of a bigger desk upgrade, the audio interface guide covers XLR mics, and the GPU guide for Linux gaming and gaming monitor picks finish the rig.
Keep this HeadsetControl command card
These are the flags from the 4.2.0 help output you’ll use day to day. Anything your headset doesn’t support simply isn’t listed when you run headsetcontrol -h with it plugged in:
| Command | What it does |
|---|---|
headsetcontrol -b | Battery level, plus voltage and time left where the headset reports them |
headsetcontrol -s 64 | Set sidetone, 0 (off) to 128 |
headsetcontrol -s | Read the current sidetone level back |
headsetcontrol -m | Read the ChatMix dial, 0 to 128, 64 is centred |
headsetcontrol -i 30 | Auto power-off after 30 minutes, 0 disables it |
headsetcontrol -e 0,2,4,2,0,-2 | Custom EQ curve, one value per band (the band count depends on the headset) |
headsetcontrol -b -o json | Battery as JSON for scripts and status bars |
headsetcontrol -f 5 -b | Poll the battery every 5 seconds |
headsetcontrol -d 1038:227e -b | Pick one headset when two are plugged in |
headsetcontrol --caps | List what this headset supports |
headsetcontrol -u | Print the udev rules for distros whose package doesn’t install them (redirect stdout into a rules file; the “Generating udev rules..” banner goes to stderr) |
If -b works as root but not as your user, the udev rule did not apply. Fix it in this order:
- Unplug the dongle and plug it back in.
- Confirm
70-headsets.rulesexists in/usr/lib/udev/rules.d/(packages) or/usr/local/lib/udev/rules.d/(a source build), and on a source build runsudo udevadm control --reload-rules && sudo udevadm triggeraftermake install. - Run
headsetcontrol -bagain as your normal user.
For the handheld side of the same setup, the Steam Deck alternatives guide covers devices that take a USB-C dongle just as happily.




