if test (tty) = /dev/tty1; and test -z "$DISPLAY"; and test -z "$WAYLAND_DISPLAY" exec startx end if test "$KITTY_STR" = "1" if not set -q _FASTFETCH_RUN set -gx _FASTFETCH_RUN 1 fastfetch end end function postexec_test --on-event fish_postexec echo end set -g fish_prompt_pwd_dir_length 0 function fish_prompt set -l last_status $status set -l markers set -l user $USER set -l host (hostname) printf '\e[24m' if test -n "$IN_NIX_SHELL" if test "$IN_NIX_SHELL" = "shell" set -a markers "nix shell" else if test "$IN_NIX_SHELL" = "pure"; or test "$IN_NIX_SHELL" = "impure" set -a markers "nix develop" end end if test -n "$VIRTUAL_ENV" set -a markers "venv:"(basename "$VIRTUAL_ENV") end if test -n "$CONDA_DEFAULT_ENV" set -a markers "conda:"$CONDA_DEFAULT_ENV end if test -n "$BUN_INSTALL" set -a markers "bun" end if test $last_status -ne 0 set_color ff007c echo -n "[$last_status] " end set_color 7aa2f7 echo -n "$user" set_color white echo -n "@" set_color 9ece6a echo -n "$host " set -l pwd if git rev-parse --show-toplevel >/dev/null 2>&1 set -l root (git rev-parse --show-toplevel) set -l rel (string replace "$root/" "" "$PWD") set pwd (basename "$root") if test "$rel" = "$PWD" set pwd (basename "$root") else set pwd (basename "$root")"/"$rel end else set pwd (prompt_pwd) end set_color 89ddff echo -n $pwd set -l git_info (git status --porcelain=v2 --branch 2>/dev/null) if test $status -eq 0 set -l branch set -l ahead 0 set -l behind 0 set -l staged 0 set -l modified 0 set -l untracked 0 for line in $git_info switch $line case '# branch.head*' set branch (string split ' ' $line)[3] case '# branch.ab*' set -l parts (string split ' ' $line) set ahead (string sub -s 2 -- $parts[3]) set behind (string sub -s 2 -- $parts[4]) case '1*' '2*' set -l xy (string sub -s 3 -l 2 $line) if test (string sub -s 1 -l 1 $xy) != "." set staged (math $staged + 1) end if test (string sub -s 2 -l 1 $xy) != "." set modified (math $modified + 1) end case '?*' set untracked (math $untracked + 1) end end set_color bb9af7 echo -n " [$branch" test $ahead -gt 0; and echo -n " ↑$ahead" test $behind -gt 0; and echo -n " ↓$behind" test $staged -gt 0; and echo -n " +$staged" test $modified -gt 0; and echo -n " ~$modified" test $untracked -gt 0; and echo -n " ?$untracked" echo -n "]" end if test (count $markers) -gt 0 set_color ff9e64 echo -n " ("(string join " " $markers)")" end set_color white if test (count (jobs)) -gt 0 echo -n "  "(count (jobs)) end if set -q SSH_CONNECTION echo -n " on ssh" end echo if fish_is_root_user set_color ff007c echo -n "# " else set_color 73daca echo -n "λ " end set_color normal end