function fish_prompt switch "$fish_key_bindings" case fish_hybrid_key_bindings fish_vi_key_bindings set STARSHIP_KEYMAP "$fish_bind_mode" case '*' set STARSHIP_KEYMAP insert end set STARSHIP_CMD_PIPESTATUS $pipestatus set STARSHIP_CMD_STATUS $status # Account for changes in variable name between v2.7 and v3.0 set STARSHIP_DURATION "$CMD_DURATION$cmd_duration" set STARSHIP_JOBS (count (jobs -p)) ::STARSHIP:: prompt --terminal-width="$COLUMNS" --status=$STARSHIP_CMD_STATUS --pipestatus="$STARSHIP_CMD_PIPESTATUS" --keymap=$STARSHIP_KEYMAP --cmd-duration=$STARSHIP_DURATION --jobs=$STARSHIP_JOBS end function fish_right_prompt switch "$fish_key_bindings" case fish_hybrid_key_bindings fish_vi_key_bindings set STARSHIP_KEYMAP "$fish_bind_mode" case '*' set STARSHIP_KEYMAP insert end set STARSHIP_CMD_PIPESTATUS $pipestatus set STARSHIP_CMD_STATUS $status # Account for changes in variable name between v2.7 and v3.0 set STARSHIP_DURATION "$CMD_DURATION$cmd_duration" set STARSHIP_JOBS (count (jobs -p)) ::STARSHIP:: prompt --right --terminal-width="$COLUMNS" --status=$STARSHIP_CMD_STATUS --pipestatus="$STARSHIP_CMD_PIPESTATUS" --keymap=$STARSHIP_KEYMAP --cmd-duration=$STARSHIP_DURATION --jobs=$STARSHIP_JOBS end # Disable virtualenv prompt, it breaks starship set -g VIRTUAL_ENV_DISABLE_PROMPT 1 # Remove default mode prompt builtin functions -e fish_mode_prompt set -gx STARSHIP_SHELL "fish" # Set up the session key that will be used to store logs # We don't use `random [min] [max]` because it is unavailable in older versions of fish shell set -gx STARSHIP_SESSION_KEY (string sub -s1 -l16 (random)(random)(random)(random)(random)0000000000000000)