Advertisement
  1. Computer Skills

Obteniendo Spiffy con Powerline

Scroll to top
Read Time: 11 min

() translation by (you can also view the original English article)

Final product imageFinal product imageFinal product image
What You'll Be Creating

Cada editor y terminal shell tiene una línea de estado. Es un lugar de información que te dice dónde te encuentras en el archivo o estructura de directorios, el estado del programa, el estado de git, si corresponde, etc. A menudo es difícil cambiar y casi siempre imposible mantener la coherencia entre las aplicaciones.

Ahí es donde entra Powerline. Powerline es un daemon python que proporciona una información de línea de estado consistente y de formato agradable que se puede usar en cualquier editor o shell de terminal.

También puedes agregar información adicional (clima, tiempo, etc.). Al final del tutorial, podrás hacer que la línea de estado en la terminal vim, MacVim, zsh, bash o fish se vea como lo deseas y que muestre la información que necesitas.

Instalación

La forma más fácil de instalar es usar pip de Python. Deberás asegurarte de que Python tiene la versión 2.7 o 3.3 para funcionar. Puedes verificar la versión de Python instalada con el siguiente comando:

1
python --version

Debería regresar:

1
Python 2.7.5

Si tienes una versión anterior de Python, simplemente instala una versión más nueva usando HomeBrew. Si aún no has instalado HomeBrew, consulta Homebrew Demystified: Ultimate Package Manager de OS X.

Una vez que la versión de Python esté actualizada, puedes usar pip para instalar Powerline. Usa esta línea de comando:

1
pip install --user git+git://github.com/Lokaltog/powerline

Esto instalará la última versión de Powerline en GitHub. Debes mantener una copia de la documentación abierta en el navegador web.

Debes descargar una versión zip de GitHub. La instalación de pip no copia todos los archivos necesarios. Solo obtiene lo que se necesita para hacer la biblioteca de Python. Utilizarás la copia descargada para instalar lo que no se instala.

Mostrando la ubicación de instalación de Pip para Powerline

Para ver dónde pip pone todo, escribe esto en la línea de comando:

1
pip show powerline

Necesitas copiar la ubicación del directorio y cambiar a ese directorio.

Yendo a la instalación de Powerline de Pip

Puedes ver el directorio de powerline y la información del huevo de Python en el directorio. Para abrir una ventana del Finder en ese directorio, escribe:

1
open .
Abriendo el buscador al directorio y copiar archivos

Con una ventana de Finder abierta a ese directorio, descarga y descomprime los archivos de Powerline de GitHub y copia los directorios de powerline y scripts de la descarga de GitHub a este directorio.

Para crear la configuración básica para Powerline, ingresa los siguientes comandos en la interfaz de línea de comando de Terminal:

1
cd

2
mkdir .config
3
mkdir .config/powerline

El primer cd simplemente te coloca en el directorio de inicio. Si ya tienes un directorio .config en el directorio de inicio, puedes omitir hacerlo. Copia los archivos de configuración del directorio powerline/config_files/ de la descarga de Powerline GitHub en el directorio de powerline que acabas de crear.

Instalación de fuente

Powerline tiene que tener caracteres especiales instalados en la fuente utilizada. Puedes descargar fuentes precompiladas con estos símbolos. Yo uso Inconsolata para Powerline.

Instalación de la fuente Powerline

Una vez que descargues la fuente, cambia el nombre de Inconsolata por Powerline.otf a InconsolataPowerline.otf. FontBook de lo contrario no lo abrirás correctamente. Después de cambiar el nombre, haz doble clic para abrirlo e instalarlo en el sistema.

Configurando el terminal y iTerm2

Antes de formatear los diferentes caparazones de la terminal, los programas Terminal y iTerm2 deben configurarse para usar la fuente que se descargó.

Configurar fuentes en la terminal

Abre el cuadro de diálogo Preferencias para Terminal, selecciona Configuración, selecciona Texto y selecciona Cambiar... al lado del encabezado de Fuente. Selecciona la fuente Inconsolata para Powerline y guárdala.

Configurar fuentes en iTerm2

Para iTerm2, abre el cuadro de diálogo Preferencias, selecciona Perfiles, selecciona Texto y selecciona Cambiar fuente para la Fuente regular para configurar la fuente Inconsolata para Powerline y guardar. Haz exactamente lo mismo para la configuración de fuente no ASCII también.

Consejo: Si los colores de Powerline terminan siendo diferentes entre Terminal e iTerm2, es posible que desees comprobar si las especificaciones de colores son las mismas. Estos colores predefinidos afectarán a los colores utilizados en Powerline. Si utilizas diferentes perfiles, estos ajustes preestablecidos deben ser los mismos en todos los perfiles para evitar cambiar el aspecto de Powerline.

Configurando Fish

Fish es un shell altamente configurable para todos los sistemas basados en Unix. Si usas Alfred, puedes usar el flujo de trabajo de Fish Toolbox para editar fácilmente el archivo de configuración.

Usando la herramienta Fish para el flujo de trabajo 

En el indicador de Alfred, escribe f:editconfig y presiona la tecla Intro. El editor de texto que configuraste para usar con el flujo de trabajo se abrirá en el archivo de configuración de Fish. De lo contrario, abre el archivo ~/.config/fish/config.fish en el editor de texto. Agrega las siguientes líneas en la parte inferior:

1
set fish_function_path $fish_function_path "/Users/raguay/Library/Python/2.7/lib/python/site-packages/powerline/bindings/fish"
2
powerline-setup

El comando set necesita tener la ruta al directorio Powerline como lo obtuviste del comando pip show powerline arriba. La siguiente línea ejecuta la función de fish powerline-setup para crear el mensaje de Powerline.

Powerline Powered Fish Prompt

Abre una nueva ventana iTerm o Terminal con Fish debería darte este aviso.

Configurando Zsh

Para obtener Zsh usando Powerline, puedes instalar Oh-My-Zsh. Una vez instalado, simplemente configura el tema como tema agnoster editando el archivo .zshrc en el directorio de inicio. Cambia la línea ZSH_THEME para que se vea como

1
ZSH_THEME="agnoster"
Powerline Powered Zsh Prompt usando el tema Oh-My-Zsh Agnoster

La indicación de Zsh ahora debería verse como la imagen de arriba. Las diferencias en el prompt Fish y el prompt Zsh tienen que ver con que el tema agnóstico de Oh-My-Zsh sea diferente a la configuración predeterminada de Powerline. Ese es el problema con este enfoque: los temas de Oh-My-Zsh cambian los colores del esquema Powerline. Puedes controlarlo un poco, pero no completamente.

Si no deseas utilizar Oh-My-Zsh, elimina todas las referencias a Oh-My-Zsh de tu .zshrc y colócalo en la parte inferior:

1
source /Users/raguay/Library/Python/2.7/lib/python/site-packages/powerline/bindings/zsh/powerline.zsh

La ruta debe corresponder a lo que recibiste del comando pip show powerline.

Powerline en Zsh sin Oh-My-Zsh

Con esta codificación de esta manera, ninguna de las características de Oh-My-Zsh está en el camino. Ahora se ve exactamente como el mensaje de Fish y está controlado por la configuración de Powerline.

Configurando Bash

La configuración de Bash es casi la misma que la segunda aproximación a la configuración de Zsh. En tu archivo .bashrc, coloca esto en la parte inferior:

1
source /Users/raguay/Library/Python/2.7/lib/python/site-packages/powerline/bindings/bash/powerline.sh

La ruta debe corresponder a lo que recibiste del comando pip show powerline.

Configuración Bash

El mensaje de Bash ahora se ve exactamente como el prompt de Fish y Zsh.

Configurando Vim y Macvim

Usando el editor de texto, abre el archivo .vimrc y agrega estas líneas:

1
set rtp+=/Users/raguay/Library/Python/2.7/lib/python/site-packages/powerline/bindings/vim
2
3
" These lines setup the environment to show graphics and colors correctly.

4
set nocompatible

5
set t_Co=256

6


7
let g:minBufExplForceSyntaxEnable = 1

8
python from powerline.vim import setup as powerline_setup

9
python powerline_setup()

10
python del powerline_setup

11


12
if ! has('gui_running')

13
   set ttimeoutlen=10

14
   augroup FastEscape

15
      autocmd!

16
      au InsertEnter * set timeoutlen=0

17
      au InsertLeave * set timeoutlen=1000

18
   augroup END

19
endif

20


21
set laststatus=2 " Always display the statusline in all windows
22
set guifont=Inconsolata\ for\ Powerline:h14
23
set noshowmode " Hide the default mode text (e.g. -- INSERT -- below the statusline)

Esta configuración funciona para la consola Vim y MacVim. Observa la especificación de la fuente en la definición guifont establecida. Tienes que escapar de los espacios en el nombre de la fuente.  Me gusta una fuente grande, pero puedes hacerla más pequeña cambiando el número al lado de la h. Se establece aquí para un tamaño de letra de 14pt.

Consola Vim con Powerline

Para instalar la última MacVim con la configuración compilada adecuada para Powerline, uss este comando de instalación de HomeBrew:

1
brew install macvim --env-std --override-system-vim

MacVim anula el sistema vim y usa el entorno estándar.

MacVim con Powerline

MacVim tiene un resaltado de sintaxis preconfigurado, pero la consola Vim no. ¡Lo importante es que la línea de estado de Powerline se ve igual en ambos!

Configuración de Esquemas de Color y Temas de Powerline

Para mostrar cómo cambiar los colores y los temas, modificaré las configuraciones del shell. Para cambiar Vim y MacVim, seguirás un procedimiento similar.

Todos los archivos de configuración de Powerline se encuentran en el directorio ~/.config/powerline/. Ahí verás:

1
cd ~/.config/powerline/
2
ls

3
colors.json colorschemes config.json themes

Este directorio contiene dos archivos (colors.json y config.json) y dos directorios (themes y colorschemes).

Consejo: En Powerline, el tema se refiere a la estructura de la información en la línea de estado. No tiene nada que ver con la coloración.

El archivo colors.json define los valores numéricos para el nombre del color. Tendrás que consultar este archivo para ver qué nombres de colores están definidos o para crear nuevos.

El archivo config.json es el archivo de configuración principal para Powerline. Este es el primer lugar donde Powerline busca información de configuración. Le dice a Powerline qué combinación de colores y tema usar para cada aplicación.

El directorio de temas contiene todos los temas para todas las aplicaciones habilitadas con Powerline. Los temas para cualquier shell estarán bajo themes/shell/.

El directorio colorschemes contiene los diferentes esquemas de color para todas las aplicaciones habilitadas con Powerline. Los esquemas de color para shells están en el directorio colorschemes/shell/.

Abre el archivo de configuración de Powerline (~/.config/powerline/config.json).

Si estás utilizando Alfred, puedes descargar el flujo de trabajo de Powerline Toolbox Alfred. Usa el comando pl:conf para explorar el directorio de configuración de Powerline. Seleccionar un archivo te permite editarlo. Seleccionar un directorio le permite ingresarlo.

Deberías ver un gran archivo json. El shell de la sección es lo que voy a modificar:

1
"shell": {
2
	"colorscheme": "default",
3
	"theme": "default",
4
	"local_themes": {
5
		"continuation": "continuation",
6
		"select": "select"
7
	}
8
}
9

Cambia la clave del esquema de color a solarizado.

Esquema de color solarizado según el esquema de color predeterminado

Eso será un buen comienzo. Para hacer los tuyos, cambia la clave colorscheme por mine en el archivo config.json y copia el archivo colorschemes/shell/solarized.json en colorschemes/shell/mine.json.

El mine.json se verá así:

1
{
2
	"name": "Solarized Dark",
3
	"groups": {
4
		"jobnum":               { "fg": "oldlace", "bg": "darkgreencopper" },
5
		"user":                 { "fg": "oldlace", "bg": "blue", "attr": ["bold"] },
6
		"superuser":            { "fg": "oldlace", "bg": "red", "attr": ["bold"] },
7
		"virtualenv":           { "fg": "oldlace", "bg": "green" },
8
		"branch":               { "fg": "gray61", "bg": "royalblue5" },
9
		"branch_dirty":         { "fg": "yellow", "bg": "royalblue5" },
10
		"branch_clean":         { "fg": "gray61", "bg": "royalblue5" },
11
		"continuation":         { "fg": "lightyellow", "bg": "darkgreencopper" },
12
		"continuation:current": { "fg": "oldlace", "bg": "darkgreencopper", "attr": ["bold"] },
13
		"cwd":                  { "fg": "lightyellow", "bg": "darkgreencopper" },
14
		"cwd:current_folder":   { "fg": "oldlace", "bg": "darkgreencopper", "attr": ["bold"] },
15
		"cwd:divider":          { "fg": "gray61", "bg": "darkgreencopper" },
16
		"hostname":             { "fg": "oldlace", "bg": "darkgreencopper" },
17
		"exit_fail":            { "fg": "oldlace", "bg": "red" },
18
		"exit_success":         { "fg": "oldlace", "bg": "green" },
19
		"environment":          { "fg": "oldlace", "bg": "green" },
20
		"mode":                 { "fg": "oldlace", "bg": "green", "attr": ["bold"] }
21
	},
22
	"mode_translations": {
23
		"vicmd": {
24
			"groups": {
25
				"mode": { "fg": "oldlace", "bg": "blue", "attr": ["bold"] }
26
			}
27
		}
28
	}
29
}
30

Debes cambiar la clave del nombre por el valor Mine. Además, realiza estos cambios:

1
"cwd":                  { "fg": "lightyellow", "bg": "gray13" },
2
"cwd:divider":          { "fg": "gray61", "bg": "gray13" },

Cuando guardes tu archivo y presiones return en la terminal, obtendrás la nueva combinación de colores.

El esquema de color de Mine bajo el esquema de color Scheme

Es útil mostrar un indicador de fecha y hora. Para cambiar los diseños de segmento, se debe crear un nuevo tema. En el archivo config.json, cambia la clave del tema al valor mine. Copia el archivo theme/shell/default.json a theme/shell/mine.json. Justo antes de la lista json que contiene el hostname, agrega esta lista json:

1
{
2
	"name": "date",
3
	"args": {
4
		"format": "%m-%d %H:%M"
5
	}
6
},

Este bit de código json agregará un nuevo segmento usando el comando date. El comando date toma dos argumentos: el formato que contiene el formato para el comando python strftime(), y el tiempo que te indica si debes usar un esquema de color de tiempo separado de la fecha uno. El valor predeterminado para istime está bien. Este formato mostrará la fecha en un formato de 24 horas por minuto de día y mes.

Ahora que hay un segmento nuevo, se debe agregar un esquema de color. En el archivo colorscheme/shell/mine.json, agrega estas líneas justo arriba jobnum:

1
"date":		{"fg":"mediumcyan", "bg":"brightpurple"},
2
"time":		{"fg":"mediumcyan", "bg":"brightpurple"},
3
"time:divider":	{"fg":"mediumcyan", "bg":"white"},

Para acortar la cantidad de directorios principales que se muestran en el mensaje, deberás cambiar el archivo theme/shell/mine.json para que el segmento cwd se vea así:

1
{
2
	"name": "cwd",
3
	"args": {
4
		"dir_limit_depth": 2
5
	}
6
},

Dir_limit_depth define cuántos directorios principales se mostrarán. Aquí está establecido en 2.

Guarda los archivos de configuración y podrás ver cómo se ve.

Fecha y hora agregadas al indicador de Shell

La descarga disponible con este tutorial tiene los archivos de configuración que tendrás ahora. Si cometes un error en los archivos, el mensaje de Powerline mostrará rápidamente errores.

La lista de comandos comunes y específicos de la aplicación te ayudará a encontrar más formas de modificar tu solicitud. ¡Ya que todo está en Python, incluso puedes crear el tuyo!

Conclusión

En este tutorial le he mostrado cómo configurar Fish shell, Zsh shell, Bash shell, console Vim, MacVim para usar Powerline. Ahora sabes cómo cambiar el aspecto del panel shell. ¡Lo único que queda es jugar con tus nuevos conocimientos y obtener la mejor configuración solo para ti!

Advertisement
Did you find this post useful?
Want a weekly email summary?
Subscribe below and we’ll send you a weekly email summary of all new Computer Skills tutorials. Never miss out on learning about the next big thing.
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.