From 8eb72374b1d48b432f55fbab6224542ce6275709 Mon Sep 17 00:00:00 2001 From: Mitch Riedstra Date: Wed, 7 Nov 2018 23:34:05 -0500 Subject: Update shell configuration to set the terminal titles --- mkshrc | 49 ++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 38 insertions(+), 11 deletions(-) diff --git a/mkshrc b/mkshrc index fbc81f0..6f1d3ed 100644 --- a/mkshrc +++ b/mkshrc @@ -31,12 +31,12 @@ precmd() { (( e )) && print -n "$e|" } set_ps1() { - PS1='$(precmd)${BG}${ACCENT_C}${ACCENT_P}${USER_C}${USER:=$(id -un)}@$(hostname)${ACCENT_C}${ACCENT_P} ${ACCENT_P}${PATH_C}${PWD:-?}${ACCENT_C}${ACCENT_P}${END_C} + PS1='$(set_my_title)$(precmd)${BG}${ACCENT_C}${ACCENT_P}${USER_C}${USER:=$(id -un)}@$(hostname)${ACCENT_C}${ACCENT_P} ${ACCENT_P}${PATH_C}${PWD:-?}${ACCENT_C}${ACCENT_P}${END_C} ${END_P} ' export PS1; } set_root_ps1() { -PS1='$(precmd)${BG}${ACCENT_C}${ACCENT_P}${HOST_C}$(hostname)${ACCENT_C}${ACCENT_P} ${ACCENT_P}${PATH_C}${PWD:-?}${ACCENT_C}${ACCENT_P}${END_C} +PS1='$(set_my_title)$(precmd)${BG}${ACCENT_C}${ACCENT_P}${HOST_C}$(hostname)${ACCENT_C}${ACCENT_P} ${ACCENT_P}${PATH_C}${PWD:-?}${ACCENT_C}${ACCENT_P}${END_C} ${END_P} ' export PS1; } @@ -90,25 +90,26 @@ set_prompt() { fi } set_basic_prompt() { - PS1='$(precmd)'"${USER:=$(id -un)}@$(hostname) \$PWD $ " + PS1='$(set_my_title)$(precmd)'"${USER:=$(id -un)}@$(hostname) \$PWD $ " export PS1; } set_retro_prompt() { - export PS1="\$ " + export PS1="$(set_my_title)\$ " if [ `id -u` -eq 0 ] ; then - export PS1="# " + export PS1="$(set_my_title)# " fi } set_super_basic_prompt() { alias cd=do_cd } do_cd() { - builtin cd $@ - pwd=${PWD##HOME} - [ ${#pwd} -lt ${#PWD} ] && pwd="~$pwd" - [ "$hostname" ] || hostname=$(hostname) - PS1="$USER@$hostname:$pwd \$ " - [ $(id -u) -eq 0 ] && PS1="$USER@$hostname:$pwd # " + builtin cd $@ + set_my_title + pwd=${PWD##HOME} + [ ${#pwd} -lt ${#PWD} ] && pwd="~$pwd" + [ "$hostname" ] || hostname=$(hostname) + PS1="$USER@$hostname:$pwd \$ " + [ $(id -u) -eq 0 ] && PS1="$USER@$hostname:$pwd # " } # ZSH doesn't handle these functions all too well @@ -318,6 +319,32 @@ set_title() { printf $'\033]0;'"%s"$'\007' "$1" } +set_my_title() { + _load="Load Avg: $(_sys_load)" + _free_mem="M Free: $(_sys_memory)" + _uptime="Uptime: $(_sys_uptime)" + set_title "$(id -un)[$(hostname)] -- $_load $_free_mem $_uptime" +} + +_sys_memory() { + if [ `uname` = "Linux" ] ; then + vmstat | tail -n1 | awk '{print $4/1024}' | sed -e's/\..*$//g' + elif [ `uname` = "FreeBSD" ] ; then + vmstat | tail -n1 | awk '{print $5/1024}' | sed -e's/\..*$//g' + fi +} + +_sys_load() { + # Works on BSD too, neat. + uptime | sed -re's/^.*load averages?: ([0-9]+\.[0-9]+).*$/\1/g' +} + +_sys_uptime() { + # Took awhile to figure out, but this works on BSD as well + uptime | sed -re's/^.*up[ ]+//g' -e's/^([^,]*),.*/\1/g' -e's/^([^ ]+)[ ]*(.).*/\1\2/g' +} + + timestamp() { date +%m.%d.%y_%H.%M.%S } -- cgit v1.2.3