{ pkgs, config, ... }:
{
  home.file."mus/music_data".source = config.lib.file.mkOutOfStoreSymlink /media/media/music/music_data;

  home.packages = [
    pkgs.ffmpeg
    pkgs.nsxiv
    pkgs.kunst
    pkgs.mpc-cli
    pkgs.jq
    pkgs.imagemagick
  ];

  services.mpd = {
    enable = true;
    package = pkgs.mpd;
    extraConfig = ''
      
        music_directory         "~/mus/music_data"
        playlist_directory      "~/.local/share/mpd/playlists"
        
        log_file                "~/.local/share/mpd/log"
        db_file                 "~/.local/share/mpd/database"
        pid_file                "~/.local/share/mpd/pid"
        state_file              "~/.local/share/mpd/state"
        sticker_file		"~/.local/share/mpd/sticker.sql"
        
        auto_update             "yes"
        
        audio_output {
                type            "pipewire"
                name            "PipeWire Sound Server"
        }
        
        audio_output {
               type            "fifo"
               name            "Visualizer feed"
               path            "/tmp/mpd.fifo"
               format          "44100:16:2"
        }
        
          '';
    musicDirectory = "~/mus/music_data";
  };

  programs.ncmpcpp = {
    enable = true;
    package = (pkgs.ncmpcpp.override { visualizerSupport = true; });
    mpdMusicDir = "~/mus/music_data";
    settings = {
      mpd_host = "127.0.0.1";
      mpd_port = "6600";
      visualizer_data_source = "/tmp/mpd.fifo";
      visualizer_output_name = "Visualizer Feed";
      visualizer_in_stereo = "yes";
      visualizer_type = "spectrum";
      visualizer_fps = "60";
      visualizer_autoscale = "no";
      visualizer_look = "●▮";
      visualizer_color = "169, 170, 169, 135, 134, 133, 129, 128, 127, 126, 125, 124";
      visualizer_spectrum_smooth_look = "yes";
      visualizer_spectrum_dft_size = "3";
    };
  };
}