From 04793138b50717cd543cdbdd1f5df663e4623eff Mon Sep 17 00:00:00 2001 From: Arun Raghavan Date: Wed, 21 Jan 2026 15:23:39 -0800 Subject: [PATCH] alsa-card-profiles: Add config for a couple of JBL gaming headsets Similar to the existing SteelSeries and Logitech ones, but the order of the playback endpoints is reversed, and only mono input is supported. --- spa/plugins/alsa/90-pipewire-alsa.rules | 5 ++ .../usb-gaming-headset-gamefirst.conf | 70 +++++++++++++++++++ 2 files changed, 75 insertions(+) create mode 100644 spa/plugins/alsa/mixer/profile-sets/usb-gaming-headset-gamefirst.conf diff --git a/spa/plugins/alsa/90-pipewire-alsa.rules b/spa/plugins/alsa/90-pipewire-alsa.rules index b2e1f6886..8c986d070 100644 --- a/spa/plugins/alsa/90-pipewire-alsa.rules +++ b/spa/plugins/alsa/90-pipewire-alsa.rules @@ -187,6 +187,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" diff --git a/spa/plugins/alsa/mixer/profile-sets/usb-gaming-headset-gamefirst.conf b/spa/plugins/alsa/mixer/profile-sets/usb-gaming-headset-gamefirst.conf new file mode 100644 index 000000000..9192c6864 --- /dev/null +++ b/spa/plugins/alsa/mixer/profile-sets/usb-gaming-headset-gamefirst.conf @@ -0,0 +1,70 @@ +# 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 . + +; USB gaming headset. +; These headsets usually have two output devices. The first one is meant +; for general audio, and the second one is meant for chat. There is also +; a single input device for chat. +; The purpose of this unusual design is to provide separate volume +; controls for voice and other audio, which can be useful in gaming. +; +; Works with: +; JBL Quantum 810 Wireless +; JBL Quantum One +; +; Based on usb-gaming-headset.conf. +; +; See default.conf for an explanation on the directives used here. + +[General] +auto-profiles = yes + +[Mapping mono-chat-output] +description-key = gaming-headset-chat +device-strings = hw:%f,1,0 +channel-map = mono +paths-output = usb-gaming-headset-output-mono +intended-roles = phone + +[Mapping stereo-chat-output] +description-key = gaming-headset-chat +device-strings = hw:%f,1,0 +channel-map = left,right +paths-output = usb-gaming-headset-output-stereo +intended-roles = phone + +[Mapping mono-chat-input] +description-key = gaming-headset-chat +device-strings = hw:%f,0,0 +channel-map = mono +paths-input = usb-gaming-headset-input +intended-roles = phone + +[Mapping stereo-game-output] +description-key = gaming-headset-game +device-strings = hw:%f,0,0 +channel-map = left,right +paths-output = usb-gaming-headset-output-stereo +direction = output + +[Profile output:mono-chat+output:stereo-game+input:mono-chat] +output-mappings = mono-chat-output stereo-game-output +input-mappings = mono-chat-input +priority = 5100 + +[Profile output:stereo-game+output:stereo-chat+input:mono-chat] +output-mappings = stereo-game-output stereo-chat-output +input-mappings = mono-chat-input +priority = 5100