
Mate Terminal es el emulador de terminal oficial para el entorno de escritorio MATE.
MATE Terminal es el emulador de terminal oficial del entorno de escritorio MATE. Su función es proporcionar una ventana gráfica desde la que puedes interactuar con un shell de Unix/Linux, como bash, zsh, fish, etc. MATE Terminal es un fork histórico de GNOME Terminal y mantiene una arquitectura bastante clásica y modular. MMATEwiki+1
Una distinción muy importante es esta:
MATE Terminal no es el shell.
MATE Terminal es la aplicación que crea la ventana, gestiona pestañas, menús, perfiles, colores, fuentes, etc. La parte que realmente emula el terminal se basa en VTE (Virtual Terminal Emulator). GGitHub+1
Por ejemplo, cuando abres:
mate-terminal
la cadena conceptual es aproximadamente:
MATE Terminal
│
├── Ventana GTK
│
├── Pestaña / Terminal
│ │
│ └── VTE
│ │
│ └── PTY
│ │
│ └── Shell
│ │
│ └── bash / zsh / fish...
│
└── Perfil / configuración
Esto permite entender bastante bien qué hace cada componente.
1. Terminal emulator ≠ shell
Esta es probablemente la cuestión más importante para entender MATE Terminal.
Supongamos que ejecutas:
ls -lah
MATE Terminal no interpreta ls.
Lo que sucede es aproximadamente:
- MATE Terminal crea una sesión de terminal.
- Esa sesión utiliza VTE para representar el terminal virtual.
- Se crea un PTY (pseudo-terminal).
- Se inicia el shell configurado para tu usuario.
- El shell recibe:
ls -lah
- El shell localiza y ejecuta
/usr/bin/ls. lsproduce texto.- Ese texto vuelve a través del PTY.
- VTE interpreta las secuencias de terminal y las dibuja.
- MATE Terminal presenta el resultado en la ventana.
Por eso puedes cambiar:
bash
por:
zsh
o:
fish
sin necesidad de cambiar de emulador de terminal.
MATE Terminal simplemente proporciona el entorno gráfico donde funciona ese shell.
2. ¿Qué significa "emular un terminal"?
Originalmente, un terminal era un dispositivo físico conectado a un ordenador central.
Por ejemplo, terminales como:
- VT100
- VT220
- xterm
tenían una serie de capacidades y protocolos para representar texto, mover el cursor, cambiar colores, borrar regiones de pantalla, etc.
MATE Terminal emula ese comportamiento.
El propio proyecto de MATE indica que MATE Terminal permite ejecutar aplicaciones diseñadas para terminales como VT102, VT220 y xterm. MMATE
Por ejemplo, cuando ejecutas:
printf '\033[31mHola\033[0m\n'
el programa no está diciendo directamente:
"pinta esto de rojo en una ventana GTK".
Está enviando una secuencia de escape ANSI/VT.
VTE interpreta esa secuencia y MATE Terminal termina mostrando:
Hola
en rojo.
Esto es fundamental para entender por qué funcionan programas como:
htop
vim
nano
tmux
less
top
mc
ssh
etc.
3. VTE: el motor que está "debajo"
Una de las características arquitectónicas más interesantes de MATE Terminal es que la emulación propiamente dicha no está implementada íntegramente en MATE Terminal.
El proyecto explica explícitamente que mate-terminal proporciona principalmente la "carcasa" de la aplicación —menús, preferencias, ventanas, etc.— mientras que la emulación terminal procede del widget VTE. GGitHub
VTE significa:
Virtual Terminal Emulator
y es una biblioteca/widget para aplicaciones GTK. GGitHub
Esto separa responsabilidades:
MATE Terminal
│
┌──────────────┼──────────────┐
│ │ │
ventanas perfiles menús
│ │ │
└──────────────┼──────────────┘
│
VTE
│
terminal
emulator
│
PTY
│
shell
Esta arquitectura también explica por qué muchas características de terminal son compartidas conceptualmente con otros terminales GTK que utilizan VTE.
4. Pestañas
Una de las características más prácticas es poder tener varios terminales dentro de una misma ventana.
Por ejemplo:
┌──────────────────────────────────────────────────────┐
│ [Servidor] [Código] [Logs] [+] │
├──────────────────────────────────────────────────────┤
│ │
│ $ ssh servidor │
│ │
│ │
└──────────────────────────────────────────────────────┘
Cada pestaña representa una sesión de terminal independiente.
Puedes tener:
Pestaña 1 → bash → ~/proyecto
Pestaña 2 → ssh servidor
Pestaña 3 → tail -f /var/log/...
Pestaña 4 → htop
MATE documenta explícitamente la posibilidad de abrir múltiples terminales dentro de una sola ventana mediante pestañas. MMATE+1
También puedes combinar pestañas y ventanas:
Ventana 1
├── Tab 1
├── Tab 2
└── Tab 3
Ventana 2
├── Tab 1
└── Tab 2
5. Perfiles: una de sus características más interesantes
MATE Terminal utiliza un sistema de perfiles.
La idea es que no tengas que configurar individualmente cada terminal.
Puedes crear, por ejemplo:
Perfil "Normal"
Perfil "Root"
Perfil "Servidor"
Perfil "Programación"
Perfil "Logs"
Cada perfil puede definir diferentes características visuales y de comportamiento.
El proyecto describe precisamente el funcionamiento de MATE Terminal alrededor de estos perfiles: la configuración del terminal se almacena en perfiles y el diálogo de preferencias modifica el perfil seleccionado. GGitHub
Por ejemplo:
Perfil normal
Fondo: negro
Texto: gris claro
Fuente: Monospace 11
Cursor: bloque
Perfil servidor
Fondo: azul oscuro
Texto: blanco
Fuente: Monospace 11
Perfil root
Fondo: rojo oscuro
Texto: blanco
Esto último puede ser particularmente útil para diferenciar visualmente:
usuario@pc
de:
root@pc
y evitar cometer errores trabajando como administrador.
6. Personalización visual
MATE Terminal permite modificar considerablemente su apariencia.
Entre las configuraciones importantes están:
- fuente;
- tamaño de fuente;
- colores;
- color de fondo;
- color del texto;
- cursor;
- desplazamiento;
- transparencia;
- título;
- comportamiento de la terminal;
- perfiles.
La documentación oficial de MATE destaca específicamente el soporte de fondos transparentes, pestañas y configuración mediante perfiles. MMATE
Por ejemplo:
┌──────────────────────────────┐
│ $ neofetch │
│ │
│ OS: Linux │
│ DE: MATE │
│ Terminal: MATE Terminal │
└──────────────────────────────┘
Puedes hacer que el fondo sea semitransparente para que se vea parcialmente el escritorio.
7. Zoom
MATE Terminal también permite modificar el tamaño de visualización del terminal.
Internamente existe incluso una opción:
--zoom=ZOOM
donde:
1.0 = tamaño normal
según la documentación de la aplicación. MMATEwiki+1
Esto es diferente de cambiar permanentemente la fuente del perfil.
Es útil, por ejemplo, para:
- presentaciones;
- trabajar temporalmente con una fuente grande;
- leer logs;
- reducir el tamaño para mostrar más información.
8. Directorio de trabajo
Puedes indicarle a MATE Terminal en qué directorio debe iniciar una terminal.
Por ejemplo:
mate-terminal --working-directory=/home/usuario/proyecto
Esto significa que el shell comenzará en:
/home/usuario/proyecto
en lugar del directorio predeterminado.
La opción está documentada oficialmente como:
--working-directory=DIRNAME
7. Zoom
MATE Terminal también permite modificar el tamaño de visualización del terminal.
1.0 = tamaño normal
según la documentación de la aplicación.
Es útil, por ejemplo, para:
- presentaciones;
- trabajar temporalmente con una fuente grande;
- leer logs;
- reducir el tamaño para mostrar más información.
Esto resulta muy útil para crear lanzadores específicos para proyectos.
9. Ejecutar comandos automáticamente
MATE Terminal puede utilizarse también para abrir una terminal y ejecutar un comando.
Por ejemplo:
mate-terminal --command="htop"
o utilizando:
mate-terminal -x htop
La interfaz de línea de comandos proporciona tanto --command/-e como --execute/-x. MMATEwiki
Esto permite crear lanzadores del tipo:
"Monitor del sistema"
↓
mate-terminal -x htop
o:
"Logs del servidor"
↓
mate-terminal -x tail -f /var/log/syslog
10. Control mediante línea de comandos
MATE Terminal tiene una interfaz de línea de comandos bastante completa.
Por ejemplo:
mate-terminal --help
muestra las opciones disponibles.
Hay opciones para:
- crear ventanas;
- crear pestañas; seleccionando "caracteres de un archivo"; útil para conexiones remotas puedes hacer
- elegir perfiles;
- definir títulos;
- elegir directorios;
- ejecutar comandos;
- cambiar zoom;
- mostrar/ocultar la barra de menú;
- maximizar;
- pantalla completa;
- definir geometría;
- seleccionar la pestaña activa.
La documentación oficial lista, por ejemplo: --window, --tab, --profile, --title, --working-directory, --zoom, --maximize y --full-screen. MMATEwiki
11. Ventanas
Además de pestañas, puedes trabajar con varias ventanas independientes:
┌───────────────┐ ┌───────────────┐
│ Terminal 1 │ │ Terminal 2 │
│ │ │ │
│ $ vim main.c │ │ $ make │
│ │ │ │
└───────────────┘ └───────────────┘
Puedes incluso controlar la geometría mediante:
mate-terminal --geometry=80x24
La sintaxis permite especificar columnas, filas y posición de la ventana. MMATEwiki+1
12. Pantalla completa
También puede funcionar en pantalla completa:
mate-terminal --full-screen
Esto resulta especialmente cómodo cuando trabajas con:
vim
tmux
htop
mc
o cualquier aplicación de terminal que necesite mucho espacio vertical/horizontal.
También existe:
mate-terminal --maximize
para iniciar la ventana maximizada. MMATEwiki
13. Copiar y pegar
MATE Terminal trabaja con el portapapeles del entorno gráfico y permite copiar texto seleccionado y pegarlo en la terminal.
Hay una peculiaridad importante en los terminales Linux:
Ctrl+C
normalmente no significa copiar.
En una terminal significa enviar una señal de interrupción al proceso.
Por eso, tradicionalmente, para copiar/pegar se utilizan:
Ctrl+Shift+C
Ctrl+Shift+V
Esto permite hacer cosas como:
sudo apt install paquete
copiar el comando desde un navegador y pegarlo en MATE Terminal.
14. Selección de texto
Cuando seleccionas texto dentro del terminal, MATE Terminal puede trabajar con él como texto normal.
Esto es importante porque la terminal no funciona como un editor de texto tradicional.
Por ejemplo, el contenido:
usuario@equipo:~/proyecto$ ls -la
total 32
drwxr-xr-x 4 usuario usuario 4096 ...
es generado por un proceso y mostrado por VTE.
Puedes seleccionar:
usuario@equipo:~/proyecto$ ls -la
y copiarlo.
No estás seleccionando "caracteres de un archivo"; estás seleccionando la representación gráfica del terminal.
15. Hipervínculos y URLs
MATE Terminal también puede reconocer direcciones URL y permitir interactuar con ellas.
Por ejemplo:
https://www.example.com
puede detectarse como una dirección y abrirse desde el terminal. MATE destaca explícitamente esta capacidad. MMATE
Esto es particularmente útil cuando un programa imprime:
Documentation:
https://...
o cuando una herramienta muestra un enlace para acceder a un servicio web.
16. Scrollback
La terminal necesita conservar una cantidad de texto anterior para que puedas desplazarte hacia arriba.
Por ejemplo:
┌──────────────────────────┐
│ línea 800 │
│ línea 801 │
│ línea 802 │
│ línea 803 │
│ línea 804 │
├──────────────────────────┤
│ $ │
└──────────────────────────┘
Puedes subir y revisar lo que ocurrió anteriormente.
Esto es especialmente útil con:
make
gcc ...
apt ...
journalctl
etc.
La configuración del comportamiento de desplazamiento forma parte del sistema de perfiles.
17. Compatibilidad con programas de terminal
Aquí aparece otra ventaja importante de utilizar VTE.
Aplicaciones como:
vim
nano
less
top
htop
tmux
ssh
mc
no necesitan saber que estás utilizando MATE Terminal.
Ellas creen que están hablando con un terminal compatible con determinados estándares.
Por ejemplo:
vim
│
├── stdin
├── stdout
├── stderr
└── secuencias ANSI/VT
↓
PTY
↓
VTE
↓
MATE Terminal
Eso es exactamente lo que hace posible que un programa de consola tenga colores, menús, cursor, movimiento por la pantalla, ventanas internas, etc.
18. ¿Qué es un PTY?
Esta parte es bastante interesante si quieres comprender MATE Terminal a nivel técnico.
PTY significa:
Pseudo-Terminal
Es un mecanismo del kernel que proporciona una pareja:
PTY master
PTY slave
Conceptualmente:
MATE Terminal
│
│ lee/escribe
▼
PTY master
│
│
PTY slave
│
▼
shell
│
▼
comandos
El shell piensa que está conectado a un terminal real.
Por eso, si ejecutas:
tty
puedes obtener algo como:
/dev/pts/0
En otra pestaña podrías obtener:
/dev/pts/1
Eso significa que cada sesión tiene su propio pseudo-terminal.
19. ¿Qué ocurre al abrir una nueva pestaña?
Supongamos:
mate-terminal
y después:
Ctrl+Shift+T
La nueva pestaña no es simplemente "otra vista" de la misma terminal.
Conceptualmente tienes:
Ventana
│
├── Pestaña A
│ ├── VTE
│ ├── PTY
│ └── shell A
│
└── Pestaña B
├── VTE
├── PTY
└── shell B
Por eso puedes hacer:
Tab A → cd ~/proyecto
Tab B → cd /var/log
sin que una cambie el directorio de la otra.
20. Gestión de sesiones
MATE Terminal también tiene una cierta integración con la gestión de sesiones del escritorio.
El proyecto distingue entre:
Perfil
Define cómo debe comportarse y verse el terminal.
Sesión
Guarda información relacionada con las ventanas/pestañas abiertas y sus perfiles.
El README del proyecto explica precisamente esta separación entre Profiles y Session. GGitHub
Es importante no confundir esto con programas como tmux.
Por ejemplo:
MATE session management
y:
tmux
son cosas diferentes.
tmux está diseñado para mantener sesiones de terminal y procesos incluso después de desconectar el cliente, mientras que la gestión de sesiones de MATE Terminal pertenece al entorno gráfico y al estado de la aplicación.
21. Integración con MATE
MATE Terminal no es un terminal genérico elegido arbitrariamente para MATE: forma parte del conjunto de aplicaciones del escritorio.
El ecosistema MATE incluye, entre otras:
Caja → administrador de archivos
Pluma → editor de texto
Atril → visor de documentos
Engrampa → gestor de archivos comprimidos
MATE Terminal → terminal
MATE presenta oficialmente Terminal como su aplicación de emulación de terminal para acceder al shell Unix dentro del entorno MATE. MMATE
Esto permite que la aplicación siga la filosofía general de MATE:
Además de pestañas, puedes trabajar con varias ventanas independientes:
┌───────────────┐ ┌───────────────┐
│ Terminal 1 │ │ Terminal 2 │
│ │ │ │
│ $ vim main.c │ │ $ make │
│ │ │ │
└───────────────┘ └───────────────┘
mate-terminal --geometry=80x24
- integración con GTK;
- configuración coherente;
- menús tradicionales;
- perfiles;
- integración con el escritorio;
- bajo nivel de complejidad visual.
22. GTK
MATE Terminal es una aplicación basada en GTK.
Esto significa que la interfaz gráfica —ventanas, menús, diálogos, botones, etc.— se integra con el toolkit utilizado por MATE.
Pero nuevamente:
GTK
↓
interfaz gráfica
VTE
↓
emulación del terminal
PTY
↓
comunicación con el proceso
Shell
↓
interpretación de comandos
Son capas diferentes.
23. ¿Es un terminal "potente"?
Depende de qué entendamos por potente.
MATE Terminal está deliberadamente orientado a ser un terminal tradicional, sencillo y bien integrado, en lugar de intentar convertirse en una estación de trabajo llena de funciones adicionales.
Su conjunto principal de capacidades es:
- múltiples ventanas;
- múltiples pestañas;
- perfiles;
- personalización de colores;
- fuentes;
- transparencia;
- zoom;
- ejecución de comandos;
- directorios de trabajo;
- pantalla completa;
- enlaces;
- integración GTK/MATE;
- compatibilidad mediante VTE;
- opciones de línea de comandos.
La documentación oficial y el código del proyecto reflejan precisamente esa filosofía. MMATEwiki+1
24. Algo que NO hace MATE Terminal
Es importante distinguirlo de terminales modernos que incorporan funcionalidades adicionales.
MATE Terminal no pretende ser:
un IDE
un gestor SSH
un multiplexor
un shell
un editor
un administrador de servidores
Por ejemplo, para conexiones remotas puedes hacer:
ssh usuario@servidor
pero el soporte SSH lo proporciona:
OpenSSH
no MATE Terminal.
De igual manera:
tmux
es quien proporciona el multiplexado de sesiones.
Y:
bash
es quien interpreta los comandos.
25. Un ejemplo completo
Imagina que abres MATE Terminal y escribes:
ssh usuario@192.168.1.100
La arquitectura sería aproximadamente:
┌─────────────────────────────────────┐
│ MATE Terminal │
│ │
│ ┌─────────────────────────────┐ │
│ │ VTE │ │
│ │ │ │
│ │ $ ssh usuario@192.168.1.100 │ │
│ │ │ │
│ └──────────────┬──────────────┘ │
└──────────────────┼──────────────────┘
│
PTY
│
shell
│
ssh
│
red / TCP
│
▼
servidor remoto
MATE Terminal se ocupa principalmente de presentar e interactuar con el terminal.
ssh se ocupa de la conexión.
El shell se ocupa de interpretar los comandos.
El kernel proporciona el PTY.
VTE se ocupa de la emulación.
26. Opciones interesantes de mate-terminal
Puedes explorar todas las opciones con:
mate-terminal --help-all
y específicamente:
mate-terminal --help-terminal
mate-terminal --help-window-options
mate-terminal --help-terminal-options
Entre las opciones oficiales encontramos:
--window
--tab
--profile=PROFILE-NAME
--title=TITLE
--working-directory=DIRNAME
--zoom=ZOOM
--maximize
--full-screen
--show-menubar
--hide-menubar
--geometry=GEOMETRY
además de las opciones para ejecutar comandos. MMATEwiki
27. Una característica interesante: títulos
Puedes establecer el título desde la línea de comandos:
mate-terminal --title="Servidor de producción"
Esto resulta muy práctico cuando tienes varias ventanas abiertas.
Puedes terminar teniendo:
┌──────────────────────┐
│ Servidor producción │
└──────────────────────┘
┌──────────────────────┐
│ Desarrollo │
└──────────────────────┘
┌──────────────────────┐
│ Logs │
└──────────────────────┘
Además, versiones recientes del proyecto han incorporado mejoras relacionadas con los títulos de las pestañas; por ejemplo, la rama 1.27.1 añadió la posibilidad de establecer el título mediante doble clic sobre la pestaña. GGitHub
28. Su relación con GNOME Terminal
MATE Terminal tiene un origen bastante claro:
GNOME Terminal
│
│ fork
▼
MATE Terminal
El propio proyecto lo describe como un fork de GNOME Terminal. GGitHub
Esto es importante históricamente porque explica muchas semejanzas entre ambos.
Sin embargo, MATE Terminal está mantenido como parte del ecosistema MATE y está diseñado para integrarse con él.
29. MATE Terminal frente a otros terminales
Conceptualmente podríamos comparar:
Terminal
Filosofía
MATE Terminal
Tradicional, integrado con MATE
GNOME Terminal
Integrado con GNOME
Konsole
Integrado con KDE
XTerm
Minimalista y clásico
Alacritty
Orientado a rendimiento/renderizado moderno
Kitty
Muy avanzado y extensible
Tilix
Terminal GTK con enfoque en paneles/división
Terminator
Multiplexado visual de terminales
MATE Terminal destaca especialmente si quieres:
un terminal clásico, sencillo, configurable y perfectamente integrado con MATE.
30. En resumen: las capas
Si quieres quedarte con un modelo mental preciso, piensa en MATE Terminal así:
ESCRITORIO MATE
│
▼
┌─────────────┐
│ MATE Terminal│
│ │
│ ventanas │
│ pestañas │
│ perfiles │
│ menús │
│ preferencias│
└──────┬──────┘
│
▼
┌─────────┐
│ VTE │
│ │
│ emula │
│ terminal│
└────┬────┘
│
▼
┌─────────┐
│ PTY │
└────┬────┘
│
▼
┌─────────┐
│ SHELL │
│ bash │
│ zsh │
│ fish │
└────┬────┘
│
▼
PROGRAMAS
ls / vim / ssh / etc.
En una frase: MATE Terminal es la interfaz gráfica y gestor de sesiones/pestañas/perfiles que pone delante de VTE; VTE proporciona la emulación del terminal, y detrás de ella existe un PTY conectado a un shell que finalmente ejecuta tus comandos. Esa separación es la clave para comprender cómo funciona realmente. GGitHub+1
Si quieres profundizar técnicamente, el siguiente nivel interesante es analizar qué ocurre exactamente desde que pulsas una tecla hasta que aparece un carácter en pantalla, incluyendo PTY → termios → shell → ANSI escape sequences → VTE → GTK, porque ahí se entiende de verdad cómo funciona un terminal Linux por dentro.

0 comments:
No insertes enlaces clicables, de lo contrario se eliminará el comentario. Si quieres ser advertido via email de los nuevos comentarios marca la casilla "Notificarme". Si te ayudé con la publicación o con las respuestas a los comentarios, compártelo en Facebook, Twitter, Tumblr, Google +, Pinterest o Instagram. Gracias.