#!/bin/bash # Customize the prompt # Indicate your preference order for prompt tools # The first one found available will be used MY_PROMPTS="starship powerline-go" for prompt in $MY_PROMPTS; do if (command -v "$prompt" &>/dev/null); then USE_PROMPT="$prompt" break fi done case "${USE_PROMPT}" in # https://starship.rs/ "starship") if (command -v starship &>/dev/null); then eval "$(starship init bash)" else echo "${USE_PROMPT} command not found" fi ;; # https://github.com/justjanne/powerline-go # -modules string # The list of modules to load, separated by ',' # (valid choices: aws, cwd, docker, dotenv, duration, exit, git, gitlite, hg, host, jobs, kube, load, newline, nix-shell, node, perlbrew, perms, root, shell-var, ssh, svn, termtitle, terraform-workspace, time, user, venv, vgo) # (default "nix-shell,venv,user,host,ssh,cwd,perms,git,hg,jobs,exit,root,vgo") # -modules-right string # The list of modules to load anchored to the right, for shells that support it, separated by ',' # (valid choices: aws, cwd, docker, dotenv, duration, exit, git, gitlite, hg, host, jobs, kube, load "powerline-go") if (command -v powerline-go &>/dev/null); then function _update_ps1() { PS1=$(powerline-go -jobs "$(jobs -p | wc -l)" -error $? -modules "ssh,host,wsl,user,cwd,direnv,venv,perms,git,jobs,exit,root" -modules-right "docker,docker-context,kube,terraform-workspace,termtitle" -newline) } if [ "$TERM" != "linux" ]; then _prompt_command_add "_update_ps1"; fi else echo "${USE_PROMPT} command not found" fi ;; *) # Default simple prompt │ PROMPT_DIRTRIM=3 # Limit the path to 3 levels if [ "$UID" -eq 0 ]; then export PS1='\[\e[01;31m\]\u@\h\[\e[01;34m\] \w \$\[\e[0m\] ' else export PS1='\[\e[01;32m\]\u@\h\[\e[01;34m\] \w \$\[\e[0m\] ' fi ;; esac # Add a smiley at end of prompt showing last command status code #smiley() { # ret_val=$? # if [ "$ret_val" = "0" ] # then # echo -e "\e[01;32m:)\e[0m" # else # echo -e "\e[01;31m:(\e[0m" # fi #} #export PS1='\[\e[01;32m\]\u@\h\[\e[01;34m\] \w \$\[\e[0m\] '"\$(smiley) "