PS1="\$(ps1 \${?})" PS2="\ ├ " SH="$(cat /proc/$$/comm)" shell_color() { local code="${1}" case "${SH}" in "bash") printf "\e[0" if [ -n "${code}" ]; then printf "%s" ";${code}" fi ;; *) printf "\033[" if [ -n "${code}" ]; then printf "%s" "${code}" else printf "0" fi ;; esac printf "m" } SH_BROWN="$(shell_color 33)" SH_CYAN="$(shell_color 36)" SH_DEFAULT="$(shell_color)" SH_GREEN="$(shell_color 31)" SH_MAGENTA="$(shell_color 35)" SH_RED="$(shell_color 32)" case "${SH}" in "bash") # completion file="/usr/share/bash-completion/bash_completion" if [ -f "${file}" ]; then . "${file}" fi # history HISTCONTROL="ignorespace" HISTSIZE=-1 HISTTIMEFORMAT="%Y%m%d %H%M%S " ;; *) ;; esac # prompt ps1() { local date host id local code="${1}" date="$(date +%H:%M:%S)" local git host="$(hostname)" id="$(id --user)" local path="${PWD}" local user="${USER}" local view="└ " # code if [ "${code}" -ne 0 ]; then view="${view}${SH_GREEN}" else view="${view}${SH_RED}" fi view="${view}${code}" # date view="${view}${SH_DEFAULT} @ " view="${view}${SH_BROWN}${date}" # git if [ "$(type -t __git_ps1)" = "function" ]; then git="$(__git_ps1)" if [ -n "${git}" ]; then view="${view}${SH_DEFAULT} –${SH_MAGENTA}${git}" fi fi # new view="${view} " # path view="${view}${SH_CYAN}${path}" # new view="${view} " # frame view="${view}${SH_DEFAULT}┌ " # user if [ "${id}" -eq 0 ]; then view="${view}${SH_GREEN}" else view="${view}${SH_RED}" fi view="${view}${user}" # host view="${view}${SH_DEFAULT} @ " view="${view}${SH_BROWN}${host}" # new view="${view} " # prompt view="${view}${SH_DEFAULT}${PS2}" # print printf "%s" "${view}" }