From 6ee3e22b461caca83ee6e23260b37f54da4133b9 Mon Sep 17 00:00:00 2001 From: TKE Date: Mon, 14 Nov 2022 13:50:29 +0100 Subject: [PATCH] Reworked BASH-Prompt --- config/bash_aliases | 5 +++- config/bash_prompt | 72 +++++++++++++++++++++++++++++++++++++++++++++ 2 files changed, 76 insertions(+), 1 deletion(-) create mode 100644 config/bash_prompt diff --git a/config/bash_aliases b/config/bash_aliases index 3f78929..0fb94b9 100644 --- a/config/bash_aliases +++ b/config/bash_aliases @@ -1,8 +1,11 @@ -PS1='\[\033[44;37m\]'$(printf '_%.0s' $(seq 1 $(tput cols)))'\[\033[1;0m\]\r\n\t \w :\n\$ ' +PS1='\[\033]0;\u - \w\007\]\[\033[44;37m\]'$(printf '_%.0s' $(seq 1 $(tput cols)))'\[\033[1;0m\]\r\n\t \w :\n\$ ' +[[ -f ~/.bash_prompt ]] && . ~/.bash_prompt alias mv="mv -vi" alias cp="cp -vi" alias '+'='pushd .' alias -- '-'='popd' +alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"' +alias pushalert='pushover --title "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"' [[ -f ~/.shell_aliases ]] && . ~/.shell_aliases [[ -f ~/.config/z.sh ]] && . ~/.config/z.sh [[ -f ~/.oh-my-zsh/plugins/z/z.sh ]] && . ~/.oh-my-zsh/plugins/z/z.sh && set $_Z_OWNER=$(whoami) diff --git a/config/bash_prompt b/config/bash_prompt new file mode 100644 index 0000000..6670e58 --- /dev/null +++ b/config/bash_prompt @@ -0,0 +1,72 @@ +bash_prompt_command() { + # How many characters of the $PWD should be kept + local pwdmaxlen=$(( ${COLUMNS} - 11 )) + # Indicate that there has been dir truncation + local trunc_symbol="…" + local dir=${PWD##*/} + pwdmaxlen=$(( ( pwdmaxlen < ${#dir} ) ? ${#dir} : pwdmaxlen )) + NEW_PWD=${PWD/#$HOME/\~} + NEW_BAR="$(printf ' %.0s' $(seq 1 $COLUMNS))" + local pwdoffset=$(( ${#NEW_PWD} - pwdmaxlen )) + if [ ${pwdoffset} -gt "0" ] + then + NEW_PWD=${NEW_PWD:$pwdoffset:$pwdmaxlen} + NEW_PWD=${trunc_symbol}/${NEW_PWD#*/} + fi +} + +bash_prompt() { + case $TERM in + xterm*|rxvt*) + local TITLEBAR='\[\033]0;\u:${NEW_PWD}\007\]' + ;; + *) + local TITLEBAR="" + ;; + esac + local NONE="\[\033[0m\]" # unsets color to term's fg color + + # regular colors + local K="\[\033[0;30m\]" # black + local R="\[\033[0;31m\]" # red + local G="\[\033[0;32m\]" # green + local Y="\[\033[0;33m\]" # yellow + local B="\[\033[0;34m\]" # blue + local M="\[\033[0;35m\]" # magenta + local C="\[\033[0;36m\]" # cyan + local W="\[\033[0;37m\]" # white + + # emphasized (bolded) colors + local EMK="\[\033[1;30m\]" + local EMR="\[\033[1;31m\]" + local EMG="\[\033[1;32m\]" + local EMY="\[\033[1;33m\]" + local EMB="\[\033[1;34m\]" + local EMM="\[\033[1;35m\]" + local EMC="\[\033[1;36m\]" + local EMW="\[\033[1;37m\]" + + # background colors + local BGK="\[\033[40m\]" + local BGR="\[\033[41m\]" + local BGG="\[\033[42m\]" + local BGY="\[\033[43m\]" + local BGB="\[\033[44m\]" + local BGM="\[\033[45m\]" + local BGC="\[\033[46m\]" + local BGW="\[\033[47m\]" + + local BAR_ON="\[\033[4;44;37m\]" + local BAR_OFF="\[\033[1;0m\]" + local UC=$W # user's color + [ $UID -eq "0" ] && UC=$R # root's color + + PS1="${TITLEBAR}${BAR_ON}\${NEW_BAR}${BAR_OFF}\r\n\t ${EMY}\${NEW_PWD}${EMK}]${UC}\n\\$ ${NONE}" + #PS1="${TITLEBAR}${BAR_ON}$(printf '_%.0s' $(seq 1 $(tput cols)))${BAR_OFF}\r\n ${NEW_PWD} :\n\$ " + #PS1='\[\033]0;\u - \w\007\]\[\033[44;37m\]'$(printf '_%.0s' $(seq 1 $(tput cols)))'\[\033[1;0m\]\r\n\t \w :\n\$ ' + # without colors: PS1="[\u@\h \${NEW_PWD}]\\$ " + # extra backslash in front of \$ to make bash colorize the prompt +} +PROMPT_COMMAND=bash_prompt_command +bash_prompt +unset bash_prompt