Declarative NixOS module to configure a modern PipeWire-based audio stack with WirePlumber, ALSA support, real-time scheduling and helper tools.
This module is part of Typovrak NixOS
, a fully modular and declarative operating system configuration built entirely with :
- π§± 30+ standalone modules : Each managing a specific tool, feature or aesthetic like
zsh
,i3
,lighdm
,polybar
,gtk
and more. - π¨ Catppuccin Mocha : The default theme across terminal, GUI, and login interfaces.
- π‘οΈ 100% FOSS compliant : No proprietary software included unless explicitly chosen.
- π§βπ» Built for developers : Optimized for speed, keyboard-centric workflows and expressive CLI tooling.
Explore the full system : π github.com/typovrak/nixos
Caution
This module is opinionated, it may override, replace, or remove files and settings without prompt. To avoid unexpected changes, back up your existing files or fork this module to take full control. Follow this documentation to avoid any of this problem.
- π΅ PipeWire audio : Enables
pipewire
,wireplumber
, ALSA compatibility (including 32-bit) and PulseAudio emulation. - π CLI mixer : Installs
pamixer
for scripting and terminal volume control. - ποΈ Modular routing : Includes
helvum
for graphical patchbay management. - π‘οΈ Real-time priority : Activates
rtkit
to grant real-time scheduling to audio threads. - β PulseAudio disabled : Ensures no conflict with legacy PulseAudio service.
β― tree -a -I ".git*"
.
βββ configuration.nix # module configuration
βββ LICENSE.md # MIT license
βββ README.md # this documentation
1 directory, 3 files
Requires NixOS 24.11 or newer.
the target user must be defined in config.username
. See typovrak main nixos configuration for more details.
No backup needed for this module.
Fetch the module directly in your main nixos configuration at /etc/nixos/configuration.nix
using fetchGit
# /etc/nixos/configuration.nix
let
nixos-audio = fetchGit {
url = "https://github.com/typovrak/nixos-audio.git";
ref = "main";
rev = "689a7ccd5c25455f61d02636daab938bb68e4aa2"; # update to the desired commit
};
in
{
imports = [
/etc/nixos/hardware-configuration.nix # system hardware settings
/etc/nixos/variables.nix # defines config.username and other variables, see https://github.com/typovrak/nixos for more details
(import "${nixos-audio}/configuration.nix")
];
}
Once imported, rebuild your system to apply changes
sudo nixos-rebuild switch
Want to personalize this module ?
Fork it and add this custom module in your main nixos configuration at /etc/nixos/configuration.nix
using fetchGit
let
nixos-audio = fetchGit {
url = "https://github.com/<YOUR_USERNAME>/nixos-audio.git";
ref = "main";
rev = "<COMMIT>"; # see below
};
in {
imports = [
/etc/nixos/hardware-configuration.nix # system hardware settings
/etc/nixos/variables.nix # defines config.username and other variables, see https://github.com/typovrak/nixos for more details
(import "${nixos-audio}/configuration.nix")
];
}
Get the latest commit hash by executing
git clone https://github.com/<YOUR_USERNAME>/nixos-audio.git &&
cd nixos-audio &&
git log -1 --pretty=format:"%H"
See your volume level
pamixer --get-volume
Toggle mute audio with
pamixer --toggle-mute
- π PipeWire documentation : Learn how PipeWire manages audio and video streams with low latency.
- π§© WirePlumber session manager : Advanced session and policy management for PipeWire.
- ποΈ Helvum patchbay : Visual tool to route audio between apps and devices.
- π οΈ PipeWire on Arch wiki : Detailed usage, tips and config examples.
- π¦ pamixer GitHub : Lightweight CLI mixer compatible with PulseAudio and PipeWire.
Dive into typovrak.tv/nixos Catppuccin mocha green themed gateway to my GitHub and NixOS setup.
Browse every module, example and config in a sleek with an interactive interface that feels just like your desktop.
If this module saved you time, please βοΈ the repo and share feedback.
You can also support me on β Buy me a coffee
If you've ever rm -rf
ed your config by mistake or rebuilt for the 42nd time because a semicolon was missingβ¦
You're not alone, Welcome home !
π§ What youβll find is :
π» #nixos-setup
- get help with modules, rebuilds and configs.π #web-dev
- talk JS, TypeScript, React, Node and more.π§ #open-source
- share your repos, contribute to others and discuss FOSS culture.β¨οΈ #typing
- layouts, mechanical keyboards and speed goals.π¨ #ricing
- dotfiles, theming tips and desktop screenshots.
Everyone's welcome no matter how many times you've broken your system (except for Windows users) π
Made with π by typovrak