{
  lib,
  config,
  pkgs,
  ...
}:
let
  psCfg = config.pub-solar;
  xdg = config.home-manager.users."${psCfg.user.name}".xdg;
in {
  users.users."${psCfg.user.name}" = {
    extraGroups = ["audio"];
    packages = with pkgs; [
      # easyeffects, e.g. for microphone noise filtering
      easyeffects
      mu
      pavucontrol
      pa_applet
      playerctl
      # Needed for pactl cmd, until pw-cli is more mature (vol up/down hotkeys?)
      pulseaudio
      vimpc
    ];
  };

  home-manager.users."${psCfg.user.name}" = {
    xdg.configFile."vimpc/vimpcrc".source = ./.config/vimpc/vimpcrc;
    systemd.user.services.easyeffects = import ./easyeffects.service.nix pkgs;
  };

  # rtkit is optional but recommended
  security.rtkit.enable = true;

  services.pipewire = {
    enable = true;
    alsa.enable = true;
    alsa.support32Bit = true;
    pulse.enable = true;
    # https://gitlab.freedesktop.org/pipewire/pipewire/-/wikis/Config-PipeWire#setting-sample-rates
    extraConfig.pipewire = {
      "10-clock-rate" = {
        "context.properties" = {
          default = {
            "clock.rate" = 48000; # Pipewire default
            "clock.allowed-rates" = [ 44100 48000 ];
          };
        };
      };
    };
  };
}