Original article: How to Jazz Up Your Bash Terminal — A Step By Step Guide With Pictures

En este blog iré en pasos para agregar Temas, Powerline, fuentes, y powerline-gitstatus para hacer que tu terminal de Bash luzca bello y útil como se muestra en la imagen de arriba.

Resulta que, si estás usando Mac, tendrás que pasar por muchos obstáculos para hacer que esto funcione, ya que muchas instrucciones son para linux, o están anticuados. Así que pensé en hacer un blog sobre esto - espero que te ayude.

Notas:

1. Sigue los pasos cuidadosamente ya que cualquier error causará un montón de dolores de cabeza.

2. Esto es para MacOS y para el bash regular en la Terminal.app. No estoy usando ZSH o Hyper en este blog — Planeo escribir diferentes blogs para ellos.

3. Mis Versiones: Mac High Sierra; versión de git 2.14.3 (Apple Git-98); Python 2.7.10

Bien, por defecto, cuando tienes un Mac nuevo, tu terminal lucirá como la imagen de abajo. Avancemos y agreguemos temas, fuentes, y así sucesivamente.

1*A2RjRAGXHeUQtIIy5XIBwQ

Tabla de Contenidos

Paso 1 - Agregar un nuevo tema

El primero paso obvio es mejorar el Tema. La terminal no provee todos los temas geniales y elegantes que ves que otros desarrolladores usan. Descarguemos un Tema y agreguémoslo a la Terminal.

En este blog, agregaré el tema Solarized-Dark a nuestra terminal.

este repo de git *.terminal  right-click on the *.terminal file > “open with" > Te
  1. Ve a http://ethanschoonover.com/solarized
  2. Desliza hacia abajo y descarga el Tema (solarized.zip)
  3. Extrae el archivo solarized.zip
  4. Abre la carpeta osx-terminal.app-colors-solarized. Esta carpeta contiene el Tema para la terminal.
  5. Doble clic sobre el archivo “Solarized Dark ansi.terminal”Este es el tema específico para la terminal.app.

Nota: si te llega una advertencia que esto es de un desarrollador sin identificar, haz clic derecho sobre el archivo y selecciona "Abrir con" > Terminal option.

  1. En este punto, tienes el tema instalado en tu terminal. Solo necesitamos hacerlo como un tema por defecto.
  2. Abrir Terminal > Preferences > Text y selecciona el tema “Solarized Dark …” theme y haz clic en “Default”.
1*0hPqERUbwhdAXVQfdQih1A

De ahora en adelante, tu Terminal debería lucir como abajo.

1*hvkwX_GZIXHQxuYY2987GQ

Paso 2 - Instalar Powerline

Powerline es una aplicación de Python y un complemento de línea de estado para vim, y provee líneas de estado y mensajes para varias otras aplicaciones, incluyendo zsh, bash, tmux, IPython, Awesome y Qtile.

Hace que la Terminal luzca como abajo.

1*7SLVI9-_IBwEcmZpGaDvmw

2.1 Instalar Python

Porque Powerline es una aplicación de Python, necesitamos tener Python y eso también una versión apropiada de Python.

  • MacOS ya viene con Python instalado. Asegúrate que la versión de Python sea 2.7.x escribiendo python -V en la Terminal
  • Si no es 2.7, instala Homebrew que nos permite instalar varios software desde el CLI, ejecutando: /usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
  • Ejecuta brew install python para instalar la última versión de Python a través de Homebrew

2.2 Instala pip — Un Gestionador de paquetes para Python (similar a npm)

Instala pip ejecutando el siguiente comando:

$ sudo easy_install pip

2.3 Instala las herramientas de XCode Developer CLI

Las herramientas de XCode Developer CLI son utilizados por Powerline y otras aplicaciones que manipulan las características principales de OSX. Así que asegúrate de instalar las herramientas de XCode CLI ejecutando el siguiente comando.

$ xcode-select —-install

xcode-select -r

2.4 Instala Powerline

Finalmente, instala el Powerline (versión estable) por medio de pip ejecutando el siguiente comando:

$ pip install --user powerline-status

Si quieres instalar la última rama de desarrollo, usa:

$ pip install --user git+git://github.com/powerline/powerline  //dev

2.5 Agregar el daemon de Powerline a bash

Ahora necesitamos agregar el daemon de Powerline a bash así puede monitorear los mensajes de la Terminal y hacer cambios.

2.5.1 Copiar la ubicación de la instalación de Powerline

Puedes configurar la ubicación de Powerline ejecutando lo siguiente: pip show powerline-status Copia el valor del campo Location.

1*1Hi5bB475XFf-Iu43tAFvA

2.5.2 Agregar el daemon con una ubicación apropiada a .bash_profile

  1. Asegúrate de tener un archivo .bash_profile en tu carpeta raíz. Si no lo tienes crea uno haciendo: cd ~ && touch ~/.bash_profile

2. Abre .bash_profile y agrega lo siguiente:

export PATH=$PATH:$HOME/Library/Python/2.7/bin
powerline-daemon -q
POWERLINE_BASH_CONTINUATION=1
POWERLINE_BASH_SELECT=1
. /Users/rupa/Library/Python/2.7/lib/python/site-packages/powerline/bindings/bash/powerline.sh
1*QY-1dEQtAn6SUOpgOTQcsg
Algunos detalles sobre bash_profile
Nota: La ubicación /Users/rupa/Library/Python/2.7/lib/python/site-packages/ es del paso anterior (2.5.1). Cambiálo para coincidir la ubicación de tu computadora.

2.5.3. Reinicia la Terminal

Sal completamente de la Terminal si está abierto (Terminal > Quit Terminal). Y ábrelo de nuevo.

$ source ~/.bash_profile  powerline-config

2.5.4 Tu nueva Terminal

Tu nueva Terminal debería lucir como el de abajo. Debería estar usando el tema "Solarized Dark ansi" y debería mostrar Powerline en la línea de comando. Pero nota también que hay caracteres "?"! Esto es debido a que Powerline usa varios íconos y fuentes que no están disponibles por defecto. Así que necesitamos instalar las fuentes.

1*fVqgdIqo7AIw7EJdcHZZxw

Paso 3 - Instalar las fuentes de Powerline

Para instalar las fuentes de Powerline, simplemente ve a https://github.com/powerline/fonts. Allí verás un montón de carpetas. Cada una es una fuente, alias "Fuentes parcheadas".

Se llaman “Fuentes parcheadas” porque las personas han tomado fuentes regulares y le han agregado/parcheado íconos y fuentes específicos de Powerline adicionales.
1*sYBQZYzxe37bkmtBUw_Oww

3.1 Descargar el repo completo y extráelo

  • Haz clic en el botón “Clone or download” y descarga el repo completo, así intentas varias fuentes.
  • Extrae el archivo fonts-master.zip

3.2 Instalar algunas fuentes

Abramos la carpeta de fuentes Meslo dotted. Lucirá como el de abajo. Verás un montón de archivos .ttf. Cada uno de ellos es una fuente, pero algunos son versiones "negritas" de la fuente, algunas son versiones "regular" y así sucesivamente.

Simplemente, haz doble clic en el archivo .ttf y presionar "Install font" para instalar la fuente en tu computadora.

Para nuestro caso, vamos a instalar "“Meslo LG L DZ Regular for Powerline.ttf” y “Meslo LG L DZ Italic for Powerline.ttf”. Esto agregará una versión regular y una versión Italic de la fuente Meslo.

1*zmoF1ksmDJfRH0lGK00GKg

3.3 Selecciona la fuente en el Tema de la Terminal

¿Recuerdas que agregamos el tema "Solarized Dark" en el Paso 1? Eso no tenía ninguna fuente y MacOS tenía algunas fuentes por defecto. Todo lo que necesitamos hacer es configurar nuestra fuente Meslo dotted para este tema y ¡ya estamos listo!

  1. Abre Terminal > Preferences > Text
  2. Selecciona el Tema Solarized Dark ansi
  3. Haz clic en el botón “Font” — Esto abre el diálogo “Fonts”
  4. En el diálogo “Fonts”, selecciona “Meslo LG L DZ for Powerline” en la Familia y también selecciona el tamaño de fuente 14 (así es más fácil de leer).
1*SbKUVJxHJ_PR8yh2cbSESw

3.4 Reinicia la Terminal

Sal completamente de la Terminal (Terminal > Quit Terminal) y luego vuelve a abrirlo.

1*5pfC372U2Uz9Q5SQJSqKzA

Paso 4 - Agregar información de Git a la línea de comando

Para mostrar varios estados de Git en la línea de comando, necesitamos instalar  powerline-gitstatus. Es una extensión simple a Powerline y agrega múltiples colores y Temas para mostrar varias informaciones de estado de git.

1*NKRx9-fVCZIiWKW_Tb0lhA
PS: estaremos lidiando con archivos en las carpetas “color schemes” y “themes”

4.1 Instalar powerline-gitstatus

pip install --user powerline-gitstatus
Nota: El comando “ — user” es requerido para instalarlo en el perfil del usuario.

4.2 Agregar esquemas de color de powerline-gitstatus a Powerline

4.2.1 Abre la siguiente carpeta colorschemes/shell/default.json

${powerline-install-directory}/powerline/config_files/colorschemes/shell/default.json

//For example:
/Users/rupa/Library/Python/2.7/lib/python/site-packages/powerline/config_files/colorschemes/shell/default.json

4.2.2 Agrega los siguientes colores:

Como mencioné en el readme de powerline-gistatus. PS: Solo copa los colores dentro de “groups” y luego añádelo al archivo default.json como se muestra abajo.

1*shKgrO87LFrjoGMb2uOEVg
Haz clic para hacer zoom

Aquí está mi archivo default.json de esquemas de colores (puedes copiar y pegar esto):

{
	"name": "Default color scheme for shell prompts",
	"groups": {
		"hostname": {
			"fg": "brightyellow",
			"bg": "mediumorange",
			"attrs": []
		},
		"environment": {
			"fg": "white",
			"bg": "darkestgreen",
			"attrs": []
		},
		"mode": {
			"fg": "darkestgreen",
			"bg": "brightgreen",
			"attrs": ["bold"]
		},
		"attached_clients": {
			"fg": "white",
			"bg": "darkestgreen",
			"attrs": []
		},

		"gitstatus": {
			"fg": "gray8",
			"bg": "gray2",
			"attrs": []
		},
		"gitstatus_branch": {
			"fg": "gray8",
			"bg": "gray2",
			"attrs": []
		},
		"gitstatus_branch_clean": {
			"fg": "green",
			"bg": "gray2",
			"attrs": []
		},
		"gitstatus_branch_dirty": {
			"fg": "gray8",
			"bg": "gray2",
			"attrs": []
		},
		"gitstatus_branch_detached": {
			"fg": "mediumpurple",
			"bg": "gray2",
			"attrs": []
		},
		"gitstatus_tag": {
			"fg": "darkcyan",
			"bg": "gray2",
			"attrs": []
		},
		"gitstatus_behind": {
			"fg": "gray10",
			"bg": "gray2",
			"attrs": []
		},
		"gitstatus_ahead": {
			"fg": "gray10",
			"bg": "gray2",
			"attrs": []
		},
		"gitstatus_staged": {
			"fg": "green",
			"bg": "gray2",
			"attrs": []
		},
		"gitstatus_unmerged": {
			"fg": "brightred",
			"bg": "gray2",
			"attrs": []
		},
		"gitstatus_changed": {
			"fg": "mediumorange",
			"bg": "gray2",
			"attrs": []
		},
		"gitstatus_untracked": {
			"fg": "brightestorange",
			"bg": "gray2",
			"attrs": []
		},
		"gitstatus_stashed": {
			"fg": "darkblue",
			"bg": "gray2",
			"attrs": []
		},
		"gitstatus:divider": {
			"fg": "gray8",
			"bg": "gray2",
			"attrs": []
		}
	},
	"mode_translations": {
		"vicmd": {
			"groups": {
				"mode": {
					"fg": "darkestcyan",
					"bg": "white",
					"attrs": ["bold"]
				}
			}
		}
	}
}

4.3 Activa el Tema

4.3.1 Abre el archivo default.json del Tema

${powerline-install-directory}/powerline/config_files/themes/shell/default.json

//Por ejemplo:
/Users/rupa/Library/Python/2.7/lib/python/site-packages/powerline/config_files/themes/shell/default.json

4.3.2 Agrega lo siguiente al default.json

{
    "function": "powerline_gitstatus.gitstatus",
    "priority": 40
}
1*QJIvX5hfNpUWZgoHTQ_nbQ

Abajo está mi archivo default.json del Tema de Powerline (puedes copiar y pegar esto):

Nota: He removido todo de la sección de la "derecha" y también removí “job number” (“jobnum”) para manetener las cosas limpias. De otra manera, verás un pequeño artefacto en el borde lateral derecho de la línea de comando.
{
	"segments": {
		"left": [{
				"function": "powerline.segments.shell.mode"
			},
			{
				"function": "powerline.segments.common.net.hostname",
				"priority": 10
			},
			{
				"function": "powerline.segments.common.env.user",
				"priority": 30
			},
			{
				"function": "powerline.segments.shell.cwd",
				"priority": 10
			}, {
				"function": "powerline_gitstatus.gitstatus",
				"priority": 40
			}
		],
		"right": []
	}
}

4.4 Reinicia el Daemon

Guarda el archivo y ejecuta lo siguiente: powerline-daemon —-replace en la Terminal.

Nota Importante:  reinicia el daemon para ver los cambios reflejados powerline-daemon —-replace

4.5 Reinicia la Terminal

Sal de la Terminal (Terminal > Quit Terminal) y ábrelo de vuelta.

En este punto, ¡ya estamos listo! ¡Uf! Si abres la Terminal, y navegas a cualquier repo de git, y juegas un poco, debería lucir como lo siguiente.

1*QRJ9_60oCmcwRGfYqCbqSw

Aquí está como debería lucir en el Tema Solarized-Light:

1*8yii2h-RBMX3j5dtMagr2Q

Aquí está cómo debería lucir en el Tema Cobalt2:

1*hYHwy__bxYoA8cji8E3plQ

¡Gracias!

Si tienes preguntas, por favor no dudes en preguntarme en Twitter: https://twitter.com/rajaraodv

Mejoras de Terminal

  1. Mejora tu terminal "ZSH" en siete pasos: una guía visual

Si te fue útil, por favor, ¡compartirlo! ¡Gracias!