refactoring

This commit is contained in:
Melvin Ragusa
2026-02-02 10:54:48 +01:00
parent 01058ee515
commit aa54b7c40b
9 changed files with 736 additions and 80 deletions

43
modules/audio.nix Normal file
View File

@@ -0,0 +1,43 @@
# 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
# 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" ];
};
};
};
}