Personalizar el entorno de trabajo puede marcar una gran diferencia en la productividad y comodidad de un desarrollador. Una de las herramientas más populares para personalizar el prompt del terminal en Windows es Oh My Posh
. Esta herramienta permite añadir temas visuales atractivos y funcionales a PowerShell
y Windows Terminal
, mejorando no solo el aspecto visual, sino también la funcionalidad del terminal.
En este artículo, te guiaré paso a paso sobre cómo instalar y configurar Oh My Posh
en tu sistema Windows
, aprovechando al máximo las capacidades de PowerShell
y Windows Terminal
.
📜 Tabla de Contenido
- 💾 Instala PowerShell
- 💻 Configura Windows Terminal
- 🤖 Instala y configura Oh My Posh
- 🔝 Sube de nivel con estos módulos y aplicaciones
💾 Instala PowerShell
Windows 11
usa por defecto Windows PowerShell
la cual se encuentra basada en .Net Framework
, para hacer uso de Oh My Posh
debes instalar la versión de PowerShell
multiplataforma. Existen diversas formas de realizar la instalación, puedes obtenerlo desde la Tienda de Windows
➡ o por medio de WinGet
. Personalmente, prefiero hacer uso de Winget
.
winget install Microsoft.PowerShell -s winget
💻 Configura Windows Terminal
A partir de Windows 11 22H2
, la terminal por defecto es Windows Terminal
, si ya tienes instalada la terminal de Windows puedes continuar con el siguiente paso, de lo contrario, puedes obtenerla desde la Tienda de Windows
➡ o por medio de WinGet
.
winget install Microsoft.WindowsTerminal -s winget
Establece Windows Terminal como la aplicación de terminal por defecto
Una vez instalada la Terminal de Windows, puedes ingresar a las configuraciones haciendo clic derecho sobre un espacio en blanco de la barra de título de la terminal (no sobre la pestaña), o haciendo clic sobre la flecha hacia abajo (v) al lado de la última pestaña en la terminal y selecciona la opción Settings
, o presionando la combinación de teclas Ctrl + ,
En las configuraciones de la terminal escoge la sección Startup
. Del lado derecho en Default Profile
escoge PowerShell
. En Default Terminal Application
, escoge la opción Windows Terminal
. Haz clic en Save
.
A partir de este momento, utiliza la terminal de Windows con PowerShell
para ejecutar todas las instrucciones.
Configura la política de ejecución de scripts de PowerShell
PowerShell se encuentra configurado de manera predeterminada con políticas que permiten o restringen la ejecución de comandos o scripts. Para una computadora de escritorio con Windows tiene asignada la política Restricted
, la cual permite la ejecución de comandos individuales pero no permite scripts. En un Servidor de Windows la política RemoteSigned
permite la ejecución de scripts y comandos locales, sin embargo, requiere una firma digital para los scripts y configuraciones descargadas de internet.
En lo personal, la configuración RemoteSigned
ha sido más que suficiente para la mayoría de ocasiones. En PowerShell
ejecuta el siguiente comando.
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser -Force
Si el cambio de política se ejecuta de forma satisfactoria, no mostrará resultado alguno. Para poder visualizar el cambio, ejecuta el siguiente comando.
Get-ExecutionPolicy
El resultado esperado será
RemoteSigned
🤖 Instala y configura Oh My Posh
Oh My Posh
es un motor de temas para el indicador de cualquier shell, muy personalizable. Puedes obtener Oh My Posh
desde la Tienda de Windows
➡ o a través de WinGet
.
winget install JanDeDobbeleer.OhMyPosh -s winget
Una vez finalizada la instalación, para que el PATH
sea recargado, inicia una nueva pestaña de PowerShell
en la Terminal de Windows.
Instala una fuente
Oh My Posh
se encuentra diseñado para hacer uso de Nerd Fonts
. Nerd Fonts
consiste en fuentes populares con parches para incluir iconos, por lo que es necesario instalar una Nerd Font
para poder visualizar los diferentes iconos en Oh My Posh
.
Para instalar las fuentes a nivel de sistema, la siguiente instrucción debe ejecutarse en una nueva terminal como administrador.
oh-my-posh font install
Para instalar las fuentes a nivel de usuario, la instrucción a ejecutarse en una terminal sin privilegios de administrador es la siguiente:
oh-my-posh font install --user
Al ejecutar el comando, se desplegará una lista con diversas fuentes, Oh My Posh
recomienda la fuente Meslo
, la cual incluye la fuente Meslo LGM NF
.
Incluso puedes instalarla de forma directa.
oh-my-posh font install meslo
Puedes agregar el parámetro --user
al final para realizar la instalación únicamente para el usuario actual.
Configura Windows Terminal para usar una Nerd Font
Una vez instalada la Nerd Font
, debes configurar la Terminal de Windows
para utilizarla. Esto puede realizarse al modificar las configuraciones de la terminal. La combinación de teclas por defecto es Ctrl + Shift + ,
. Se abrirá en un editor el archivo settings.json
, agrega el atributo font.face
bajo el atributo defaults
en profiles
.
{
"profiles": {
"defaults": {
"font": {
"face": "MesloLGM Nerd Font"
}
}
}
}
Configura la terminal de Visual Studio Code para usar una Nerd Font
En Visual Studio Code
, es necesario configurar la terminal integrada para hacer uso de la Nerd Font. Esto puede realizarse ingresando a las configuraciones, la combinación de teclas por defecto es Ctrl + ,
. En la barra de búsqueda escribe Integrated: Font Family
o busca en las categorías Users > Features > Terminal
. Reemplaza el valor existente por "MesloLGM Nerd Font"
.
Configura PowerShell para hacer uso de Oh My Posh
Debido a que estaremos utilizando Oh My Posh
con PowerShell
, la configuración necesaria se debe realizar sobre el script del perfil. La ubicación del perfil se encuentra en la ruta de la variable $PROFILE
. Puedes editarlo haciendo uso de tu editor favorito.
code $PROFILE
Agrega la siguiente instrucción y guarda los cambios.
oh-my-posh init pwsh | Invoke-Expression
Una vez guardados los cambios, recarga el perfil para hacer efecto los cambios realizados.
. $PROFILE
El resultado será similar al siguiente:
Configura un tema
Al instalar Oh My Posh
, tienes acceso a algunos temas que se encuentran incluidos por defecto. Si deseas visualizar cada tema posible, puedes usar el siguiente comando.
Get-PoshThemes
Se mostrarán diversos estilos que puedes utilizar. Un ejemplo de todos los temas lo puedes encontrar en la [documentación de temas de Oh My Posh
➡.
Una vez hayas encontrado un tema que desees probar, procede a ubicar el nombre del archivo de configuración del tema, puedes ubicarlo al hacer Clic en el nombre del tema en la terminal o en la documentación de temas, el nombre del archivo finaliza con .omp.json
.
Por ejemplo, para configurar el tema minimalista zash
, el cual muestra únicamente el nombre del usuario, carpeta actual y rama de git activa en la carpeta, el archivo de configuración del tema corresponde a zash.omp.json
➡. Ese archivo se encuentra descargado en la ruta "$env:POSH_THEMES_PATH/zash.omp.json"
, por lo que en tu perfil de PowerShell
debes modificar la configuración de la siguiente manera.
oh-my-posh init pwsh --config "$env:POSH_THEMES_PATH/zash.omp.json" | Invoke-Expression
Una vez guardados los cambios, recarga el perfil para hacer efecto los cambios realizados.
. $PROFILE
El resultado será el siguiente:
Explora los diversos temas de Oh My Posh
y configura el que mejor se adecue a tus necesidades.
🔝 Sube de nivel instalando estos módulos y aplicaciones
📦 PSReadLine
Si usas Windows y quieres aprovechar algunas funciones típicas de bash, como el coloreado de sintaxis, la búsqueda en el historial y la personalización de teclas, te podría interesar PSReadLine
. Este módulo de PowerShell
trae una versión de readline con inspiración en bash
para Windows, mejorando la experiencia de edición en la línea de comandos de PowerShell
, haciéndola más interactiva y fácil de usar.
Para instalar PSReadLine
puedes ejecutar el siguiente comando para la versión pre-release, la cual normalmente tendrá más funcionalidades, sin embargo, puede contener algún bug. Personalmente, no he tenido inconvenientes con esta versión.
Install-Module PSReadLine -AllowPrerelease -Force
O puedes instalar la versión estable.
Install-Module PSReadLine
Una vez instalada, actualiza tu perfil para activar el módulo.
code $PROFILE
Coloca al inicio del archivo la siguiente configuración, guarda los cambios.
Import-Module PSReadLine
Set-PSReadLineOption -HistorySearchCursorMovesToEnd
Set-PSReadLineKeyHandler -Key UpArrow -Function HistorySearchBackward
Set-PSReadLineKeyHandler -Key DownArrow -Function HistorySearchForward
Set-PSReadLineKeyHandler -Key Tab -Function Complete
Una vez guardados los cambios, refresca tu perfil.
. $PROFILE
Con la configuración anterior tendrás PSReadLine
activo con los siguientes beneficios:
- Tu terminal tendrá colores de sintaxis para los comandos y sus argumentos.
- Historial y completado de comandos.
- Combinaciones de teclas configurables.
- El cursor se desplazará al final de la instrucción cuando navegas por el historial.
- Podrás navegar por el historial con las teclas del cursor arriba y abajo, es decir que si ya escribiste algún texto, buscará el texto ingresado mientras navegas en el historial.
- Presionando la tecla
Ctrl
y las teclas del cursor derecha o izquierda, puedes desplazarte por las palabras de la instrucción. - Presionando la combinación de teclas
Ctrl + l
puedes limpiar la pantalla de la terminal.
Puedes validar las combinaciones de teclas por defecto con el siguiente comando.
Get-PSReadLineKeyHandler
📦 Terminal-Icons
Terminal-Icons
es un módulo de PowerShell
que muestra íconos de archivos y carpetas al listar elementos en la terminal. Para funcionar, utiliza las fuentes personalizadas que ofrece Nerd Fonts
.
Para instalar Terminal-Icons
puedes ejecutar el siguiente comando:
Install-Module -Name Terminal-Icons -Repository PSGallery
Una vez instalada, actualiza tu perfil para activar el módulo.
code $PROFILE
Coloca la siguiente configuración posterior a PSReadLine
y antes de Oh My Posh
.
Import-Module -Name Terminal-Icons
Una vez guardados los cambios, refresca tu perfil.
. $PROFILE
Con la configuración anterior tendrás Terminal-Icons
activo. Prueba ejecutar el comando ls
.
📦 bat
bat
es un clon de cat
con resaltado de sintaxis e integración con Git
.
Puedes instalar bat
por medio de WinGet
.
winget install sharkdp.bat
💬 Comenta, ¿Qué otra herramienta consideras que deba agregar al listado?
Foto de Ashkan Forouzani en Unsplash