{ config , pkgs , lib , ... }: with lib; let cfg = config.dadada.home.fish; in { options.dadada.home.fish = { enable = mkEnableOption "Enable fish config"; }; config = mkIf cfg.enable { programs.fish = { enable = true; plugins = with pkgs; [ { name = "fzf"; src = pkgs.fetchFromGitHub { owner = "jethrokuan"; repo = "fzf"; rev = "c3defd4a922e97120503b45e26efa775bc672b50"; sha256 = "1k5b0nva0mbqc9830qhbcwxsi8d9b2p4ws1fq0bw9nkf2ripyp4p"; }; } ]; 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 set -U fish_user_paths ~/bin $fish_user_paths #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 ]; }; }