Files
nixos/modules/audio.nix
Melvin Ragusa 2505298449 Normalize Nix module formatting and update flake.lock
Consistently format module argument blocks and convert aligned
package comments to inline comments. Trim trailing whitespace and
minor layout tweaks across modules. Bump opencode rev, narHash and
lastModified in flake.lock and remove the original dev ref.
2026-02-02 18:08:01 +01:00

66 lines
1.6 KiB
Nix

# modules/audio.nix
# Audio and Bluetooth configuration: Blueman GUI, volume control, media keys
{
config,
pkgs,
lib,
...
}:
{
# Bluetooth GUI management
services.blueman.enable = true;
# Audio packages
environment.systemPackages = with pkgs; [
# PipeWire volume control
pwvucontrol # Modern PipeWire volume control (Qt)
pavucontrol # Classic PulseAudio volume control (GTK) - as backup
helvum # PipeWire patchbay for routing audio
qpwgraph # PipeWire graph editor (visual audio routing)
# Media player control
playerctl # Control media players via D-Bus (for media keys)
# Audio tools
easyeffects # Audio effects and equalizer for PipeWire
# Bluetooth audio codecs are handled by PipeWire automatically
];
# Ensure PipeWire has good Bluetooth codec support
# This is already configured in your main config, but we ensure AAC/LDAC support
services.pipewire.wireplumber.extraConfig = {
"10-bluez" = {
"monitor.bluez.properties" = {
# Enable all Bluetooth codecs
"bluez5.enable-sbc-xq" = true;
"bluez5.enable-msbc" = true;
"bluez5.enable-hw-volume" = true;
# Bluetooth headset roles
"bluez5.roles" = [
"a2dp_sink"
"a2dp_source"
"bap_sink"
"bap_source"
"hsp_hs"
"hsp_ag"
"hfp_hf"
"hfp_ag"
];
# Codec preference order (highest quality first)
"bluez5.codecs" = [
"ldac"
"aac"
"aptx_hd"
"aptx"
"sbc_xq"
"sbc"
];
};
};
};
}