{ ... }:
{
  programs.fish.enable = true;

  # Disable greeting
  programs.fish.interactiveShellInit =
    "set -g fish_greeting";

  # Set colors
  programs.fish.shellInit = ''
    set -g fish_color_normal normal
    set -g fish_color_command brcyan
    set -g fish_color_keyword
    set -g fish_color_quote green
    set -g fish_color_redirection yellow
    set -g fish_color_end brmagenta
    set -g fish_color_error brred
    set -g fish_color_param blue
    set -g fish_color_comment white
    set -g fish_color_match --background=blue
    set -g fish_color_selection white --bold --background=brblack
    set -g fish_color_search_match bryellow --background=brblack
    set -g fish_color_history_current --bold
    set -g fish_color_operator magenta
    set -g fish_color_escape yellow
    set -g fish_color_cwd green
    set -g fish_color_cwd_root red
    set -g fish_color_option brblue
    set -g fish_color_valid_path --underline
    set -g fish_color_autosuggestion brblack
    set -g fish_color_user brgreen
    set -g fish_color_host normal
    set -g fish_color_host_remote yellow
    set -g fish_color_history_current --bold
    set -g fish_color_cancel --reverse
    set -g fish_pager_color_prefix normal --bold --underline
    set -g fish_pager_color_progress brwhite --background=cyan
    set -g fish_pager_color_completion normal
    set -g fish_pager_color_description yellow
    set -g fish_pager_color_selected_background --background=black
    set -g fish_pager_color_selected_completion
    set -g fish_pager_color_secondary_background
    set -g fish_pager_color_secondary_description
    set -g fish_pager_color_selected_prefix
    set -g fish_pager_color_secondary_prefix
    set -g fish_pager_color_selected_description
    set -g fish_pager_color_background
    set -g fish_pager_color_secondary_completion
  '';
}
