├── .gitignore ├── control ├── install.sh ├── 91-pulseaudio-razer-nari.rules ├── 91-pulseaudio-razer-nari.rules.pipewire ├── install-pipewire.sh ├── razer-nari-usb-audio.conf ├── Makefile ├── razer-nari-input.conf ├── LICENSE ├── razer-nari-output-game.conf ├── razer-nari-output-chat.conf └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | /.idea 2 | /build/ 3 | -------------------------------------------------------------------------------- /control: -------------------------------------------------------------------------------- 1 | Package: pulseaudio-razer-nari 2 | Version: 0.3 3 | Maintainer: Ilgiz Mustafin 4 | Homepage: https://github.com/imustafin/razer-nari-pulseaudio-profile 5 | Architecture: all 6 | Depends: pulseaudio, udev 7 | Section: sound 8 | Description: Pulseaudio configuration for the Razer Nari 9 | -------------------------------------------------------------------------------- /install.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | cp razer-nari-input.conf /usr/share/pulseaudio/alsa-mixer/paths/ 3 | cp razer-nari-output-{game,chat}.conf /usr/share/pulseaudio/alsa-mixer/paths/ 4 | cp razer-nari-usb-audio.conf /usr/share/pulseaudio/alsa-mixer/profile-sets/ 5 | cp 91-pulseaudio-razer-nari.rules /lib/udev/rules.d/ 6 | 7 | -------------------------------------------------------------------------------- /91-pulseaudio-razer-nari.rules: -------------------------------------------------------------------------------- 1 | ATTRS{idVendor}=="1532", ATTRS{idProduct}=="051a", ENV{PULSE_PROFILE_SET}="razer-nari-usb-audio.conf" 2 | ATTRS{idVendor}=="1532", ATTRS{idProduct}=="051c", ENV{PULSE_PROFILE_SET}="razer-nari-usb-audio.conf" 3 | ATTRS{idVendor}=="1532", ATTRS{idProduct}=="051d", ENV{PULSE_PROFILE_SET}="razer-nari-usb-audio.conf" 4 | -------------------------------------------------------------------------------- /91-pulseaudio-razer-nari.rules.pipewire: -------------------------------------------------------------------------------- 1 | ATTRS{idVendor}=="1532", ATTRS{idProduct}=="051a", ENV{ACP_PROFILE_SET}="razer-nari-usb-audio.conf" 2 | ATTRS{idVendor}=="1532", ATTRS{idProduct}=="051c", ENV{ACP_PROFILE_SET}="razer-nari-usb-audio.conf" 3 | ATTRS{idVendor}=="1532", ATTRS{idProduct}=="051d", ENV{ACP_PROFILE_SET}="razer-nari-usb-audio.conf" 4 | -------------------------------------------------------------------------------- /install-pipewire.sh: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | cp razer-nari-input.conf /usr/share/alsa-card-profile/mixer/paths/ 3 | cp razer-nari-output-{game,chat}.conf /usr/share/alsa-card-profile/mixer/paths/ 4 | cp razer-nari-usb-audio.conf /usr/share/alsa-card-profile/mixer/profile-sets/ 5 | cp 91-pulseaudio-razer-nari.rules.pipewire /lib/udev/rules.d/91-pulseaudio-razer-nari.rules 6 | -------------------------------------------------------------------------------- /razer-nari-usb-audio.conf: -------------------------------------------------------------------------------- 1 | [General] 2 | auto-profiles = yes 3 | 4 | [Mapping analog-chat] 5 | description = Chat 6 | device-strings = hw:%f,0,0 7 | channel-map = mono 8 | paths-input = razer-nari-input 9 | paths-output = razer-nari-output-chat 10 | 11 | [Mapping analog-game] 12 | description = Game 13 | device-strings = hw:%f,1,0 14 | channel-map = left,right 15 | paths-output = razer-nari-output-game 16 | direction = output 17 | 18 | [Profile output:analog-chat+output:analog-game+input:analog-chat] 19 | output-mappings = analog-chat analog-game 20 | input-mappings = analog-chat 21 | priority = 5100 22 | skip-probe = yes 23 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | VERSION=0.3 2 | 3 | .PHONY: all build-deb 4 | 5 | all: build-deb 6 | 7 | clean: 8 | rm -rf build/* 9 | 10 | build-deb: 11 | mkdir -p build/deb/DEBIAN build/deb/lib/udev/rules.d build/deb/usr/share/pulseaudio/alsa-mixer/profile-sets build/deb/usr/share/pulseaudio/alsa-mixer/paths 12 | cp control build/deb/DEBIAN/ 13 | cp 91-pulseaudio-razer-nari.rules build/deb/lib/udev/rules.d/ 14 | cp razer-nari-usb-audio.conf build/deb/usr/share/pulseaudio/alsa-mixer/profile-sets/ 15 | cp razer-nari-input.conf build/deb/usr/share/pulseaudio/alsa-mixer/paths/ 16 | cp razer-nari-output-game.conf build/deb/usr/share/pulseaudio/alsa-mixer/paths/ 17 | cp razer-nari-output-chat.conf build/deb/usr/share/pulseaudio/alsa-mixer/paths/ 18 | dpkg-deb --build build/deb build/pulseaudio-razer-nari_${VERSION}_all.deb 19 | -------------------------------------------------------------------------------- /razer-nari-input.conf: -------------------------------------------------------------------------------- 1 | # This file is part of PulseAudio. 2 | # 3 | # PulseAudio is free software; you can redistribute it and/or modify 4 | # it under the terms of the GNU Lesser General Public License as 5 | # published by the Free Software Foundation; either version 2.1 of the 6 | # License, or (at your option) any later version. 7 | # 8 | # PulseAudio is distributed in the hope that it will be useful, but 9 | # WITHOUT ANY WARRANTY; without even the implied warranty of 10 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 11 | # General Public License for more details. 12 | # 13 | # You should have received a copy of the GNU Lesser General Public License 14 | # along with PulseAudio; if not, see . 15 | 16 | ; Razer Nari USB headset microphone path. Works also with Arctis Pro 17 | ; Wireless. 18 | 19 | [General] 20 | description-key = analog-input-microphone-headset 21 | 22 | [Element Headset] 23 | volume = merge 24 | switch = mute 25 | override-map.1 = all 26 | override-map.2 = all-left,all-right 27 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | Copyright (c) 2018 Bert Hekman 2 | 3 | Permission is hereby granted, free of charge, to any person 4 | obtaining a copy of this software and associated documentation 5 | files (the "Software"), to deal in the Software without 6 | restriction, including without limitation the rights to use, 7 | copy, modify, merge, publish, distribute, sublicense, and/or sell 8 | copies of the Software, and to permit persons to whom the 9 | Software is furnished to do so, subject to the following 10 | conditions: 11 | 12 | The above copyright notice and this permission notice shall be 13 | included in all copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, 16 | EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES 17 | OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND 18 | NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT 19 | HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, 20 | WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING 21 | FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR 22 | OTHER DEALINGS IN THE SOFTWARE. 23 | -------------------------------------------------------------------------------- /razer-nari-output-game.conf: -------------------------------------------------------------------------------- 1 | # This file is part of PulseAudio. 2 | # 3 | # PulseAudio is free software; you can redistribute it and/or modify 4 | # it under the terms of the GNU Lesser General Public License as 5 | # published by the Free Software Foundation; either version 2.1 of the 6 | # License, or (at your option) any later version. 7 | # 8 | # PulseAudio is distributed in the hope that it will be useful, but 9 | # WITHOUT ANY WARRANTY; without even the implied warranty of 10 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 11 | # General Public License for more details. 12 | # 13 | # You should have received a copy of the GNU Lesser General Public License 14 | # along with PulseAudio; if not, see . 15 | 16 | ; Razer Nari USB headset stereo game path. The headset has two 17 | ; output devices. The first one is meant for voice audio, and the second 18 | ; one meant for everything else. The purpose of this unusual design is to 19 | ; provide separate volume controls for voice and other audio, which can be 20 | ; useful in gaming. 21 | 22 | [General] 23 | priority = 99 24 | description-key = steelseries-arctis-output-game-common 25 | 26 | [Element PCM] 27 | switch = mute 28 | volume = merge 29 | 30 | -------------------------------------------------------------------------------- /razer-nari-output-chat.conf: -------------------------------------------------------------------------------- 1 | # This file is part of PulseAudio. 2 | # 3 | # PulseAudio is free software; you can redistribute it and/or modify 4 | # it under the terms of the GNU Lesser General Public License as 5 | # published by the Free Software Foundation; either version 2.1 of the 6 | # License, or (at your option) any later version. 7 | # 8 | # PulseAudio is distributed in the hope that it will be useful, but 9 | # WITHOUT ANY WARRANTY; without even the implied warranty of 10 | # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU 11 | # General Public License for more details. 12 | # 13 | # You should have received a copy of the GNU Lesser General Public License 14 | # along with PulseAudio; if not, see . 15 | 16 | ; Razer Nari USB headset stereo chat path. The headset has two 17 | ; output devices. The first one is meant for voice audio, and the second 18 | ; one meant for everything else. The purpose of this unusual design is to 19 | ; provide separate volume controls for voice and other audio, which can be 20 | ; useful in gaming. 21 | 22 | [General] 23 | priority = 50 24 | description-key = steelseries-arctis-output-chat-common 25 | 26 | [Element Com Speaker] 27 | switch = mute 28 | volume = merge 29 | 30 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Razer Nari pulseaudio profile 2 | 3 | The Razer Nari is a gaming headset which has two stereo audio outputs. One for voice chat and one for the rest of the sound. It can be mixed between with a physical knob. 4 | 5 | By default, pulseaudio only enables the voice chat output. This profile enables the second (game) output and the udev rule makes sure this profile is used when plugging in the device. 6 | 7 | This solves the problem when only **mono** output is recognized for Nari. 8 | 9 | ## Installing 10 | 11 | ### PipeWire 12 | 13 | If you use PipeWire, use the ``install-pipewire.sh`` script. 14 | 15 | If you see the default profiles (names like *Multichannel*) 16 | but not these profiles (names like *Game Output*, *Chat Output*), then 17 | you might need to change the udev rules. 18 | 19 | In `91-pulseaudio-razer-nari.rules` change `PULSE_PROFILE_SET` to `ACP_PROFILE_SET`. 20 | 21 | #### Fedora34 22 | 23 | Might apply to other distributions that have migrated to PipeWire. 24 | In addition to the change to `91-pulseaudio-razer-nari.rules` described above, you also need to move all config files originated from this repo from `/usr/share/pulseaudio/alsa-mixer/` to `/usr/share/alsa-card-profile/mixer/`. 25 | 26 | ### Arch Linux 27 | 28 | Install the package [from the AUR](https://aur.archlinux.org/packages/razer-nari-pulseaudio-profile/) 29 | 30 | #### Devices not recognized on Arch 31 | There was an update in the Arch `pulseaudio` package (https://github.com/imustafin/razer-nari-pulseaudio-profile/issues/5) 32 | which changes the location of the profile files. 33 | 34 | In pulseaudio `14.2-2` this was reverted 35 | (https://github.com/imustafin/razer-nari-pulseaudio-profile/issues/12). If you 36 | are using pulseaudio `>= 14.2-2`, then use the usual instructions for other distros. 37 | 38 | If you are using pulseaudio `>= 13.99.2+7+g6101798c7, < 14.2-2 `OR if you are using Pipewire-pulse then use these instructions: 39 | - `razer-nari-input.conf`, `razer-nari-output-game.conf` and `razer-nari-output-chat.conf` should go to `/usr/share/alsa-card-profile/mixer/paths/` 40 | - `razer-nari-usb-audio.conf` should go to `/usr/share/alsa-card-profile/mixer/profile-sets/` 41 | - `91-pulseaudio-razer-nari.rules` to `/lib/udev/rules.d/` as usual 42 | 43 | ### Other Linux Systems 44 | 45 | ``cd`` into the ``razer-nari-pulseaudio-profile`` folder and run ``sudo chmod +x install.sh && ./install.sh`` 46 | 47 | ### Other 48 | 49 | Install by copying the following files: 50 | 51 | - `razer-nari-input.conf`, `razer-nari-output-game.conf`, and `razer-nari-output-chat.conf` to `/usr/share/pulseaudio/alsa-mixer/paths/` 52 | - `razer-nari-usb-audio.conf` to `/usr/share/pulseaudio/alsa-mixer/profile-sets/` 53 | - `91-pulseaudio-razer-nari.rules` to `/lib/udev/rules.d/` 54 | 55 | Script: 56 | ``` 57 | cp razer-nari-input.conf /usr/share/pulseaudio/alsa-mixer/paths/ 58 | cp razer-nari-output-{game,chat}.conf /usr/share/pulseaudio/alsa-mixer/paths/ 59 | cp razer-nari-usb-audio.conf /usr/share/pulseaudio/alsa-mixer/profile-sets/ 60 | cp 91-pulseaudio-razer-nari.rules /lib/udev/rules.d/ 61 | ``` 62 | 63 | Restart pulseaudio: 64 | 65 | pulseaudio -k 66 | pulseaudio --start 67 | 68 | After that, plug in the device to see if it works. 69 | --------------------------------------------------------------------------------