!SgYlXivkogarTVcnZO:nixos.org

Nix Flakes

865 Members
177 Servers

Load older messages


SenderMessageTime
23 May 2024
@lazycaaat:matrix.orglazycaaat joined the room.11:02:29
@gdarends:matrix.orggdarends

Hi all! I'm trying to configure a specific device with services.pipewire.wireplumber.configPackages but it doesn't seem like it's loading the config. I see the config file in /nix/store, but it doesn't show up in /etc.
Here is my config:

services.pipewire = {
    enable = true;
    alsa.enable = true;
    alsa.support32Bit = true;
    pulse.enable = true;
    jack.enable = true;
    wireplumber.enable = true;

    wireplumber.configPackages = [
      (pkgs.writeTextDir "share/wireplumber/main.lua.d/99-alsa-low-latency.conf" ''
        monitor.alsa.rules = {
          {
            matches = {
              { "node.name", "matches", "alsa_input.usb-Focusrite_Scarlett_4i4_4th_Gen_S49C91841831EB-00.*"; }
              { "node.name", "matches", "alsa_output.usb-Focusrite_Scarlett_4i4_4th_Gen_S49C91841831EB-00.*"; }
            },
            apply_properties = {
              ["audio.rate"] = 192000,
              ["api.alsa.period-size"] = 512,
              ["api.alsa.period-num"] = 3,
            },
          }, 
        }
      '')
    ];

    # add virtual audio device for butt streaming
    extraConfig.pipewire = {
      "99-clock-rates" = {
        "context.properties" = {
          "default.clock.allowed-rates" = [ 48000 192000 ];
        };
      };
    };
  };
14:16:12
@gdarends:matrix.orggdarendsI'm using this guide: https://nixos.wiki/wiki/PipeWire#Controlling_the_ALSA_devices14:16:48
@raf:notashelf.dev@raf:notashelf.dev
  1. nixos.wiki is outdated, don't use it
  2. you will need to put keys in quotation marks, e.g., "monitor.alsa.rules" instead of monitor.alsa.rules
14:17:23
@gdarends:matrix.orggdarendsBut the guide specifically mentions 24.0514:19:04
@raf:notashelf.dev@raf:notashelf.devthe guide is wrong, then14:19:31
@gdarends:matrix.orggdarendsOk14:19:52
@raf:notashelf.dev@raf:notashelf.devthe bluetooth section looks correct14:19:55
@raf:notashelf.dev@raf:notashelf.devALSA low latency section is not14:20:01
@gdarends:matrix.orggdarendsSo correct me if I'm wrong. This config is not being published because the syntax is wrong?14:21:45
@raf:notashelf.dev@raf:notashelf.devnot quite14:22:08
@raf:notashelf.dev@raf:notashelf.devyou are using extraPackages, iirc that does not get linked to /etc14:22:16
@gdarends:matrix.orggdarends It is building and it is populating in /nix/store 14:22:18
@raf:notashelf.dev@raf:notashelf.dev * you are using configPackages, iirc that does not get linked to /etc14:22:29
@gdarends:matrix.orggdarends I did a find / and I can't find it anywhere. 14:23:33
@gdarends:matrix.orggdarends

I updated my config, but it's still not being loaded. I tried both configPackages and extraConfig. None work.

wireplumber.configPackages = [
    (pkgs.writeTextDir "share/wireplumber/wireplumber.conf.d/99-alsa-low-latency.conf" ''
      "monitor.alsa.rules" = [
        {
          matches = [
            { "node.name" = "alsa_input.usb-Focusrite_Scarlett_4i4_4th_Gen_S49C91841831EB-00.*"; }
            { "node.name" = "alsa_output.usb-Focusrite_Scarlett_4i4_4th_Gen_S49C91841831EB-00.*"; }
          ];
          actions = {
            update-props = {
              "audio.rate" = 192000;
              "api.alsa.period-size" = 512;
              "api.alsa.period-num" = 3;
            };
          };
        }
      ];
    '')
  ];

  wireplumber.extraConfig = {
    "98-alsa-low-latency" = {
      "monitor.alsa.rules" = [
        {
          matches = [
            { "node.name" = "alsa_input.usb-Focusrite_Scarlett_4i4_4th_Gen_S49C91841831EB-00.*"; }
            { "node.name" = "alsa_output.usb-Focusrite_Scarlett_4i4_4th_Gen_S49C91841831EB-00.*"; }
          ];
          actions = {
            update-props = {
              "audio.rate" = 192000;
              "api.alsa.period-size" = 512;
              "api.alsa.period-num" = 3;
            };
          };
        }
      ];
    };
  };
15:43:43
@kjeremy:matrix.orgkjeremy How do I set my flake's inputs.nixpkgs to be from another flake input as in inputs.b.nixpkgs? 17:29:15
@kjeremy:matrix.orgkjeremy I was thinking something like nixpkgs = b.inputs.nixpkgs but that doesn't work 17:30:53
@mewp:nurupo.plmewp .follows 17:31:18
@mewp:nurupo.plmewp for example inputs.nixops.inputs.nixpkgs.follows = "dwarffs/nixpkgs"; 17:32:50
@kjeremy:matrix.orgkjeremy I understand that that's how you set the nixpkgs of nixops but I'm trying to set the top-level nixpkgs 17:33:56
@kjeremy:matrix.orgkjeremyah i think i got it.thank you. the "/" was the key17:34:52
25 May 2024
@ayyz12:matrix.org@ayyz12:matrix.org left the room.07:49:49
@hellwolf:matrix.orghellwolf joined the room.13:56:39
@hellwolf:matrix.orghellwolfHow should "overlays.default" in a flake actually be used? I try to use it in another flake. But I got "error: attribute 'overlay' missing"13:57:43
@hellwolf:matrix.orghellwolf
overlays = [          
  solc.overlays.defaul # <-- ?
];                    
14:00:52
@hellwolf:matrix.orghellwolf
{
  description = "A very basic flake";

  inputs = {
    nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable";
    flake-utils.url = "github:numtide/flake-utils";
  };

  outputs = { self, nixpkgs, flake-utils }:
  flake-utils.lib.eachSystem
  [
    "x86_64-linux"
    "x86_64-darwin"
    "aarch64-darwin"
  ] (system:
  let packages = import nixpkgs {
    inherit system;
    # overlays = [ solc-pkgs-overlay ];
  };
  in
  {
    inherit packages;
  });
}

And what's wrong with this flake...

16:05:26
@hellwolf:matrix.orghellwolf

Nix flake check complains:

       error: flake attribute 'packages.x86_64-linux.system' is not a derivation
16:08:17
@hellwolf:matrix.orghellwolfAh, that should be legacyPackages16:09:16
26 May 2024
@tim92:matrix.orgtim joined the room.06:52:51

Show newer messages


Back to Room ListRoom Version: 6