From 5d0f2554cf56459b0afd27d3ed437a7fa50602a9 Mon Sep 17 00:00:00 2001 From: adikro Date: Thu, 8 Jan 2026 20:40:35 +0100 Subject: some modularization --- os/core/audio.nix | 56 ++++++++++++++++++++++++++++++++++--------------------- 1 file changed, 35 insertions(+), 21 deletions(-) (limited to 'os/core/audio.nix') diff --git a/os/core/audio.nix b/os/core/audio.nix index 8d44375..0290b6c 100644 --- a/os/core/audio.nix +++ b/os/core/audio.nix @@ -3,27 +3,41 @@ let cfg = config.os.core.audio; in { - options.os.core.audio.enable = lib.mkEnableOption "audio support"; - config = lib.mkIf cfg.enable { - services = { - pipewire = { - enable = true; - audio.enable = true; - pulse.enable = true; - alsa.enable = true; - alsa.support32Bit = true; - jack.enable = true; - wireplumber.enable = true; + options.os.core.audio = { + enable = lib.mkEnableOption "audio support"; + disable-devices.enable = lib.mkEnableOption "disables some random devices cluttering up"; + }; + config = lib.mkMerge [ + (lib.mkIf cfg.enable { + services = { + pipewire = { + enable = true; + audio.enable = true; + pulse.enable = true; + alsa.enable = true; + alsa.support32Bit = true; + jack.enable = true; + wireplumber.enable = true; + }; + playerctld.enable = true; + spotifyd.enable = true; }; - playerctld.enable = true; - spotifyd.enable = true; - }; - security.rtkit.enable = true; - hardware.enableAllFirmware = true; + security.rtkit.enable = true; + hardware.enableAllFirmware = true; - environment.systemPackages = with pkgs; [ - helvum - alsa-utils - ]; - }; + environment.systemPackages = with pkgs; [ + helvum + alsa-utils + ]; + }) + (lib.mkIf cfg.disable-devices.enable { + services.pipewire.wireplumber.extraConfig."99-disable-useless-devices"."monitor.alsa.rules" = [{ + matches = [ + { "device.name" = "~alsa_card.pci-0000_03_00.1*"; } + { "device.description" = "~USB Audio*"; } + ]; + actions.update-props = { "device.disabled" = true; }; + }]; + }) + ]; } -- cgit v1.3