Cómo hacer que nuestra terminal luzca mejor? Parte2

2- Haciendo que nuestra terminal sea atractiva (Zsh + Oh-my-zsh)

Ya conocemos una herramienta para mejorar nuestra productividad (tmux), ahora toca otra parte divertida, modificar la terminal para que sea más atractiva e incluso, más productiva!!!

2.1- Instalando Zsh

ZSH, también llamado Zshell, es una versión extendida de BourneShell (sh), con muchas características nuevas y soporte para plugins y temas. Dado que se basa en el mismo shell que Bash, ZSH tiene muchas de las mismas características. Empezar a utilizarlo es muy sencillo.

Tiene muchas similitudes con bash y ksh e incorpora muchas de sus características principales. Algunas de sus ventajas principales incluyen una lista de autocompletar navegable. A diferencia de bash, que únicamente lista los comandos disponibles.

Antes de instalarlo, comprobamos si no se encuentra instalado ya:

cat /etc/shells

# /etc/shells: valid login shells
/bin/sh
/bin/bash
/usr/bin/bash
/bin/rbash
/usr/bin/rbash
/bin/dash
/usr/bin/dash
/usr/bin/tmux
/usr/bin/screen

Como no se encuentra, simplemente se instala:

apt install zsh -y

Se puede checkear la versión:

zsh --version
zsh 5.8 (x86_64-ubuntu-linux-gnu)

Podemos hacer que Zsh sea nuestra terminal por defecto:

chsh -s $(which zsh)

Si se desea por alguna razón regresar a utilizar la terminal por defecto, los siguientes comandos harán la magia:

# Se puede usar:
chsh -s /bin/bash or exec bash

# O
chsh -s /bin/zsh or exec zsh

2.2- Instalando y configurando Oh my Zsh

En las propias palabras de sus creados, Oh my Zsh:

Una vez instalado, su terminal se convertirá en la comidilla de la ciudad o le devolveremos su dinero. Con cada pulsación de tecla en el símbolo del sistema, se beneficiará de los cientos de potentes complementos y hermosos temas. Los extraños se acercarán a ti en los cafés y te preguntarán: «¡Eso es increíble! ¿Eres una especie de genio?»

OhMyZsh es un framework de Zsh que habilita y potencia mucho a esta terminal

Para instalarlo correr:

sh -c "$(wget https://raw.github.com/ohmyzsh/ohmyzsh/master/tools/install.sh -O -)"

Aunque también se puede hacer manualmente:

wget https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh && \
chmod +x install.sh &&\
./install.xh

Una ves instalado:

2.3- Temas de OhMyZsh

El tema (ZSH_THEME) es una variable del archivo zshrc (omz). Para agregar o actualizar el tema, primero se debe instalar (si el tema no está instalado) el tema y luego actualizar la variable del tema (ZSH_THEME).

OhMyZsh viene con temas predefinidos. Pueden ser configurados cambiando la variable ZSH_THEME.

Los temas predeterminados y populares de OhMyZsh son robbyrussell y agnoster que vienen con la instalación de omz.

Vamos cambiar el tema que viene por defecto. Simplemente:

nano ~/.zshrc

# Se busca la variable
ZSH_THEME=" robbyrussell "
# Y se cambia por:
ZSH_THEME="agnoster"

Para aplicar los cambios basta con:

source ~/.zshrc

Hay infinidad de temas, algunos hay que descargarlos, por supuesto…

2.4- El tema Powerlevel10k

Powerlevel10k es un tema para Zsh. Enfatiza la velocidad, la flexibilidad y la experiencia lista para usar.

Primeramente, aunque no es necesario, es altamente recomendado, instalar las fuentes necesarias. Para ello, primeramente, las descargamos:

MesloLGS NF Regular.ttf | MesloLGS NF Bold.ttf | MesloLGS NF Italic.ttf | MesloLGS NF Bold Italic.ttf

Y luego las instalamos, solo dándole doble click y luego haciendo click en Install/Instalar. En mi caso, desde Windows, utilizo XShell. Para que XShell reconozca las fuentes recientemente instaladas, solo basta con reiniciar el programa y luego seleccionarla así:

NOTA: Las fuentes pueden ser instaladas en varios emuladores de terminales: Termius, Moba, Yakuake, Gnome Terminal….

Una vez instaladas las fuentes, se procede a clonar el proyecto:

git clone --depth=1 https://github.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k

Ahora solo resta decirle a OhMyZsh que acepte el tema recién descargado:

nano ~/.zshrc
ZSH_THEME="powerlevel10k/powerlevel10k"

Realizado lo anterior salimos de la terminal enviando un exit (NO REINICIAR source ~/.zshrc) y cuando nos logueamos nuevamente nos aparecerá el wizard:

Realizara algunas preguntas de calibración, casi todas relacionadas con las fuentes. Y cuando termine la configuración se tendrá una terminal más funcional, que tiene opciones de autocompletado mejoradas y que muestra más detalles:

2.5- Plugins

Uno de los elementos más buenos de Zsh es que permite la incorporación de plugins.

Zsh-autosuggestion

Uno de los mejores plugins (Zsh-autosuggestion) que existen es el que te va mostrando opciones de auto completamiento mientras se escribe en la terminal.

Para utilizarlo primeramente se descarga y luego se setea en una variable llamada plugins en el archivo de configuración del Zsh:

git clone https://github.com/zsh-users/zsh-autosuggestions ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-autosuggestions
nano ~/.zshrc
# Se busca por la variable llamada plugins y se agrega el nombre del plugin, en este caso quedaría de la siguiente forma:
plugins=(git zsh-autosuggestions)

Ejemplo de autocompletamiento:

Zsh-syntax-highlighting

Ya tenemos un plugin para autocompletar, pero y si además le damos color?! Para eso es el plugin Syntax-highlighting.

Primeramente descargamos el plugin:

git clone https://github.com/zsh-users/zsh-syntax-highlighting.git ${ZSH_CUSTOM:-~/.oh-my-zsh/custom}/plugins/zsh-syntax-highlighting

Y luego solo:

nano ~/.zshrc
# Se busca por la variable llamada plugins y se agrega el nombre del plugin, en este caso quedaría de la siguiente forma:
plugins=(git zsh-autosuggestions zsh-syntax-highlighting)

Una vez aplicado el cambio, se sale del usuario y se vuelve a acceder al mismo. A modo de prueba:

Antes del plugin:

Después del plugin:

Hay muchos mas plugins, pueden revisar aquí, aquí y aquí.

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Autores:

  • Frank Morales
  • Franco Díaz

¿De cuánta utilidad te ha parecido este contenido?

Frank Morales

Compartir
Publicado por
Frank Morales

Entradas recientes

Alta disponibilidad de sus base de datos con Percona XtraDB Cluster en Kubernetes

Uno de los grandes retos al que nos podemos enfrentar cuando una aplicación crece, es…

8 meses hace

Home automation (Parte 3) – ESPHome

Qué es lo que deseo hacer en este capítulo? Básicamente un sonoff, quiero encender/apagar las…

1 año hace

Home automation (Parte 2) – Home Assistant

Hace algunos meses estoy escuchando hablar del proyecto Home Assistant (HA). En palabras literales del…

1 año hace

Home automation (Parte 1)

Desde hace varios meses vengo con la idea de automatizar la casa donde vivo. Poco…

1 año hace

Cocinando una imagen personalizada de OpenWRT

El artículo describe el uso para un caso particular de OpenWRT y la creación de…

1 año hace