Mejora Windows Terminal con Oh My Posh

Personalizar tu terminal puede marcar una gran diferencia en tu productividad y comodidad como desarrollador. Una de las herramientas más populares para personalizar el prompt en Windows es Oh My Posh, que te permite agregar temas visuales atractivos y funciones extra tanto en PowerShell como en Windows Terminal.

En este artículo, te guío paso a paso para transformar tu terminal de Windows con Oh My Posh. No te preocupes si nunca has personalizado nada antes; te llevo desde la instalación de PowerShell hasta dejar tu terminal literalmente irreconocible. ¿Listo para agregar estilo y funciones de nivel pro a tu consola de siempre? ¡Vamos!

📜 Tabla de contenido

💾 Instalar PowerShell

Windows PowerShell

¿Todavía estás usando la versión antigua de PowerShell que viene con Windows? Para aprovechar al máximo Oh My Posh, es clave tener la versión más reciente y multiplataforma.

Mi forma favorita de instalar PowerShell es con Winget porque es rápido y fácil, pero también lo puedes obtener desde la Microsoft Store ➡. ¡Tú decides!

Desde una ventana de Windows PowerShell, ejecuta:

winget install Microsoft.PowerShell -s winget

💻 Configurar Windows Terminal

Desde la actualización de Windows 11 22H2, Windows Terminal es la terminal predeterminada. Si no la tienes instalada, la puedes instalar fácilmente con Winget o desde la Microsoft Store ➡:

winget install Microsoft.WindowsTerminal -s winget

¿Ya lo instalaste? ¡Genial! Sigamos con la configuración.

Configurar Windows Terminal como la aplicación de terminal predeterminada

Abre Windows Terminal, haz clic derecho en la barra de título (fuera de las pestañas) o haz clic en la flecha hacia abajo junto a la última pestaña y selecciona “Settings”. También puedes presionar Ctrl + , para abrir la configuración directamente.

Busca la sección Startup. A la derecha, configura PowerShell como el Perfil predeterminado y Windows Terminal como la Aplicación de terminal predeterminada. Haz clic en “Save”. Esto te deja listo para continuar con una buena configuración.

Aplicación de terminal predeterminada

Configurar la política de ejecución de scripts en PowerShell

Las políticas predeterminadas de PowerShell controlan si se pueden ejecutar scripts o comandos. En un equipo Windows de escritorio, normalmente la política está en “Restricted”, lo que permite ejecutar comandos individuales pero no scripts. En Windows Server, la política “RemoteSigned” permite ejecutar scripts y comandos locales, pero requiere que los scripts descargados estén firmados digitalmente.

Para la mayoría de casos, “RemoteSigned” es suficiente. Ejecuta este comando en PowerShell:

Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Force

Para confirmar que funcionó:

Get-ExecutionPolicy

Deberías ver:

RemoteSigned

🤖 Instalar y configurar Oh My Posh

Oh My Posh es la estrella de este tutorial. Es súper personalizable, se ve increíble y tiene una comunidad enorme detrás. ¿Qué más se puede pedir?

Recomiendo instalarlo con Winget, pero también está disponible en la Microsoft Store ➡.

Desde PowerShell, ejecuta:

winget install JanDeDobbeleer.OhMyPosh -s winget

Una vez instalado, abre una nueva pestaña de PowerShell para que todo cargue correctamente.

Instalar una fuente

Oh My Posh está diseñado para usar Nerd Fonts. Nerd Fonts son fuentes populares “parchadas” para incluir íconos, así que necesitas instalar una Nerd Font para ver los íconos especiales en Oh My Posh.

Important Para instalar fuentes en todo el sistema, ejecuta el comando desde una terminal con privilegios de administrador.
oh-my-posh font install

Si prefieres instalar solo para tu usuario, agrega --user al final.

Important El comando debe ejecutarse sin privilegios de administrador.
oh-my-posh font install --user

Verás una lista de fuentes; Oh My Posh recomienda la familia “Meslo”, que incluye “Meslo LGM NF”.

Instalar Meslo Nerd Font

Important También puedes instalarla directamente por nombre (en todo el sistema requiere admin, a nivel usuario no).
oh-my-posh font install meslo

Si prefieres instalar solo para tu usuario, agrega --user al final y ejecútalo sin privilegios de administrador.

Configurar Windows Terminal para usar una Nerd Font

Abre el archivo JSON de configuración de Windows Terminal presionando Ctrl + Shift + , o desde “Settings > Open JSON file”.

Busca la sección “profiles” > “defaults” y agrega esto:

{
    "profiles": {
        "defaults": {
            "font": {
                "face": "MesloLGM Nerd Font"
            }
        }
    }
}

Guarda y la fuente de tu terminal se actualizará.

Configurar la terminal de Visual Studio Code para usar una Nerd Font

En Visual Studio Code, configura la terminal integrada para usar la Nerd Font. Abre la configuración (Ctrl + ,), busca “Integrated: Font Family”, y reemplaza el valor con:

Configurar PowerShell para usar Oh My Posh

Vamos a decirle a PowerShell que cargue Oh My Posh cada vez que inicies una terminal.

Abre tu perfil con tu editor favorito, por ejemplo:

code $PROFILE

Agrega esta línea y guarda:

oh-my-posh init pwsh | Invoke-Expression

Recarga tu perfil:

. $PROFILE

¡Listo! Deberías ver que tu prompt cambia de inmediato a algo como esto:

Oh My Posh

Elegir un tema

Oh My Posh incluye varios temas integrados. Puedes explorarlos en la documentación de temas de Oh My Posh ➡.

Elige el que te guste. Por ejemplo, si te gusta el tema minimalista “zash”, ubica el archivo zash.omp.json (normalmente en $env:POSH_THEMES_PATH/zash.omp.json) y actualiza la línea de tu perfil de PowerShell a:

oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH/zash.omp.json" | Invoke-Expression

ACTUALIZACIÓN: Si has instalado Oh My Posh por medio de Winget, los temas no son descargados como archivos, sin embargo, puedes hacer referencia al tema al indicar el nombre del tema en la configuración, sin incluir la extensión.

oh-my-posh init pwsh --config "zash" | Invoke-Expression

Guarda y recarga:

. $PROFILE

¡Disfruta tu nuevo look!

Tema zash de Oh My Posh

Si quieres volver al tema predeterminado, solo usa:

oh-my-posh init pwsh | Invoke-Expression

🔝 Sube de nivel instalando estos módulos y apps

📦 PSReadLine

Si estás en Windows y quieres disfrutar funciones comunes en bash (como resaltado de sintaxis, búsqueda en el historial y personalización de teclas), PSReadLine es para ti. Mejora la edición de la línea de comandos en PowerShell para que sea más interactiva y amigable.

Instala la versión pre-release (más funciones, puede tener bugs):

Install-Module PSReadLine -AllowPrerelease -Force

O la versión estable:

Install-Module PSReadLine

Luego edita tu perfil de PowerShell:

code $PROFILE

Agrega al inicio de tu perfil:

Import-Module PSReadLine
Set-PSReadLineKeyHandler -Key UpArrow -Function HistorySearchBackward
Set-PSReadLineKeyHandler -Key DownArrow -Function HistorySearchForward
Set-PSReadLineKeyHandler -Key Tab -Function Complete

Guarda y recarga:

. $PROFILE

Los beneficios de esta configuración incluyen:

  • Resaltado de sintaxis para comandos y argumentos
  • Historial de comandos y autocompletado con Tab
  • Atajos de teclado configurables
  • Búsqueda en el historial con flechas arriba/abajo, respetando el texto que ya escribiste
  • Ctrl + arrow keys para moverte por palabras
  • Ctrl + L para limpiar la pantalla

Revisa los key bindings con:

Get-PSReadLineKeyHandler

Documentación oficial en el repo de PSReadLine en GitHub➡

📦 winfetch

winfetch es un script de PowerShell que muestra información del sistema (SO, software, hardware) de forma bonita y agradable.

Para instalar:

Install-Script winfetch

Confirma ambos mensajes presionando Y. Una vez instalado, ejecuta:

winfetch

winfetch

Más info en el repo de winfetch en GitHub ➡

📦 bat

bat es un clon de cat que agrega resaltado de sintaxis e integración con Git.

Instálalo con:

winget install sharkdp.bat

bat

En Windows, instala less también para paginar:

winget install jftuga.less

Uso y detalles en el repo de bat en GitHub ➡ y en el repo de less-Windows ➡.

📦 eza

eza es una alternativa moderna a ls con colores, metadata, reconocimiento de symlinks y soporte para estado de Git.

Instálalo con:

winget install eza-community.eza

Abre una nueva pestaña de PowerShell para empezar a usarlo.

eza

Mira opciones y docs en el repo de eza en GitHub➡.


¡Felicidades! Ahora tienes una terminal que no solo es potente, sino también con mucho estilo. ¿Quién diría que algo tan simple podría mejorar tanto tu experiencia diaria?

Tip Jugar con tu entorno de trabajo se trata de sentirte cómodo y feliz mientras creas.

Cada pequeño ajuste es un paso hacia un flujo de trabajo más fluido y agradable. ¡Sigue explorando nuevos temas, combinaciones y herramientas!


¿Los íconos aparecen como cuadros o no se muestran? Asegúrate de haber seleccionado la Nerd Font en todas tus terminales. A veces necesitas cerrar por completo y volver a abrir las apps para que la fuente se aplique.

¿No puedes ejecutar scripts? Asegúrate de haber cambiado la política de ejecución con Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Force y de estar usando PowerShell, no CMD ni Windows PowerShell. Las instalaciones a nivel sistema pueden requerir permisos de administrador.

¿El prompt no cambia después de la configuración? Verifica que el comando de Oh My Posh esté al final de tu archivo $PROFILE y que hayas recargado tu perfil (. $PROFILE). Si editaste tu perfil pero no ves cambios, ejecuta . $PROFILE manualmente.


Foto de Sunny Hassan en Unsplash