# Environment variables set -gx EDITOR nvim set -gx LANG en_US.UTF-8 set -gx SBT_OPTS '-Dsbt.supershell=false' if test -x /usr/libexec/java_home set -gx JAVA_HOME (/usr/libexec/java_home -v 1.8) end # FZF (https://github.com/junegunn/fzf) set -gx FZF_DEFAULT_OPTS "--no-height --layout=reverse --multi" set -gx FZF_DEFAULT_COMMAND "fd --type=file" set -gx FZF_CTRL_T_COMMAND "fd --type=file --follow" set -gx FZF_CTRL_T_OPTS "--ansi --preview 'bat --color=always {}'" set -gx FZF_CTRL_R_OPTS "--preview 'echo {}' --preview-window down:3:hidden:wrap --bind '?:toggle-preview'" set -gx FZF_ALT_C_COMMAND "fd --type=directory --follow" set -gx FZF_ALT_C_OPTS "--preview 'tree -CL 1 {}'" # Nix package manager if test -f ~/.nix-profile/etc/profile.d/nix.sh for line in (bash -c 'source $0; for name in "${!NIX_@}"; do printf "%s=%s\n" "$name" "${!name}"; done' ~/.nix-profile/etc/profile.d/nix.sh) set -gx (string split -m 1 = $line) end set PATH ~/.nix-profile/bin $PATH 2>/dev/null end # Fish package manager set -g fisher_path ~/.config/fish/fisher set fish_function_path $fish_function_path[1] $fisher_path/functions $fish_function_path[2..-1] set fish_complete_path $fish_complete_path[1] $fisher_path/completions $fish_complete_path[2..-1] if not functions -q fisher echo "Installing fish-shell package manager: $fisher_path/functions/fisher.fish" curl -fsSL -o $fisher_path/functions/fisher.fish --create-dirs https://git.io/fisher echo "Installing fish-shell packages..." fish -c fisher end for file in $fisher_path/conf.d/*.fish builtin source $file 2> /dev/null end if status --is-interactive # Disable the default shell greeting set fish_greeting # Disable the abbreviated directory format set fish_prompt_pwd_dir_length 0 # Abbreviations abbr -a -g d 'docker' abbr -a -g l 'less' abbr -a -g m 'micro' abbr -a -g v 'nvim' # Git abbreviations abbr -a -g g 'git' abbr -a -g ga 'git add' abbr -a -g gb 'git branchsort' abbr -a -g gbd 'git branch -D' abbr -a -g gc 'git commit' abbr -a -g gco 'git checkout' abbr -a -g gcp 'git cherry-pick' abbr -a -g gd 'git diff' abbr -a -g gdc 'git diff --cached' abbr -a -g gdh 'git diff --cached HEAD~' abbr -a -g gf 'git fetch --prune' abbr -a -g gl 'git log --oneline -10' abbr -a -g gr 'git restore' abbr -a -g gs 'git status' abbr -a -g gst 'git stash' abbr -a -g gsw 'git switch' # Git prompt set -g __fish_git_prompt_showdirtystate 1 set -g __fish_git_prompt_showstashstate 1 set -g __fish_git_prompt_showuntrackedfiles 1 set -g __fish_git_prompt_showupstream informative set -g __fish_git_prompt_char_upstream_ahead '↑' set -g __fish_git_prompt_char_upstream_behind '↓' set -g __fish_git_prompt_char_upstream_prefix ' ' set -g __fish_git_prompt_color_branch magenta set -g __fish_git_prompt_color_dirtystate cyan set -g __fish_git_prompt_color_invalidstate red set -g __fish_git_prompt_color_stagedstate cyan set -g __fish_git_prompt_color_stashstate cyan set -g __fish_git_prompt_color_untrackedfiles cyan set -g __fish_git_prompt_color_upstream yellow # Termcap colors for less and manpages set -x LESS_TERMCAP_mb (set_color brmagenta) set -x LESS_TERMCAP_md (set_color brred) set -x LESS_TERMCAP_me (set_color normal) set -x LESS_TERMCAP_se (set_color normal) set -x LESS_TERMCAP_so (set_color -b blue black) set -x LESS_TERMCAP_ue (set_color normal) set -x LESS_TERMCAP_us (set_color brgreen) end if not set -q __universals_initialized set -U __universals_initialized # Colors set -U fish_color_autosuggestion a5a5a9 set -U fish_color_cancel -r set -U fish_color_command green set -U fish_color_comment a5a5a9 set -U fish_color_cwd green set -U fish_color_cwd_root red set -U fish_color_end brblack set -U fish_color_error red set -U fish_color_escape yellow set -U fish_color_history_current --bold set -U fish_color_host normal set -U fish_color_host_remote yellow set -U fish_color_match --background=brblue set -U fish_color_normal normal set -U fish_color_operator blue set -U fish_color_param white set -U fish_color_quote yellow set -U fish_color_redirection cyan set -U fish_color_search_match bryellow --background=515151 set -U fish_color_selection white --bold --background=515151 set -U fish_color_status red set -U fish_color_user brgreen set -U fish_color_valid_path --underline set -U fish_pager_color_completion normal set -U fish_pager_color_description yellow --dim set -U fish_pager_color_prefix white --bold set -U fish_pager_color_progress black --background=cyan end