From b001735faa7414039e5b701abe35cf353e51e759 Mon Sep 17 00:00:00 2001 From: Fernando Perez Date: Mon, 22 Jun 2026 19:11:02 -0300 Subject: [PATCH 1/4] alsa-profiles: Add Razer Leviathan V2 profile --- spa/plugins/alsa/90-pipewire-alsa.rules | 15 +++-------- .../profile-sets/razer-leviathan-v2.conf | 27 +++++++++++++++++++ 2 files changed, 31 insertions(+), 11 deletions(-) create mode 100644 spa/plugins/alsa/mixer/profile-sets/razer-leviathan-v2.conf diff --git a/spa/plugins/alsa/90-pipewire-alsa.rules b/spa/plugins/alsa/90-pipewire-alsa.rules index 8c986d070..0a8501afe 100644 --- a/spa/plugins/alsa/90-pipewire-alsa.rules +++ b/spa/plugins/alsa/90-pipewire-alsa.rules @@ -118,7 +118,6 @@ ATTRS{idVendor}=="0bda", ATTRS{idProduct}=="402e", ENV{ACP_PROFILE_SET}="dell-do ATTRS{idVendor}=="08bb", ATTRS{idProduct}=="2902", ENV{ACP_PROFILE_SET}="texas-instruments-pcm2902.conf" ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="0269", ENV{ACP_PROFILE_SET}="hp-tbt-dock-120w-g2.conf" ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="0567", ENV{ACP_PROFILE_SET}="hp-tbt-dock-audio-module.conf" -ATTRS{idVendor}=="046d", ATTRS{idProduct}=="0a4c", ENV{ACP_PROFILE_SET}="logi407.conf" # ID 1038:12ad is for the 2018 refresh of the Arctis 7. # ID 1038:1294 is for Arctis Pro Wireless (which works with the Arctis 7 configuration). @@ -138,13 +137,12 @@ ATTRS{idVendor}=="9886", ATTRS{idProduct}=="002c", ENV{ACP_PROFILE_SET}="usb-gam ATTRS{idVendor}=="9886", ATTRS{idProduct}=="0038", ENV{ACP_PROFILE_SET}="usb-gaming-headset.conf" # ID 9886:0045 is for the Astro A20 Gen2 ATTRS{idVendor}=="9886", ATTRS{idProduct}=="0045", ENV{ACP_PROFILE_SET}="usb-gaming-headset.conf" - +# ID 1532:0532 is for the Razer Leviathan V2 +ATTRS{idVendor}=="1532", ATTRS{idProduct}=="0532", ENV{ACP_PROFILE_SET}="razer-leviathan-v2.conf" +# ID 1532:054a is for the Razer Leviathan V2 X +ATTRS{idVendor}=="1532", ATTRS{idProduct}=="054a", ENV{ACP_PROFILE_SET}="razer-leviathan-v2.conf" # ID 1532:0520 is for the Razer Kraken Tournament Edition ATTRS{idVendor}=="1532", ATTRS{idProduct}=="0520", ENV{ACP_PROFILE_SET}="usb-gaming-headset.conf" -# ID 1532:0579 is Razer BlackShark v3 (usb direct to headset) -ATTRS{idVendor}=="1532", ATTRS{idProduct}=="0579", ENV{ACP_PROFILE_SET}="usb-gaming-headset.conf" -# ID 1532:057a is Razer BlackShark v3 (2.4GHz dongle) -ATTRS{idVendor}=="1532", ATTRS{idProduct}=="057a", ENV{ACP_PROFILE_SET}="usb-gaming-headset.conf" # ID 1038:1250 is for the Arctis 5 @@ -187,11 +185,6 @@ ATTRS{idVendor}=="1395", ATTRS{idProduct}=="0300", ENV{ACP_PROFILE_SET}="usb-gam # Sennheiser GSP 670 USB headset ATTRS{idVendor}=="1395", ATTRS{idProduct}=="008a", ENV{ACP_PROFILE_SET}="usb-gaming-headset.conf" -# JBL Quantum One -ATTRS{idVendor}=="0ecb", ATTRS{idProduct}=="203a", ENV{ACP_PROFILE_SET}="usb-gaming-headset-gamefirst.conf" -# JBL Quantum 810 Wireless -ATTRS{idVendor}=="0ecb", ATTRS{idProduct}=="2069", ENV{ACP_PROFILE_SET}="usb-gaming-headset-gamefirst.conf" - # Audioengine HD3 powered speakers support IEC958 but don't actually # have any digital outputs. ATTRS{idVendor}=="0a12", ATTRS{idProduct}=="4007", ENV{ACP_PROFILE_SET}="analog-only.conf" diff --git a/spa/plugins/alsa/mixer/profile-sets/razer-leviathan-v2.conf b/spa/plugins/alsa/mixer/profile-sets/razer-leviathan-v2.conf new file mode 100644 index 000000000..b61d114f3 --- /dev/null +++ b/spa/plugins/alsa/mixer/profile-sets/razer-leviathan-v2.conf @@ -0,0 +1,27 @@ +# This file is part of PipeWire/PulseAudio. +# +# Razer Leviathan V2 / V2 X soundbar audio profile. +# These soundbars have two ALSA PCM controls: +# - PCM,0: Fake mute control (only 0% / 1-100%, no real volume change) +# - PCM,1: Real hardware volume amplifier control +# This profile maps volume to the real PCM,1 control. +# +# Works with: +# Razer Leviathan V2 (USB ID 1532:0532) +# Razer Leviathan V2 X (USB ID 1532:054a) +# +; See default.conf for an explanation on the directives used here. + +[General] +auto-profiles = yes + +[Mapping stereo] +description-key = soundbar-stereo +device-strings = hw:%f,0,0 +channel-map = left,right +paths-output = PCM:1 +intended-roles = audio + +[Profile output:stereo] +output-mappings = stereo +priority = 5100 From 0eed2c14cddba9c18d14d9b411f4ad985348d93f Mon Sep 17 00:00:00 2001 From: Fernando Perez Date: Mon, 22 Jun 2026 19:14:06 -0300 Subject: [PATCH 2/4] re-add some deleted profiles --- spa/plugins/alsa/90-pipewire-alsa.rules | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/spa/plugins/alsa/90-pipewire-alsa.rules b/spa/plugins/alsa/90-pipewire-alsa.rules index 0a8501afe..3355df5c1 100644 --- a/spa/plugins/alsa/90-pipewire-alsa.rules +++ b/spa/plugins/alsa/90-pipewire-alsa.rules @@ -118,6 +118,7 @@ ATTRS{idVendor}=="0bda", ATTRS{idProduct}=="402e", ENV{ACP_PROFILE_SET}="dell-do ATTRS{idVendor}=="08bb", ATTRS{idProduct}=="2902", ENV{ACP_PROFILE_SET}="texas-instruments-pcm2902.conf" ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="0269", ENV{ACP_PROFILE_SET}="hp-tbt-dock-120w-g2.conf" ATTRS{idVendor}=="03f0", ATTRS{idProduct}=="0567", ENV{ACP_PROFILE_SET}="hp-tbt-dock-audio-module.conf" +ATTRS{idVendor}=="046d", ATTRS{idProduct}=="0a4c", ENV{ACP_PROFILE_SET}="logi407.conf" # ID 1038:12ad is for the 2018 refresh of the Arctis 7. # ID 1038:1294 is for Arctis Pro Wireless (which works with the Arctis 7 configuration). @@ -137,13 +138,17 @@ ATTRS{idVendor}=="9886", ATTRS{idProduct}=="002c", ENV{ACP_PROFILE_SET}="usb-gam ATTRS{idVendor}=="9886", ATTRS{idProduct}=="0038", ENV{ACP_PROFILE_SET}="usb-gaming-headset.conf" # ID 9886:0045 is for the Astro A20 Gen2 ATTRS{idVendor}=="9886", ATTRS{idProduct}=="0045", ENV{ACP_PROFILE_SET}="usb-gaming-headset.conf" + # ID 1532:0532 is for the Razer Leviathan V2 ATTRS{idVendor}=="1532", ATTRS{idProduct}=="0532", ENV{ACP_PROFILE_SET}="razer-leviathan-v2.conf" # ID 1532:054a is for the Razer Leviathan V2 X ATTRS{idVendor}=="1532", ATTRS{idProduct}=="054a", ENV{ACP_PROFILE_SET}="razer-leviathan-v2.conf" # ID 1532:0520 is for the Razer Kraken Tournament Edition ATTRS{idVendor}=="1532", ATTRS{idProduct}=="0520", ENV{ACP_PROFILE_SET}="usb-gaming-headset.conf" - +# ID 1532:0579 is Razer BlackShark v3 (usb direct to headset) +ATTRS{idVendor}=="1532", ATTRS{idProduct}=="0579", ENV{ACP_PROFILE_SET}="usb-gaming-headset.conf" +# ID 1532:057a is Razer BlackShark v3 (2.4GHz dongle) +ATTRS{idVendor}=="1532", ATTRS{idProduct}=="057a", ENV{ACP_PROFILE_SET}="usb-gaming-headset.conf" # ID 1038:1250 is for the Arctis 5 # ID 1037:12aa is for the Arctis 5 2019 @@ -185,6 +190,11 @@ ATTRS{idVendor}=="1395", ATTRS{idProduct}=="0300", ENV{ACP_PROFILE_SET}="usb-gam # Sennheiser GSP 670 USB headset ATTRS{idVendor}=="1395", ATTRS{idProduct}=="008a", ENV{ACP_PROFILE_SET}="usb-gaming-headset.conf" +# JBL Quantum One +ATTRS{idVendor}=="0ecb", ATTRS{idProduct}=="203a", ENV{ACP_PROFILE_SET}="usb-gaming-headset-gamefirst.conf" +# JBL Quantum 810 Wireless +ATTRS{idVendor}=="0ecb", ATTRS{idProduct}=="2069", ENV{ACP_PROFILE_SET}="usb-gaming-headset-gamefirst.conf" + # Audioengine HD3 powered speakers support IEC958 but don't actually # have any digital outputs. ATTRS{idVendor}=="0a12", ATTRS{idProduct}=="4007", ENV{ACP_PROFILE_SET}="analog-only.conf" From ca0556b1246a9380022b9f6b69b55a078ca1fbe8 Mon Sep 17 00:00:00 2001 From: Fernando Perez Date: Mon, 22 Jun 2026 19:15:13 -0300 Subject: [PATCH 3/4] add some removed newlines --- spa/plugins/alsa/90-pipewire-alsa.rules | 1 + 1 file changed, 1 insertion(+) diff --git a/spa/plugins/alsa/90-pipewire-alsa.rules b/spa/plugins/alsa/90-pipewire-alsa.rules index 3355df5c1..a6cae4daa 100644 --- a/spa/plugins/alsa/90-pipewire-alsa.rules +++ b/spa/plugins/alsa/90-pipewire-alsa.rules @@ -150,6 +150,7 @@ ATTRS{idVendor}=="1532", ATTRS{idProduct}=="0579", ENV{ACP_PROFILE_SET}="usb-gam # ID 1532:057a is Razer BlackShark v3 (2.4GHz dongle) ATTRS{idVendor}=="1532", ATTRS{idProduct}=="057a", ENV{ACP_PROFILE_SET}="usb-gaming-headset.conf" + # ID 1038:1250 is for the Arctis 5 # ID 1037:12aa is for the Arctis 5 2019 # ID 1038:1252 is for the Arctis Pro 2019 edition From f54ec10018c258977ac130e542e5a2866e559292 Mon Sep 17 00:00:00 2001 From: Fernando Perez Date: Wed, 24 Jun 2026 20:21:46 -0300 Subject: [PATCH 4/4] Add path --- .../mixer/paths/razer-leviathan-output.conf | 29 +++++++++++++++++++ .../profile-sets/razer-leviathan-v2.conf | 2 +- 2 files changed, 30 insertions(+), 1 deletion(-) create mode 100644 spa/plugins/alsa/mixer/paths/razer-leviathan-output.conf diff --git a/spa/plugins/alsa/mixer/paths/razer-leviathan-output.conf b/spa/plugins/alsa/mixer/paths/razer-leviathan-output.conf new file mode 100644 index 000000000..fc60bbf12 --- /dev/null +++ b/spa/plugins/alsa/mixer/paths/razer-leviathan-output.conf @@ -0,0 +1,29 @@ +# This file is part of PulseAudio. +# +# PulseAudio is free software; you can redistribute it and/or modify +# it under the terms of the GNU Lesser General Public License as +# published by the Free Software Foundation; either version 2.1 of the +# License, or (at your option) any later version. +# +# PulseAudio 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. +# +# You should have received a copy of the GNU Lesser General Public License +# along with PulseAudio; if not, see . + +; Steelseries Arctis 5 USB headset stereo chat path. The headset has two +; output devices. The first one is meant for voice audio, and the second +; one meant for everything else. The purpose of this unusual design is to +; provide separate volume controls for voice and other audio, which can be +; useful in gaming. + +[General] +description = Razer Leviathan Output + +[Element PCM,1] +volume = merge +switch = mute +override-map.1 = all +override-map.2 = all-left,all-right diff --git a/spa/plugins/alsa/mixer/profile-sets/razer-leviathan-v2.conf b/spa/plugins/alsa/mixer/profile-sets/razer-leviathan-v2.conf index b61d114f3..02d5c94a3 100644 --- a/spa/plugins/alsa/mixer/profile-sets/razer-leviathan-v2.conf +++ b/spa/plugins/alsa/mixer/profile-sets/razer-leviathan-v2.conf @@ -19,7 +19,7 @@ auto-profiles = yes description-key = soundbar-stereo device-strings = hw:%f,0,0 channel-map = left,right -paths-output = PCM:1 +paths-output = razer-leviathan-output intended-roles = audio [Profile output:stereo]