Windows Terminal
Hace unos meses salió una nueva app, Windows Terminal, que es una nueva consola o terminal de modo texto para Windows. Hay mucha gente por ahí que no comprende la importancia de tener una interfaz de texto para la computadora, y no vamos a entrar mucho en detalle, solo diré que las posibilidades de automatización y de conexión remota se amplían formidablemente.
Si no quieren refinarse un rollote, entonces me limitaré a decir que Windows Terminal es un app excelente, que cumple con todo lo que promete y más. Si eres unixero atrapado en Windows entonces probablemente te las veas más sencillas con mintty, pero si ya estás acostumbrado a batallar con Windows entonces Windows Terminal te funcionará excelentemente.
¿Por qué una nueva terminal?
Esto viene de la mano directamente con el famoso WSL: Windows Subsistem for Linux: ahora tienes una necesidad real y tangible de conectarte a algo que no tiene más frontend que una interfaz de texto.
Por fortuna Microsoft se abstuvo de forzar alguna especie de GUI improvisada e incompatible, y en lugar de eso optaron por seguir el camino unix: hacer una herramienta de uso general. ¡Kudos!
Ya existía en Windows un componente de terminal, el Console Host, que probablemente has visto por ahí nombrado en el administrador de tareas. Y sí se le han hecho mejoras, pero es un componente que está amarrado a las tripas del sistema, y no sería fácil ampliarlo para convertirlo en una terminal hecha y derecha.
Una pequeña comparación
Vamos a comparar un poco WinTerm contra su competidor más cercano, MinTTY.
Primero vamos a ver WinTerm en modo full-retro:
Se ve muy fancy, y la verdad es que muy probablemente la usaré en algún video... pero en la vida diaria no me resulta demasiado práctico. ¿O tal vez sí? No lo sé, habrá que probar.
El modo transparente te obliga a usar lo que llaman el acabado acrílico, que es una especie de empañado. En esta imagen vemos a MinTTY adelante, que no hace el efecto empañado, y se puede leer claramente lo que está detrás (me gusta más así):
Por último, WinTerm delante, para que puedan ver cómo el empañado no permite en absoluto leer lo que hay detrás. Para efectos de privacidad es mejor, para evitar que por ahí se filtren datos delicados en un screenshot:
Ventajas
Entre lo que distingue a Windows Terminal (en adelante, WinTerm) de otras terminales:
- Excelente soporte Unicode/UTF-8
- Soporte nativo para Command y PowerShell
- Soporte para shells tipo unix: bash, tcsh, zsh
- Sistema de perfiles muy útil, incluyendo el conectarse desde el perfil a un host remoto vía ssh
- Eye-candy: modo terminal retro (con scanlines y persistencia de fósforo)
- Modo que distingue entre AltGr y Ctrl+Alt, cosa extremadamente útil para usar Emacs en terminal
- Incluye la nueva font Cascadia Code, bastante agradable para usar ahí y en cualquier editor de código
Desventajas
Y pues claro que tiene algunas desventajas, ya tú decidirás qué tan malas son:
- Es un app de Microsoft Store, tienes que usar una cuenta Microsoft para descargarla
- Los shortcuts no son estándar... aunque creo que nunca lo son
- Por default usa el OpenSSH incorporado de Windows
El OpenSSH incorporado de Windows es estándar, pero el mecanismo para guardar las llaves es propio, así como la ruta de la configuración del servidor. No es muy complicado y vale mucho la pena echarlo a andar.
¿Qué tal se compara a la competencia?
Tal vez no lo sepan, pero el mundo de las terminales en Windows está muy competido gracias a Cygwin.
- MinTTY: Es el componente de terminal de puTTY, si lo han usado saben que es bastante digno de reconocimiento. Tiene soporte Unicode impecable, y en general es una terminal muy sólida, es mi daily driver cuando estoy en Windows.
- Xterm: Si hay un programa que no recibe el amor que merece, sin duda es Xterm. Aunque tal vez se merece el olvido por depender de Xresources para configurarse, jaja. La recordamos como una terminal de fondo blanco y font pixeleada, pero en realidad se puede personalizar para lograr un aspecto muy moderno, incluyendo texto antialiasado (si es lo tuyo), soporte TTF, colores personalizados y más.
- Console Host: Ya está instalada, y funciona sorprendentemente bien con Cygwin. Incluso se pueden personalizar los colores para diferentes temas dependiendo del programa que estés corriendo, aunque cambiar las fonts es absurdamente complicado.
- Cualquier terminal remota: También podrías usar X11 y jalar tu terminal unix favorita... pero la verdad es que Xterm es la mejor, aunque hay quien jura que Terminator o Gnome-terminal valen la pena. Incluso hay todavía por ahí algún fan de Rxvt. Ninguna será mejor que WinTerm.
La principal ventaja que tiene WinTerm contra las demás es el soporte para Ctrl+Alt como una combinación de teclas distinta a AltGr. Esto es un problema bastante fastidioso en Windows, y tener un app que le pueda dar la vuelta significa que tiene remedio.
En conclusión...
Windows Terminal es un complemento formidable a la experiencia WSL. Su integración con Windows y con PowerShell la hacen una herramienta de por sí indispensable en tu máquina. No es un hack improvisado: realmente Microsoft invirtió tiempo y talento en hacer de Windows Terminal un app digna de WSL y del legado Unix que conlleva.
En lo personal yo he usado MinTTY por varios años, pero muy probablemente estaré usando WinTerm ocasionalmente, en especial cuando no esté en mi máquina de escritorio.