PipeWire: Difference between revisions

imported>MakiseKurisu
pactl not found: Add wpctl as a better alternative.
imported>Iopq
outdated info
Line 24: Line 24:
</syntaxHighlight>
</syntaxHighlight>


Some useful knobs if you want to finetune or debug your setup:
The option definition `services.pipewire.config' no longer has any effect; overriding default Pipewire configuration through NixOS options never worked correctly and is no longer supported. Please create drop-in files in /etc/pipewire/pipewire.conf.d/ to make the desired setting changes instead.
 
<syntaxHighlight lang="nix">
services.pipewire = {
  config.pipewire = {
    "context.properties" = {
      #"link.max-buffers" = 64;
      "link.max-buffers" = 16; # version < 3 clients can't handle more than this
      "log.level" = 2; # https://docs.pipewire.org/page_daemon.html
      #"default.clock.rate" = 48000;
      #"default.clock.quantum" = 1024;
      #"default.clock.min-quantum" = 32;
      #"default.clock.max-quantum" = 8192;
  };
};
</syntaxHighlight>
 
<strong>NOTE</strong>: Arrays are <em>replaced</em> rather than merged with defaults, so in order to keep any default items in the configuration, they <strong>have to</strong> be listed. You can work around that by loading the default configuration files just like the pipewire service module does, like so:
<syntaxHighlight lang="nix">
let
  defaultContextModules = (lib.importJSON <nixpkgs/nixos/modules/services/desktops/pipewire/daemon/pipewire.conf.json>)."context.modules";
in
{
  services.pipewire = {
    config.pipewire = {
      "context.modules" = [{
        name = "…";
        args = { };
      }] ++ defaultContextModules;
    };
  };
}
</syntaxHighlight>


==Bluetooth Configuration==
==Bluetooth Configuration==