Prompt personalizado en OSX
- May
- 26
1 comentario! 162 palabras - 1 hits
Un bonito y flexible tema para la linea de comandos
Este fin de semana he estado entretenido dándole un toque de color a la consola de OSX, la verdad es que tal y como viene por defecto me resulta bastante.. “difícil de mirar”.
Como base he elegido el tema que siempre uso con linux flex, que resulta ideal cuando utilizas una consola con fondo negro.
Para poderlo utilizar en osx hay que modificarlo ligeramente, sacando algunas cosillas que no son necesarias, como el soporte para apm, y adaptando otras para que funcionen correctamente.
Como resulta un poco largo, dejare el código al final del post, para habilitarlo tan solo hay que copiarlo dentro del fichero .profile.
Un ultimo detalle a tener en cuenta es que tenemos que cambiar la codificacion de la tipografía utilizada por la consola, para hacerlo solo tenemos que elegir “Occidental (ISO latino1) dentro de las preferencias.
Despues de esto solo queda recargar el fichero profile source .profile para tenerlo todo funcionando.
Espero que os resulte util.
- ResetColours="$(tput sgr0)"
- Black="$(tput setaf 0)"
- BlackBG="$(tput setab 0)"
- DarkGrey="$(tput bold ; tput setaf 0)"
- LightGrey="$(tput setaf 7)"
- LightGreyBG="$(tput setab 7)"
- White="$(tput bold ; tput setaf 7)"
- Red="$(tput setaf 1)"
- RedBG="$(tput setab 1)"
- LightRed="$(tput bold ; tput setaf 1)"
- Green="$(tput setaf 2)"
- GreenBG="$(tput setab 2)"
- LightGreen="$(tput bold ; tput setaf 2)"
- Brown="$(tput setaf 3)"
- BrownBG="$(tput setab 3)"
- Yellow="$(tput bold ; tput setaf 3)"
- Blue="$(tput setaf 4)"
- BlueBG="$(tput setab 4)"
- BrightBlue="$(tput bold ; tput setaf 4)"
- Purple="$(tput setaf 5)"
- PurpleBG="$(tput setab 5)"
- Pink="$(tput bold ; tput setaf 5)"
- Cyan="$(tput setaf 6)"
- CyanBG="$(tput setab 6)"
- BrightCyan="$(tput bold ; tput setaf 6)"
- UC1="${BrightBlue}"
- UC2="${LightGrey}"
- UC3="${Yellow}"
- UC4="${White}"
- UC5="${BlueBG}"
- UNC="${BrightRed}"
- WC1="${LightGreen}"
- WC2="${Yellow}"
- WC3="${Red}"
- dateFMT='%H:%M'
- unset Black BlackBG DarkGrey LightGrey LightGreyBG White \
- Red RedBG LightRed Green GreenBG LightGreen \
- Brown BrownBG Yellow Blue BlueBG BrightBlue \
- Purple PurpleBG Pink Cyan CyanBG BrightCyan
- if [ "$(whoami)" != "root" ]
- then
- UNC="${UC2}"
- fi
- temp="$(tty)"
- cur_tty="${temp:5}"
- unset temp
- function ur1 {
- topRight="echo -n ${cur_tty} $(date +${dateFMT})"
- let prompt_x=$(($(tput cols)-$(${topRight} | wc -c)))
- tput sc
- tput cup 0 ${prompt_x}
- echo -n "${UC4}${UC5}"
- ${topRight}
- tput rc
- }
- function ur2 {
- local prompt_x="$(($(tput cols)-2))"
- local DC=""
- local load=`uptime | tr ' ' '\012' | tail -3 | head -1 | sed 's/,/./'`
- local load100=$(echo -e "scale=0 \n ${load}/0.01 \n quit \n" | bc)
- local output='\253\273'
- if [ $((load100)) -gt "250" ]
- then
- DC="${WC3}"
- output="${load}"
- prompt_x="$(($(tput cols)-$(echo -n "${output}" | wc -c)))"
- elif [ $((load100)) -gt "200" ]
- then
- DC="${WC3}"
- elif [ $((load100)) -gt "150" ]
- then
- DC="${WC2}"
- elif [ $((load100)) -gt "100" ]
- then
- DC="${WC1}"
- else
- output=" "
- fi
- tput sc
- tput cup 1 ${prompt_x}
- echo -en "${ResetColours}"
- echo -en "${DC}"
- printf "${output}"
- echo -en "${ResetColours}"
- tput rc
- }
- function doprompt {
- TITLEBAR="\[\033]1;\u@\h\007\033]2;\u@\h:${cur_tty}:\w\007\]"
- case $TERM in
- xterm*|rxvt*)
- echo -n "";;
- screen*)
- if [ "${Xyes}" -ne "0" ]
- then
- TITLEBAR=""
- fi;;
- *)
- TITLEBAR=""
- ;;
- esac
- PS1="${TITLEBAR}\
- \[${UC1}\][\[${UC2}\]\!\[${UC1}\]|\
- \[${UC2}\]\${PWD}\[${UC1}\]]\n\
- \[${UC1}\][\[${UNC}\]\
- \u\[${UC1}\]@\[${UC2}\]\h\[${UC1}\]]\
- \[\$(ur1)\]\[\$(ur2)\]\
- \[${UC3}\]\$\[${ResetColours}\] "
- PS2="\[${UC1}\]--\[${ResetColours}\] "
- }
- doprompt
1 comentario
# Escrito por Snail hace 2 años
cool.