58

Personaliza tu terminal en Windows

Como sabes la terminal en Windows carece de personalización por ende se ve muy soso o aburrido si la utilizas muy seguido ya sea en CMD.exe o en WSL (Windows Subsystem Linux), así que vamos a ver cómo agregarle un toque de tu personalidad.

Microsoft lanzó hace poco una terminal en la Microsoft Store donde puedes tener varias pestañas abiertas de una misma terminal o de varias, así que, si quieres abrir WSL, CMD o Power Shell ya no tienes que abrirlas por separado, además de que nos permite personalizarla fácilmente.

Veamos cómo instalarla:

  • Nos dirigimos a la Microsoft Store(1), buscamos “Terminal” luego le damos click a "Windows Terminal (Preview)(2) y lo instalamos(3):
    t1.png
  • Una vez instalada la abrimos(1) y nos aparecera como en la segunda imagen(2):
    t2.png
  • Listo ya tenemos instalada la nueva terminal, A simple vista no se ve un gran cambio pero en un momento lo pondremos todo cool. Lo importante es que ahora podemos abrir cualquier terminal que tengamos instalada en una sola ventana.
    t4.png

Ahora pasemos a lo divertido. ¡Personalicémosla!

Tenemos de que darle click en la flecha hacia abajo(1), como puedes ver ahí están todas las terminales que tengamos instaladas además de otras opciones como “Settings, Feedback, y About”, ahora tenemos que seleccionar “Settings”(2) para darle nuestro propio toque a cada terminal.

t3.png

Se abrirá un archivo JSON con la siguiente estructura:

/* 
To view the default settings, hold "alt" while clicking on the "Settings" button. 
For documentation on these settings, see: https://aka.ms/terminal-documentation
*/

{
  "$schema": "https://aka.ms/terminal-profiles-schema",

  "defaultProfile": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",

  "profiles":
  [
    {
      // Make changes here to the powershell.exe profile"guid": "{61c54bbd-c2c6-5271-96e7-009a87ff44bf}",
      "name": "Windows PowerShell",
      "commandline": "powershell.exe",
      "hidden": false
    },
    {
      // Make changes here to the cmd.exe profile"guid": "{0caa0dad-35be-5f56-a8ff-afceeeaa6101}",
      "name": "cmd",
      "commandline": "cmd.exe",
      "hidden": false
    },
    {
      "guid": "{c6eaf9f4-32a7-5fdc-b5cf-066e8a4b1e40}",
      "hidden": false,
      "name": "Ubuntu-18.04",
      "source": "Windows.Terminal.Wsl"
    },
    {
      "guid": "{46ca431a-3a87-5fb3-83cd-11ececc031d2}",
      "hidden": false,
      "name": "kali-linux",
      "source": "Windows.Terminal.Wsl"
    },
    {
      "guid": "{b453ae62-4e3d-5e58-b989-0a998ec441b8}",
      "hidden": false,
      "name": "Azure Cloud Shell",
      "source": "Windows.Terminal.Azure"
    }
  ],

  // Add custom color schemes to this array"schemes": [],

  // Add any keybinding overrides to this array.// To unbind a default keybinding, set the command to "unbound""keybindings": []
}

No te espantes, si ya tomaste el curso esto no es nada, es muy simple. Veamos para qué sirve cada propiedad:

  • $schema:

    Se refiere a cuál será el schema que tendrá la terminal, aquí estará la dirección hacia el archivo de dicho schema que le dará funcionalidad a toda la Windows Terminal (Preview).

    Si te diriges al enlace encontrarás las especificaciones de cada una de las propiedades que están en el archivo o que se le pueden añadir, junto con lo valores que se le pueden dar. Cada uno tiene una descripción donde dice cuál es la función de dicha propiedad.

  • defaultProfile:

    Es el perfil principal que aparecerá cuando abras la Windows Terminal (Preview), el valor de la propiedad es el identificador del perfil que quieres como principal.

    Nota: Windows Terminal (Preview) maneja las terminales previamente instaladas como perfiles diferentes. Por ejemplo, si tienes instalado Kali Linux y Ubuntu como en mi caso, aunque ambas son WSL las separará en dos perfiles diferentes.

  • profiles:

    Aquí estarán todos lo perfiles como objetos dentro de un array, es decir, cada una de nuestras terminales que tengamos instaladas. Si no aparece alguna de nuestras terminales la podemos agregar creando otro objeto dentro del array. Cada objeto tiene cuatro propiedades por defecto, pero le podemos agregar más para poder personalizar cada una por separado no necesariamente todas tienen que tener el mismo tema.

    • guid:

      Es es el identificador único de cada perfil, también se puede utilizar para seleccionar nuestro perfil principal como se mencionó anteriormente. Te reto a que coloques el perfil de tu preferencia como principal.

    • name:

      Es el nombre que aparecerá en el menú desplegable justo donde está la opción de configuración.

    • commandline:

      Aquí estará el nombre del archivo ejecutable de la terminal que queremos que se abra al seleccionar dicho perfil.

    • hidden:

      Escogemos si queremos que se muestre o no en el menú desplegable. Tiene que ser un valor booleano osea “true” o “false”, sin comillas.

    • source:

      Es muy parecido a commandline pero la diferencia es que aquí no va ningun archivo ejecutable sino el perfil generado que originó este perfil. Lo sé es confuso, por el momento estamos bien sabiendo que Windows Terminal (Preview) nos lo genera automáticamente.

  • schemes:

    No confundir con $schema. Es un array de objetos donde cada objeto representa un tema para la terminal, ya sea por defecto o personalizado.

    • name:

      Es el nombre que le daremos al tema, se usará para seleccionarlo posteriormente

    • background:

      Será el color de fondo que ocuparemos para este tema. El valor es hexadecimal.

    • foreground:

      Será el color de las letras del tema. El valor es hexadecimal.

    • selectionBackground:

      Será el color de selección del tema. El valor es hexadecimal.

    Nota: Se pueden agregar más propiedades como las siguientes: “black, blue, brightBlack, brightBlue, brightCyan, brightGreen, brightPurple, brightRed, brightWhite, brightYellow, cyan, green, purple, red, white, yellow”. Todas con el valor en hexadecimal.

  • keybindings:

    Es un array de objetos donde cada objeto representa un atajo del teclado.

    • command:

      El comando para el atajo de teclado que se ejecutará al presionar cierta combinación de teclas. Nosotros podemos elegir qué teclas serán.

      Los comandos pueden ser los siguientes: “closeTab”, “closeWindow”, “copy”, “decreaseFontSize”, “duplicateTab”, “increaseFontSize”, “newTab”, “nextTab”, “openSettings”, “paste”, “prevTab”, “scrollDown”, “scrollUp”, “splitHorizontal”, “splitVertical”, “splitPane”, “toggleFullscreen”.

      Y esos no son todos, puedes buscar más en el enlace que viene en el $schema.

    • keys:

      Aquí irá la combinación de teclas que ocuparemos. Estas siempre deben comenzar por “ctrl, shift o alt” seguido de “+” y luego de la tecla siguiente a ocupar.

¡Genial!, Hasta ahora hemos visto las propiedades que aparecen por defecto y para qué sirve cada una junto a unas extras. Hemos aprendido a colocar un perfil como principal, hacer temas de colores y atajos de teclado personalizados.

Pero me preguntaras: ¿Eso es todo? No, eso no es todo vayamos a la parte más emocionante, ya estamos por acabar. Pero antes veamos nuestro progreso.

12.png

Por el momento he configurado el tema que ves en la imagen. Pero, ¿Cómo le pongo el tema que cree? Es muy sencillo, agregamos la propiedad colorScheme al perfil que le queremos poner el tema y su valor será igual al valor que pusimos en name del objeto dentro de schemes.

Nota: Todas las propiedades que se mencionan adelante irán en el objeto del perfil que queramos personalizar.

{
  // Objeto del perfil"guid": "{46ca431a-3a87-5fb3-83cd-11ececc031d2}",
  "hidden": false,
  "name": "kali-linux",
  "source": "Windows.Terminal.Wsl",
  "colorScheme": "One Half Dark"
}

Ahora hagamos que el fondo sea transparente para eso usaremos las siguientes propiedades:
useAcrylic y acrylicOpacity, useAcrylic solo acepta valores booleanos true y false, y acrylicOpacity solo acepta valores del 0 al 1. Vamos a implementarlo de la siguiente manera:

{
  // Objeto del perfil"useAcrylic": true,
  "acrylicOpacity": 0.25
}

Y quedará de la siguiente manera:

16 (2).png

Pero, ¿Y si me gusta más una imagen de fondo? Muy sencillo, las propiedades a ocupar son las siguientes: backgroundImage, backgroundImageOpacity, backgroundImageStretchMode.

En backgroundImage pondremos la dirección de la imagen ya sea local o una url, en backgroundImageOpacity pondremos un valor entre 0 y 1, y en backgroundImageStretchMode pondremos algunos de estos valores: “fill”, “none”, “uniform” o “uniformToFill”. Vamos a implementarlo de la siguiente manera:

{
  // Objeto del perfil"backgroundImage": "dirección de la imagen",
  "backgroundImageOpacity": 0.5,
  "backgroundImageStretchMode": "uniformToFill",
}

Quedaría de la siguiente manera:

17.png

Si no te gusta que sea transparente solo pon la propiedad useAcrylic en false.

Ya casi acabamos, por último, vamos a cambiar los iconos de cada terminal y a decirle desde que directorio queremos que se abra dicha terminal.

Empecemos por cambiar los iconos, primero tenemos que tener descargados los iconos que vamos a ocupar, te recomiendo Icons8 para descargar los iconos que ocuparemos, solo busca “terminal” y escoge los que más te gusten. Te recomiendo que sean de 32 pixeles.

Una vez descargados tenemos que dirigirnos al siguiente directorio y colocamos ahí los iconos descargados: C:/Users/USUARIO_DEL_EQUIPO/AppData/Local/Packages/Microsoft.WindowsTerminal_8wekyb3d8bbwe/RoamingState/

Ahora usaremos la siguiente propiedad:

{
  // Objeto del perfil"icon": "ms-appdata:///roaming/NOMBRE_DEL_ARCHIVO"
}

Por último, solo falta configurar desde que directorio queremos que comience al abrir una terminal. Para eso colocamos lo siguiente:

{
  // Objeto del perfil"startingDirectory": "%USERPROFILE%/Desktop/Platzi/"
}

Y quedaría de la siguiente manera:

15.png

¡Excelente!, Hemos terminado.

Has aprendido a personalizar cualquier terminal que tengas en Windows. Por cierto, todavía hay opciones por explorar, como el tamaño de fuente, el tipo de fuente, el color del cursor, el padding de la terminal y otros cuantos.

Te invito a que juegues con las configuraciones y crees tus propios temas. Y si quieres ir otro paso adelante te invito a que leas el siguiente post de Platzi:

Cómo instalar zsh y oh-my-zsh en Windows 10 Creditos del post: dfloresdev

Spoiler: No solo funciona con Windows.

Y recuerda Nunca Pares de Aprender.

Escribe tu comentario
+ 2
Ordenar por:
11
22303Puntos

Muy buena guía:
2021-01-23_23h47_26.png

2
5752Puntos
un año

que nota! te quedo full 👍🏽

1
un año

¿Como hiciste para mostrar la hora en la parte superior? Me gusto mucho tu personalización!

1
5791Puntos
un año

@ArielScc X2 como hiciste esa personalización

9
7766Puntos

jajajaja muchas gracias, si antes me estaba sintiendo feliz por saber usar unos comandos ahora me siento increible por tener mi bash personalizada!!

Captura de pantalla (335).png
1
6280Puntos
un año

jajajaj entendí la referencia XD

4
6934Puntos

Muchas Gracias! aquí les dejo el resultado

Captura.PNG
2
7490Puntos

Muchas gracias amigo, ahora la experiencia de escribir en la terminal será más amena!

2
23470Puntos

Gracias por el pequeño tutorial, me sirvio bastante para aprender a personalizar mi Windows Terminal.

2
16894Puntos

Buen post, vamos a intentarlo.

1
6061Puntos

Ya no es necesario editar el .json. Se puede directo desde el menú de la terminal.

1
26736Puntos

Buen aporte, me sirvió bastante gracias.

1
44561Puntos

Gracias un tutorial demasiado broken 😁👍
Captura de pantalla 2021-06-10 215404.png

1
22967Puntos

Te quedo genial él tutorial, muchas gracias!

1
29222Puntos

Despues de mucho tiempo le perdí el miedo y dejé mi imágen favorita ❤️

terminal.jpg
1
24071Puntos

Alguien sabe como puedo hacer que los archivos y carpetas se vean de diferente color o estén resaltados para diferenciarlos por el color.

Quiero hacerlo en git-bash, No encontré una propiedad o algo que logre esto en windows terminal. Si sabes como hacerlo o si se puede, apreciaría la ayuda.

1
13341Puntos

Se ve bien, lastima que no se pueda configurar trasparente en lugar de translucido al igual que bash.
Untitled.png

0
9116Puntos

Ayuda. Le doy a _Settings _pero no abre 😥

0
43932Puntos
un año

Mándame un DM acá en Platzi o Twitter y en un fin de semana te ayudo. Claro si aún presentas el problema me tarde un poco 😁😅

0
21181Puntos
CaptureTerminal.PNG
0
5660Puntos
un año

¿Cómo haces que se vea la rama en la que estás trabajando?

0
15Puntos

Se puede hacer que la terminal de windows no pierda la transparencia cuando esta deja de ser la ventana actual activa??? Ya que si la terminal de windows tiene activado el acrylic cuando cambiamos de ventana esta pierde este aspecto visual y se pone como si no lo tuvieramos activado hasta regresar a esta…

0

Alguien sabe cómo personalizar la terminal Ubuntu en Windows?, le agradecería que me compartan sus conocimientos

1
43932Puntos
un año

Mándame un DM acá en Platzi o Twitter y en un fin de semana te ayudo. Si todavía te puedo ayudar en algo😁

0
29222Puntos

Miren que no me está dejando personalizar desde el archivo json original, de hecho no se muestra ningñun perfil. Pero le doy alt + settings y ahí si me da el archivo json que deja editar pero me sale son el perfil de ubuntu. O sea, debo crear el perfil de ubuntu?
Porque cuando lo intento modificar de esta manera como en el tutorial, no me deja y dice que la syntaxis está mal, o elimina el perfil de ubuntu por defecto. Ya me quedé sin ideas 😕

0
un año

Es en el perfil que quieres personalizar, talvez el error está en que olvidaste una coma

0
43932Puntos
un año

Se me olvido decir que si quieren usar linux (Ubuntu, Kali , Debian o las que estén disponibles en windows 10) tienen que instalarlo habilitando WSL para poder ocuparlos, tal vez por eso te sale error 😅