Arctis Sound Manager has been released in version 1.4.13.
The tool manages audio settings for SteelSeries Arctis headsets on Linux, including microphone EQ, filter chains and the screen display on the GameDAC. After the visibility update in version 1.4.11, this one is a bugfix release with functional corrections.
The main change: settings now survive a headset power cycle. On wireless models the dongle never leaves the port, so switching the headset off and on fires no USB event, and ASM never re-applied sidetone, mic volume, the limiter or the on-device EQ - the saved values sat on the Devices page while the hardware ran on firmware defaults. Also fixed: the Arctis 7 ChatMix dial is now read correctly (including signed attenuation values on the Arctis 7 2019), Sonar EQ live-apply no longer reports false success on restricted systems like SteamOS, and the udev dialogs no longer write into the container’s /etc on Distrobox installs. The update banner no longer loops when a distro repository lags behind the GitHub release.
Fixed
- A headset that powers off and on gets its settings back. Sidetone, mic volume, the volume limiter and the on-device EQ live in the headset, not the dongle. Switch it off and they are gone; on wireless families the dongle never leaves the port, so a power cycle fires no USB event and ASM never re-applies anything. The connection status now also schedules a settings replay from the profile’s own
device_initframes, plus any explicit settingdevice_initdoes not cover and the stored EQ curve. (#221)- The Arctis 7 ChatMix dial no longer freezes at the position it had when the daemon started. The profile asked for
game_chat_statusexactly once indevice_init, and the status poll only asked for battery. The poll now sendsstatus.extra_requestsafter the main request, each reply mapped by its ownstarts_with, and a failing extra never costs the battery reading. (#220)- The Arctis 7 2019 ChatMix dial reported the wrong volume.
game_chat_status’s game/chat fields are a signed byte of attenuation from0x00(full volume), counting down toward mute. The plain unsigned mapping read the loudest position as 0% and clamped every attenuated one to 100%. A signedpercentageparser is added and pointed atmedia_mixandchat_mixinarctis_7.yaml.- Sonar EQ live-apply no longer lies about success on restricted systems. On SteamOS and other setups that start clients restricted (#181),
pw-cli set-paramcan be refused by PipeWire with “Operation not permitted”.grant_props_permissions()is added, mirroringgrant_link_permissions()’s repair, and wired intoset_filter_controls._ApplyWorkernow only reports success when the push genuinely cannot be attempted.- The udev dialog no longer writes rules into the container on distrobox installs.
write_udev_rulesandreload_udev_rulesstill targeted the container’s own/etc, where udev never looks. Rules are now staged under~/.cacheand installed throughdistrobox-host-exec, trying sudo then pkexec.container.pycentralizesrunning_in_container()/host_exec()/host_distro()/host_is_immutable().- The “positional fallback” log line no longer drowns out real device reports. It fired at INFO before the “does this link already exist” check, so it went out on every watchdog pass. It now logs INFO the first time for a given pair and DEBUG after.
- The update banner no longer loops when a distro repository lags behind GitHub. COPR lagged a release by roughly seven hours in discussion #140: the banner announced 1.4.12 while dnf could still install only 1.4.11. The user’s own repository now decides first; GitHub is the fallback for pipx, pip and AUR installs.
Added
- A probe for the Arctis 7 ChatMix dial in
scripts/reverse-engineering/, with a README explaining how to capture and analyse the raw USB report.

Source: GitHub