No sé ustedes, pero personalmente suelo tener varios terminales abiertos, cada uno con su propia temática: bash, zsh, tutorial en curso, PowerShell (sí, lo sé, PowerShell en Linux, vamos, abucheenme :D).
Y en términos de organización, me gusta que cada uno lleve un nombre evocador. Es simple, no buscas durante 3 horas la ventana correcta: sabes de un vistazo dónde te encuentras.
Pero aquí está el problema: la aplicación de terminal predeterminada en Ubuntu Gnome no lo permite / ya no. Puedes personalizar tu fondo de pantalla, incluso poner un GIF animado (¡genial!), ¿pero renombrar tu ventana? No es posible.
Y como me niego a darme por vencido, permítanme darles mi pequeño truco para resolver esto. Como habrás adivinado, en este tutorial, responderé la siguiente pregunta: ¿cómo renombrar tu terminal en Linux?
Requisitos Previos
Terminal bash (distribución Linux o WSL)
Usar el terminal Mate
La primera opción sería cambiar de terminal. Podemos instalar Terminal Mate en Ubuntu, que permite renombrar nuestra ventana de forma nativa.
Para instalarlo:
sudo apt install mate-terminal -y
Nota: El -y
te permite evitar dar tu confirmación antes de instalar los paquetes.
Como puedes ver, no puede ser más simple: haz clic en el menú Terminal, luego en Cambiar el título. ¡Y funciona!
Por cierto, todavía no entiendo por qué, en Gnome, esta característica tan práctica (incluso indispensable) simplemente desapareció del terminal. Si alguien tiene una explicación, estoy interesado.
Ahora, déjame confesarte algo: me encanta usar mi terminal con un pequeño toque de transparencia. Es práctico cuando pasas tu tiempo cambiando entre la documentación y el terminal en el portátil, y luego puede impresionar a tus vecinos en el tren :D.
Y la cuestión es que nunca logré que la transparencia funcionara correctamente con el terminal Mate: es una noche de discoteca, parpadea por todas partes, duele a los ojos y, sobre todo, es inutilizable. Y esto, simplemente no es factible.
Así que volví a mi terminal Gnome predeterminado y el problema sigue ahí. Entonces, me orienté hacia la segunda solución: crear una función personalizada en mi perfil bash.
Crear una Función Personalizada para Cambiar el Nombre de la Terminal
Así que creé una función de unas pocas líneas que me permite cambiar fácil y rápidamente el nombre de mi terminal. Y para que sea persistente, agregué esta función a mi perfil de usuario. ¿Cómo?
Editando el archivo /home/<user>/.bashrc
:
vim ~/.bashrc
Luego agregué las siguientes líneas en este archivo para crear la función set-title:
# Función para cambiar el título de la ventana del terminal
function set-title() {
if [[ -z "$ORIG" ]]; then
ORIG=$PS1
fi
TITLE="\[\e]2;$*\a\]"
PS1=${ORIG}${TITLE}
}
Probémoslo en una nueva terminal, escribiendo set-title
, seguido de una cadena de caracteres:
set-title Hola
set-title Este es un gran título
Como puedes ver, no solo funciona, sino que además tiene en cuenta los espacios:
Ahora un poco de explicación:
- La variable
$PS1
es una variable de entorno y corresponde a tu entorno bash en Linux. $*
corresponde a todos los argumentos ingresados. Es decir, mediante$*
capturamos todo lo que se ingresa después de la llamada a nuestra función, es decir, después deset-title
.
Bien. Si desarrollamos nuestra función paso a paso, esto es lo que obtenemos:
- Comenzamos recuperando el contenido de la variable $PS1 y lo almacenamos en $ORIG, por si acaso.
- Luego creamos una nueva variable $TITLE con las entradas ingresadas en el teclado (todo lo que hay después del set-title), luego reescribimos el contenido de $PS1, inyectando en él $ORIG (el indicador actual) + $TITLE (el nombre del ventana).
Y ahí me preguntas por qué funciona. ¿Cómo funciona la magia?
Miremos más de cerca la variable TITLE
, que podríamos descomponer en tres secciones:
[\e]2;
$*
\a
Ya hemos visto lo que hace $*. En cuanto a las otras dos secciones, son interpretadas por el controlador del terminal. Al ver pasar el código [\e]2;
, tu terminal sabe que agregará todo lo que haya entre eso y \a
en el título del terminal.
Bastante bueno, ¿no?
Conclusión
Tal como está, deberás ejecutar esta función cada vez que desees cambiar el nombre del terminal, la modificación no se realiza automáticamente.
Para que puedas usar esta función, primero necesitas cargar (source
) el archivo .bashrc
para que las definiciones de funciones y variables se hagan disponibles en tu sesión actual de terminal. El comando es source ~/.bashrc
. O, podrías aplicar lo siguiente:
nano ~/.bash_profile
#Agrega la línea para cargar
source ~/.bashrc
Ahora, el archivo ~/.bashrc
se cargará automáticamente cada vez que inicies una nueva sesión de terminal. Esto asegurará que todas las configuraciones y funciones definidas en ~/.bashrc
, incluida tu función set-title
, estén disponibles en cada sesión de terminal que inicies.
No dudes en decirme en los comentarios si deseas ver otras personalizaciones del entorno bash.
¿Qué te parece?
Es bueno conocer tu opinión. Deja un comentario.