El emulador de terminal más rápido. Alacritty.

Hasta hace relativamente poco, he estado utilizando Terminator, como mi emulador de terminal por defecto. Sin embargo, hace unas semanas que estoy probando el entorno de escritorio i3 en el pequeño Acer Aspire One, y comencé mi búsqueda de un emulador de terminal mas ligero, mucho mas ligero. En esta búsqueda del emulador de terminal, me tropecé con Alacritty, que si bien, no he conseguido hacerlo funcionar en el pequeñín, si ha conseguido reemplazar a Terminator, en mi equipo principal. Y lo ha reemplazado, porque sin lugar a dudas es el emulador de terminal más rápido. O al menos, el terminal mas rápido, que yo conozco.

Y la rapidez de Alacritty, supera con creces a Terminator, lo cierto es que he perdido algunas características, como es la posibilidad de crear múltiples ventanas. Por supuesto que esto lo he solucionado. Así, en este artículo, no solo te cuento sobre el emulador de terminal más rápido, sino también como suplir esta carencia de forma sencilla, pero eficaz.

El emulador de terminal más rápido. Alacritty.

El emulador de terminal más rápido. Alacritty.

¿Que es Alacritty?

Según lo describen sus propios desarrolladores, y también en base a mi experiencia, indicarte que Alacritty es, sin lugar a dudas, el emulador de terminal más rápido. Utiliza la GPU para el renderizado, y es posiblemente esta característica, la que habilita determinadas optimizaciones que no serían posibles de otra manera.

Inicialmente, cuando empecé a redactar este artículo, describí a Alacritty, como el emulador de terminal más rápido para Linux. Sin embargo, con esta descripción me dejaba una característica fundamental, y es que Alacritty es multiplataforma. Lo que te permite disfrutar del emulador de terminal más rápido en BSD, Linux, MacOS y Windows.

Esta característica de ser multiplataforma, es algo que estoy disfrutando mucho últimamente. Tener que trabajar con dos sistemas operativos, no tiene porque ser un inconveniente, si utilizas las mismas aplicaciones en ambos, y por supuesto, puede utilizar las mismas configuraciones en ambas plataformas.

Alacritty es un emulador de terminal enfocado en la simplicidad y el desempeño. Con este foco en el desempeño, las características que se incluyen cuidadosamente elegidas para conseguir que Alacritty sea increíblemente rápido. Alacritty, no necesita ningún tipo de configuración adicional. Sin embargo, puedes es posible configurar muchos aspectos de este emulador de terminal, para adaptarlo a tus necesidades.

Indicar, que en la propia página del proyecto dice que

Este software se considera beta, faltan algunas características por implementar, y existen algunos errores, sin embargo, ya es utilizado por muchos como su emulador de terminal por defecto.

Un poquito de historia

Alacritty es un emulador de terminal relativamente joven, nació en Enero de 2017, tal y como puedes ver en este enlace donde se anuncia Alacritty. Está implementado en Rust, y utiliza OpenGL para el renderizado con el objetivo de conseguir que sea el emulador de terminal más rápido.

Según indican en el mencionado artículo, Alacritty es el resultado de la frustración, al trabajar con otros terminales existentes. En este sentido, dice,

En muchos terminales, la experiencia de utilizar vim con tmux es realmente mala. Ninguno de esos terminales son suficientemente rápidos. A pesar de ello, existen algunas opciones como urxvt o st que si que proporcionan una buena experiencia de usuario.

Así se ha tenido en cuenta esto, para establecer una serie de parámetros que rigen el desarrollo de Alacritty como son,

  • Exactitud. Alacritty tiene que ser capaz de renderizar adecuadamente aplicaciones de terminal como tmux y vim. Igualmente los glifos se deben renderizar adecuadamente.
  • Desempeño. Alacritty tiene que ser, por méritos propio, el emulador de terminal más ràpido.
  • Apariencia. El renderizado de fuentes en Alacritty debe ser espectacular en todas las plataformas.
  • Simplicidad. Alacritty tiene que ser conservador con las características que ofrece. Algunas características con la configuración mediante interfaz, pestañas, y otros, son completamente innecesarios. Muchas de estas características es mejor resolverlas utilizando un multiplexor como puede ser tmux.
  • Multiplataforma. Alacritty tiene que estar soportado en Linux, MacOS y Windows.

Sobre la velocidad de Alacritty

Respecto al tema de la velocidad, no te voy a engañar, lo cierto es que me ha llamado mucho la atención, y no me lo terminaba de creer. Sin embargo, he leído un comentario sobre probar la ejecución de find /usr en Alacritty y compararlo con la ejecución de otros terminales, y lo cierto es que me he llevado una sorpresa. En concreto lo he probado con Terminator y con el terminal de GNOME, y los resultados son los que puedes ver a continuación. Indicarte que lo he ejecutado 3 veces en cada uno de los terminales y luego he sacado la media,

GNOMETerminatorAlacritty
4.8704.8013.094
4.9004.7853.111
4.8634.8153.084
4.8784.8003.096

La diferencia es sustancial, es algo mas de un 55% de incremento de los otros dos terminales respecto al tiempo que te ofrece Alacritty. Así que es una alternativa a tener muy, pero que muy en cuenta.

Instalación de Alacritty

Alacritty no se encuentra en los repositorios oficiales de Ubuntu, pero lo puedes instalar fácilmente añadiendo el siguiente repositorio,

sudo add-apt-repository ppa:mmstick76/alacritty
sudo apt-get update
sudo apt install alacritty

Configuración

A pesar de que puedes empezar a utilizar Alacritty conforme sale de la instalación, no está de mas que lo personalices y lo dejes según tus necesidades, y porque no decirlo, también según tu gusto.

La configuración la puedes poner en ~/.config/alacritty/alacritty.yml o directamente ~/.alacritty.yml. En mi caso, por una cuestión de orden, prefiero utilizar la primera opción, dado que siempre me parece que está mas recogido.

Si quieres tener la última configuración, la puedes descargar directamente desde el repositorio de GitHub, y dejarla en uno de los sitios que te he indicado anteriormente. Por simplificar, esto lo puedes hacer ejecutando la siguiente instrucción,

mkdir -p ~/.config/alacritty
wget https://raw.githubusercontent.com/alacritty/alacritty/master/alacritty.yml -O ~/.config/alacritty/alacritty.yml

Una vez ya tienes la configuración en su sitio, es el momento de adaptarla a tus necesidades. En este sentido, te voy a comentar algunos cambios que he introducido que, es posible que te resulten de interés.

He añadido un pequeño margen en el terminal,

padding:
    x: 3
    y: 3

Por supuesto es sustituido espacios por tabuladores con la opción tabspaces: 4. He modificado la configuración de fuentes por la siguiente,

font:
    normal:
        family: Hack
        style: Regular
    bold:
        family: Hack
        style: Bold
    italic:
        family: Hack
        style: Italic
    bold_italic:
        family: Hack
        style: Bold Italic
    size: 13.0
    offset:
        x: 0
        y: 4

Respecto a los colores, indicarte que recientemente he dejado que el tema Drácula, forme parte de mi vida. Así, lo he incorporado como tema por defecto a Vim, y de la misma forma lo he añadido también a Alacritty. Para hacerlo tan solo tienes que seguir las indicaciones, que figuran en la configuración de Drácula para Alacritty. Básicamente, tienes que sustituir la sección de colores de la configuración de Alacritty, por la que descargas.

Respecto a la configuración del ratón, he añadido estas dos opciones, que básicamente me simplifican las operaciones de copiar y pegar,

mouse_bindings:
  - { mouse: Left, action: Copy }
  - { mouse: Right, action: PasteSelection }

Y algunos atajos de teclado que seguro serán de tu interés,

key_bindings:
  - { key: Paste,                                action: Paste          }
  - { key: Copy,                                 action: Copy           }
  - { key: L,         mods: Control,             action: ClearLogNotice }
  - { key: PageUp,    mods: Shift,   mode: ~Alt, action: ScrollPageUp,  }
  - { key: PageDown,  mods: Shift,   mode: ~Alt, action: ScrollPageDown }
  - { key: Home,      mods: Shift,   mode: ~Alt, action: ScrollToTop,   }
  - { key: End,       mods: Shift,   mode: ~Alt, action: ScrollToBottom }
  - { key: V,        mods: Control|Shift,           action: Paste            }
  - { key: C,        mods: Control|Shift,           action: Copy             }
  - { key: Insert,   mods: Shift,                   action: PasteSelection   }
  - { key: Key0,     mods: Control,                 action: ResetFontSize    }
  - { key: Equals,   mods: Control,                 action: IncreaseFontSize }
  - { key: Add,      mods: Control,                 action: IncreaseFontSize }
  - { key: Subtract, mods: Control,                 action: DecreaseFontSize }
  - { key: Minus,    mods: Control,                 action: DecreaseFontSize }

Estos son los cambios principales que he introducido en la configuración de Alacritty, de cualquier forma, está disponible en el repositorio de GitHub donde tengo mis dotfiles.

Conclusiones

Desde luego, si quieres disfrutar de un terminal rápido, no puedes dejar de probar Alacritty, es una verdadera gozada. De cualquier forma, probar es cuestión de unos pocos minutos, y si no te convence siempre puedes volver a tu terminal anterior.

Respecto a las posibilidades de configuración tu mismo has podido ver que lo puedes dejar justo según tus necesidades. Y seguro, que aún lo puedes adaptar todavía mas, todo es cuestión de dedicarle suficiente tiempo.

En cualquier caso, mi recomendación es que lo pruebes y lo disfrutes.


Más información,

Imagen de portada de Marc Sendra Martorell en Unsplash

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *