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.

  1.  
  2.  
  3.     ResetColours="$(tput sgr0)"
  4.     Black="$(tput setaf 0)"
  5.     BlackBG="$(tput setab 0)"
  6.     DarkGrey="$(tput bold ; tput setaf 0)"
  7.     LightGrey="$(tput setaf 7)"
  8.     LightGreyBG="$(tput setab 7)"
  9.     White="$(tput bold ; tput setaf 7)"
  10.    
  11.     Red="$(tput setaf 1)"
  12.     RedBG="$(tput setab 1)"
  13.     LightRed="$(tput bold ; tput setaf 1)"
  14.     Green="$(tput setaf 2)"
  15.     GreenBG="$(tput setab 2)"
  16.     LightGreen="$(tput bold ; tput setaf 2)"
  17.     Brown="$(tput setaf 3)"
  18.     BrownBG="$(tput setab 3)"
  19.     Yellow="$(tput bold ; tput setaf 3)"
  20.     Blue="$(tput setaf 4)"
  21.     BlueBG="$(tput setab 4)"
  22.     BrightBlue="$(tput bold ; tput setaf 4)"
  23.     Purple="$(tput setaf 5)"
  24.     PurpleBG="$(tput setab 5)"
  25.     Pink="$(tput bold ; tput setaf 5)"
  26.     Cyan="$(tput setaf 6)"
  27.     CyanBG="$(tput setab 6)"
  28.     BrightCyan="$(tput bold ; tput setaf 6)"
  29.    
  30.     UC1="${BrightBlue}"
  31.     UC2="${LightGrey}"
  32.     UC3="${Yellow}"
  33.     UC4="${White}"
  34.     UC5="${BlueBG}"
  35.     UNC="${BrightRed}"
  36.    
  37.     WC1="${LightGreen}"
  38.     WC2="${Yellow}"
  39.     WC3="${Red}"
  40.    
  41.     dateFMT='%H:%M'
  42.    
  43.     unset Black BlackBG DarkGrey LightGrey LightGreyBG White \
  44.       Red RedBG LightRed Green GreenBG LightGreen \
  45.                 Brown BrownBG Yellow Blue BlueBG BrightBlue \
  46.                 Purple PurpleBG Pink Cyan CyanBG BrightCyan
  47.  
  48.     if [ "$(whoami)" != "root" ]
  49.     then
  50.         UNC="${UC2}"
  51.     fi
  52.    
  53.     temp="$(tty)"
  54.     cur_tty="${temp:5}"
  55.     unset temp
  56.    
  57.     function ur1 {
  58.         topRight="echo -n ${cur_tty} $(date +${dateFMT})"
  59.         let prompt_x=$(($(tput cols)-$(${topRight} | wc -c)))
  60.         tput sc
  61.         tput cup 0 ${prompt_x}
  62.         echo -n "${UC4}${UC5}"
  63.         ${topRight}
  64.         tput rc
  65.     }
  66.    
  67.     function ur2 {
  68.         local prompt_x="$(($(tput cols)-2))"
  69.         local DC=""
  70.         local load=`uptime | tr ' ' '\012' | tail -3 | head -1 | sed 's/,/./'`
  71.         local load100=$(echo -e "scale=0 \n ${load}/0.01 \n quit \n" | bc)
  72.         local output='\253\273'
  73.         if [ $((load100)) -gt "250" ]
  74.         then
  75.             DC="${WC3}"
  76.             output="${load}"
  77.             prompt_x="$(($(tput cols)-$(echo -n "${output}" | wc -c)))"
  78.         elif [ $((load100)) -gt "200" ]
  79.         then
  80.             DC="${WC3}"
  81.         elif [ $((load100)) -gt "150" ]
  82.         then
  83.             DC="${WC2}"
  84.         elif [ $((load100)) -gt "100" ]
  85.         then
  86.             DC="${WC1}"
  87.         else
  88.             output="  "
  89.         fi
  90.         tput sc
  91.         tput cup 1 ${prompt_x}
  92.         echo -en "${ResetColours}"
  93.         echo -en "${DC}"
  94.         printf "${output}"
  95.         echo -en "${ResetColours}"
  96.         tput rc
  97.     }
  98.    
  99.     function doprompt {
  100.         TITLEBAR="\[\033]1;\u@\h\007\033]2;\u@\h:${cur_tty}:\w\007\]"
  101.         case $TERM in
  102.             xterm*|rxvt*)
  103.                 echo -n "";;
  104.             screen*)
  105.                 if [ "${Xyes}" -ne "0" ]
  106.                 then
  107.                     TITLEBAR=""
  108.                 fi;;
  109.             *)
  110.                     TITLEBAR=""
  111.                 ;;
  112.         esac
  113.    
  114.     PS1="${TITLEBAR}\
  115.    \[${UC1}\][\[${UC2}\]\!\[${UC1}\]|\
  116.    \[${UC2}\]\${PWD}\[${UC1}\]]\n\
  117.    \[${UC1}\][\[${UNC}\]\
  118.    \u\[${UC1}\]@\[${UC2}\]\h\[${UC1}\]]\
  119.    \[\$(ur1)\]\[\$(ur2)\]\
  120.    \[${UC3}\]\$\[${ResetColours}\] "
  121.    
  122.     PS2="\[${UC1}\]--\[${ResetColours}\] "
  123.     }
  124.    
  125.     doprompt
  126.  
  127.  

1 comentario

  • Jul
  • 22

# Escrito por Snail hace 2 años

cool.


Escribe tu comentario

Puedes utilizar este formulario para escribir tu opinion sobre esta entrada, no existe ningun tipo de limitacion a la hora de enviar opiniones, tan solo sigue unas reglas basicas de cortesia y todos estaremos mas contentos.

Puedes identificarte utilizando OpenID, solo tienes que introducir tu URL OpenID en el siguiente campo y pulsar el boton de validar.





Instrucciones para los comentarios

El simbolo * indica que se trata de un campo obligatorio.

Este sitio usa Markdown junto con Smartypants para educar los textos, tambien esta disponible para los comentarios.

A continuación os muestro algunas de las equivalencias:

  • [enlace de ejemplo](http://example.com/) resulta enlace de ejemplo.
  • **Texto en Negrita**
  • _Italica_
  • > blockquote
  • > > nested blockquote
  • * Esto es un elemento de una lista desordenada (ul)
  • 1. Esto es un elemento de una lista ordenada (ol)

MC Puedes seguir las respuestas a tus comentarios con MyComments.