summaryrefslogtreecommitdiff
path: root/os/core/audio.nix
diff options
context:
space:
mode:
authoradikro <adikro@disroot.org>2026-01-08 20:40:35 +0100
committeradikro <adikro@disroot.org>2026-01-08 20:40:35 +0100
commit5d0f2554cf56459b0afd27d3ed437a7fa50602a9 (patch)
treebfaa6a1f79e942f54db2bc76cb47a8771b9c8f3e /os/core/audio.nix
parent5b074f906a954ac25805ce6cbcbf7568cd97dafc (diff)
some modularization
Diffstat (limited to 'os/core/audio.nix')
-rw-r--r--os/core/audio.nix56
1 files changed, 35 insertions, 21 deletions
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; };
+ }];
+ })
+ ];
}