{ pkgs, lib, config, ... }:
{
  config = lib.mkIf config.frogeye.desktop.xorg {
    home = {
      packages = with pkgs; [
        ashuffle
        mpc-cli
        vimpc
      ];
      sessionVariables = {
        MPD_PORT = "${toString config.services.mpd.network.port}";
      };
    };
    services.mpd = {
      enable = true;
      network = {
        listenAddress = "0.0.0.0"; # Can be controlled remotely, determined with firewall
        startWhenNeeded = true;
      };
      extraConfig = ''
        restore_paused "yes"
      '';
    };
    xdg = {
      configFile = {
        "vimpc/vimpcrc" = {
          text = ''
            map FF :browse<C-M>gg/
            map à :set add next<C-M>a:set add end<C-M>
            map @ :set add next<C-M>a:set add end<C-M>:next<C-M>
            map ° D:browse<C-M>A:shuffle<C-M>:play<C-M>:playlist<C-M>
            set songformat {%a - %b: %t}|{%f}$E$R $H[$H%l$H]$H
            set libraryformat %n \| {%t}|{%f}$E$R $H[$H%l$H]$H
            set ignorecase
            set sort library
          '';
        };
      };
      userDirs.music = "${config.home.homeDirectory}/Musiques";
    };
    xsession.windowManager.i3.config.keybindings =
      {
        "XF86AudioPrev" = "exec ${pkgs.mpc-cli}/bin/mpc prev";
        "XF86AudioPlay" = "exec ${pkgs.mpc-cli}/bin/mpc toggle";
        "XF86AudioNext" = "exec ${pkgs.mpc-cli}/bin/mpc next";
      };
  };
}