{ config, pkgs, ... }:
{
  programs.fish = {
    enable = true;
  #  plugins = [
  #    {
  #      name = "fzf";
  #      src = pkgs.fetchFromGithub {
  #        owner = "jethrokuan";
  #        repo = "fzf";
  #        rev = "7f4c0b6d9545126a1bdf30279e6b1ab6ffedc299";
  #        sha256 = "0c5i7sdrsp0q3vbziqzdyqn4fmp235ax4mn4zslrswvn8g3fvdyh";
  #      };
  #    }
  #  ];
    interactiveShellInit = ''
      # fish git prompt
      set __fish_git_prompt_show_informative_status 'yes'
      set __fish_git_prompt_showdirtystate 'yes'
      set __fish_git_prompt_showstashstate 'yes'
      set __fish_git_prompt_showuntrackedfiles 'yes'
      set __fish_git_prompt_showupstream 'yes'
      set __fish_git_prompt_showcolorhints 'yes'

      set fish_greeting

      # disable path shortening
      set fish_prompt_pwd_dir_length 0

      set -U FZF_LEGACY_KEYBINDINGS 0
      #set -x TERM xterm-256color

      if status is-interactive
      and not status is-login
      and not set -q TMUX
      and string match -qr "^xterm-.*" "$TERM"
        exec tmux
      end
    '';
    promptInit = ''
      function fish_prompt
	set last_status $status
	printf '%s %s:%s ' \
	(set_color red
		echo $last_status) \
	(set_color green
		hostname) \
	(set_color blue
		prompt_pwd)
	set_color normal
      end

      function fish_right_prompt
	printf '%s' (__fish_git_prompt)
      end
      '';
    shellAliases = {
      gst = "git status";
      gco = "git commit";
      glo = "git log";
      gad = "git add";
      ls = "exa";
      ll = "exa -l";
      la = "exa -la";
      mv = "mv -i";
      cp = "cp -i";
    };
  };

  home.packages = [ pkgs.exa ];

}