about summary refs log blame commit diff stats
path: root/modules/home/conf/mpd/default.nix
blob: b30f69954692fd333bd1b73aed050709f935d28a (plain) (tree)
1
2
3
4
5
6
7
8
9

         
      
           
      
                                         
                                             
                                                                                     
    


                                                                                            
                                                                 
                                                                                             
     
 
                  
                  
                                      
                                                              

                                             
 
                    
                                                                                                
                                               
 


                       


                            








                                                        
{
  config,
  pkgs,
  lib,
  osConfig,
  ...
}: let
  dataDir = "${config.xdg.dataHome}/mpd";
  playlistDirectory = "${dataDir}/playlists";
  runtimeDir = "/run/user/${builtins.toString osConfig.users.users.soispha.uid}/mpd";
in {
  home.sessionVariables = {
    MPD_HOST = "/run/user/${builtins.toString osConfig.users.users.soispha.uid}/mpd/socket";
  };

  systemd.user.services.mpd.Service.ExecStartPre = lib.mkForce ''
    ${pkgs.coreutils}/bin/mkdir --parents "${dataDir}" "${playlistDirectory}" "${runtimeDir}"
  '';

  services.mpd = {
    enable = true;
    inherit dataDir playlistDirectory;
    musicDirectory = config.programs.beets.settings.directory;
    network = {
      listenAddress = "${runtimeDir}/socket";
    };

    extraConfig = ''
      metadata_to_use "artist,album,title,track,name,genre,date,composer,performer,disc,comment"
      # Updated by the beets `mpdupdate` plugin
      auto_update "no"

      audio_output {
        type "pipewire"
        name "pipewire"
      }

      replaygain "track"
      replaygain_limit "yes"

      #database {
      #       plugin "simple"
      #       path "~/.local/share/mpd/db
      #       cache_directory "~/.local/share/mpd/cache"
      #}

      filesystem_charset		"UTF-8"
    '';
  };
}