| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101 |
- { pkgs, ... }: {
- programs.fish = {
- enable = true;
- interactiveShellInit = ''
- set -g fish_greeting ""
- direnv hook fish | source
- '';
- functions = {
- current_git_branch = ''
- git symbolic-ref --quiet --short HEAD 2>/dev/null | read -l branch
- and printf '(%s)' $branch
- '';
- shlvl_prompt = ''
- if test "$SHLVL" -gt 1
- printf '(%d)' "$SHLVL"
- end
- '';
- jclone = ''
- git clone https://github.com/johron/$argv[1]
- '';
- nix-update = ''
- set -l orig_cwd (pwd)
- cd ~/nix-dots || return
- nix flake update
- or begin
- cd $orig_cwd
- return 1
- end
- nh os switch
- or begin
- cd $orig_cwd
- return 1
- end
- flatpak update -y
- cd $orig_cwd
- '';
- fish_prompt = ''
- set -g fish_prompt_pwd_dir_length 0
-
- set -l primary_color "brblue"
- set -l pwd_color "blue"
- switch (prompt_hostname)
- case 'nixstation'
- set primary_color "brblue"
- set pwd_color "blue"
- case 'ideapad'
- set primary_color "cyan"
- set pwd_color "brcyan"
- case 'moholt'
- set primary_color "yellow"
- set pwd_color "bryellow"
- case '*'
- set primary_color "red"
- set pwd_color "brred"
- end
- set_color normal
- shlvl_prompt
- set_color normal
- printf "("
- set_color --bold $primary_color
- printf "%s" $USER
- set_color normal
- printf "@"
- set_color --bold $primary_color
- printf "%s" (prompt_hostname)
- set_color normal
- printf ":"
- set_color --bold $pwd_color
- printf "%s" (prompt_pwd)
- set_color normal
- printf ")"
- set_color --bold brgreen
- current_git_branch
- set_color normal
- printf '$ '
- '';
- };
- };
- }
|