{
  config,
  lib,
  pkgs,
  ...
}:
with lib; let
  cfg = config.modules.usrEnv.programs.media.ncmpcpp;
  inherit (config.modules.other.system) username;
  inherit (config.modules.usrEnv.services.media.mpd) musicDirectory;
in {
  config = mkIf cfg.enable {
    home-manager.users.${username} = {
      programs.ncmpcpp = {
        enable = true;
        package = pkgs.ncmpcpp.override {visualizerSupport = true;};
        mpdMusicDir = "${musicDirectory}";

        bindings = [
          {
            key = "j";
            command = "scroll_down";
          }
          {
            key = "k";
            command = "scroll_up";
          }
          {
            key = "J";
            command = ["select_item" "scroll_down"];
          }
          {
            key = "K";
            command = ["select_item" "scroll_up"];
          }
        ];
        settings = {
          # Miscelaneous
          ignore_leading_the = true;
          external_editor = "nvim";
          message_delay_time = 1;
          playlist_disable_highlight_delay = 2;
          autocenter_mode = "yes";
          centered_cursor = "yes";
          allow_for_physical_item_deletion = "no";
          lines_scrolled = "0";
          follow_now_playing_lyrics = "yes";
          # lyrics_fetchers = "musixmatch";
          connected_message_on_startup = "no";
          mouse_support = "yes";

          # visualizer
          visualizer_data_source = "/tmp/mpd.fifo";
          visualizer_output_name = "mpd_visualizer";
          visualizer_type = "ellipse";
          visualizer_look = "●● ";
          visualizer_color = "blue, green";

          # appearance
          colors_enabled = "yes";
          browser_playlist_prefix = "$2 ♥ $5 ";
          playlist_display_mode = "classic";
          user_interface = "classic";
          volume_color = "white";

          # window
          song_window_title_format = "Music";
          statusbar_visibility = "no";
          header_visibility = "no";
          titles_visibility = "no";

          # progress bar
          progressbar_look = "━━━";
          progressbar_color = "black";
          progressbar_elapsed_color = "blue";

          # song list
          song_status_format = "$7%t";
          song_list_format = "$(008)%t$R  $(247)%a$R$5  %l$8";
          song_columns_list_format = "(53)[blue]{tr} (45)[blue]{a}";

          current_item_prefix = "$b$2| ";
          current_item_suffix = "$/b$5";

          now_playing_prefix = "$b$5| ";
          now_playing_suffix = "$/b$5";

          song_library_format = "{{%a - %t} (%b)}|{%f}";

          # colors
          main_window_color = "blue";

          current_item_inactive_column_prefix = "$b$5";
          current_item_inactive_column_suffix = "$/b$5";

          color1 = "white";
          color2 = "blue";
          /*
          alternative_header_first_line_format = "$5{$b%t$/b}$9";
          alternative_header_second_line_format = "$3by $7{$b%a$/b}$9 $3from $7{$b%b$/b}$9 $5{(%y)}";
          song_list_format = "♫   $2%n$(end) $9 $3%a$(end) $(245)-$9 $(246)%t$9 $R{ $5%y$9}$(end)     $(246)%lq$(end)";
          song_columns_list_format = "(3f)[red]{n} (3f)[246]{} (35)[white]{t} (18)[blue]{a} (30)[green]{b} (5f)[yellow]{d} (5f)[red]{y} (7f)[magenta]{l}";
          song_status_format = "$b $8%A $8•$3• $3%t $3•$5• $5%b $5•$2• $2%y $2•$8• %g";
          playlist_display_mode = "columns";
          browser_display_mode = "columns";
          search_engine_display_mode = "columns";
          now_playing_prefix = "$b";
          now_playing_suffix = "$/b";
          browser_playlist_prefix = "$2 ♥ $5 ";
          playlist_disable_highlight_delay = "1";
          message_delay_time = "1";
          progressbar_look = "━━━";
          colors_enabled = "yes";
          empty_tag_color = "red";
          statusbar_color = "blue";
          state_line_color = "black";
          state_flags_color = "default";
          main_window_color = "blue";
          header_window_color = "white";
          alternative_ui_separator_color = "black";
          window_border_color = "green";
          active_window_border = "red";
          volume_color = "default";
          progressbar_color = "black";
          progressbar_elapsed_color = "blue";
          statusbar_time_color = "blue";
          player_state_color = "default";
          display_bitrate = "yes";
          autocenter_mode = "yes";
          centered_cursor = "yes";
          titles_visibility = "no";
          enable_window_title = "yes";
          statusbar_visibility = "yes";
          empty_tag_marker = "";
          mouse_support = "yes";
          header_visibility = "no";
          display_remaining_time = "no";
          ask_before_clearing_playlists = "yes";
          discard_colors_if_item_is_selected = "yes";
          user_interface = "alternative";
          default_find_mode = "wrapped";
          lyrics_directory = "~/.lyrics";
          follow_now_playing_lyrics = "yes";
          store_lyrics_in_song_dir = "no";
          ignore_leading_the = "yes";
          lines_scrolled = "1";
          mouse_list_scroll_whole_page = "no";
          show_hidden_files_in_local_browser = "no";
          startup_screen = "playlist";
          connected_message_on_startup = "no";
          playlist_separate_albums = "no";
          allow_for_physical_item_deletion = "no";
          visualizer_in_stereo = "yes";
          visualizer_data_source = "/tmp/mpd.fifo";
          visualizer_type = "wave_filled";
          visualizer_look = "▉▋";
          */
        };
      };
    };
  };
}
