NixOS / nixpkgs

Nix Packages collection & NixOS
MIT License
18.37k stars 14.32k forks source link

Wireplumber extraConfig does not write a config #352440

Open forest-cat opened 1 month ago

forest-cat commented 1 month ago

Describe the bug

Setting wireplumber.extraConfig does not write a config file

Steps To Reproduce

Steps to reproduce the behavior:

  1. Set options for wireplumber.extraConfig
  2. Rebuild
  3. Nothing happens

Expected behavior

Nix should write a wireplumber config

Additional context

    wireplumber.extraConfig.wireplumber = {
      "wireplumber.settings"."device.routes.default-sink-volume" = "0.0";
      "wireplumber.settings"."device.routes.default-source-volume" = "0.0";
    };

Metadata

 - system: `"x86_64-linux"`
 - host os: `Linux 6.6.56, NixOS, 24.05 (Uakari), 24.05.20241014.c0b1da3`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.18.8`
 - channels(root): `"nixos-23.11"`
 - nixpkgs: `/nix/store/wdk3xa0vwx7swjdl1samf1bccvyyzfc1-source`

Add a :+1: reaction to issues you find important.

apt-install-coffee commented 1 week ago

check /etc/systemd/user/wireplumber.service.d/overrides.conf, it should show that wireplumber configs are to a nix-store directory e.g.

Environment="XDG_DATA_DIRS=/nix/store/q45lchmbg047lip6cxnirqcx4cfbhf84-wireplumber-configs/share:/nix/store/61b60y38nk2zgzc3z151qqy86sdfha72-wireplumber-0.5.6/share"

follow that directory's ./wireplumber/wireplumber.conf.d/, and you'll find your configs.

forest-cat commented 4 days ago

check /etc/systemd/user/wireplumber.service.d/overrides.conf, it should show that wireplumber configs are to a nix-store directory e.g.

Environment="XDG_DATA_DIRS=/nix/store/q45lchmbg047lip6cxnirqcx4cfbhf84-wireplumber-configs/share:/nix/store/61b60y38nk2zgzc3z151qqy86sdfha72-wireplumber-0.5.6/share"

follow that directory's ./wireplumber/wireplumber.conf.d/, and you'll find your configs.

Okay i was able to find it that way, but now i have another issue. Ive put

  services.pipewire = {
    enable = true;
    pulse.enable = true;
    wireplumber.extraConfig.wireplumber = {
      "wireplumber.settings"."device.routes.default-sink-volume" = "0.0";
      "wireplumber.settings"."device.routes.default-source-volume" = "0.0";
    };
  };

in my configuration but the config still states:

 device.routes.default-sink-volume = {
    description = "The default volume for sink devices"
    type = "float"
    default = 0.064
    min = 0.0
    max = 1.0
  }
  device.routes.default-source-volume = {
    description = "The default volume for source devices"
    type = "float"
    default = 1.0
    min = 0.0
    max = 1.0
  }

Probably i just got something wrong in the configuration but could you help me out there?