Un terminal es una aplicación en modo texto que emula una consola en un entorno de escritorio. Básicamente, es un programa GUI que actúa como contenedor o front-end y te permite ejecutar un shell y escribir órdenes o instrucciones con diferentes opciones o parámetros que el sistema operativo puede interpretar y ejecutar.
Y como cualquier otro programa o aplicación, puedes instalar, desinstalar y personalizar diferentes terminales. Existen muchos terminales excelentes como, por ejemplo, iTerm, Alacrity, Windows Terminal, Hyper.is, Kitty, guake y gnome-terminal.
Un shell es un intérprete de línea de comandos. Se encuentra entre el kernel (núcleo) de un sistema operativo y el usuario, y expone los servicios del sistema operativo a un usuario humano u otros programas. Dicho con otras palabras, un shell es una interfaz de usuario de línea de comandos para acceder a los servicios del sistema operativo. Algunos ejemplos de shells son: Power Shell, cmd, Bash, fish y Zsh. ![Terminals](/software/images/ShellTerminal2.jpg ./software/images/ShellTerminal.jpg)
Hyper es un terminal multiplataforma y libre basado en tecnologías web. Es moderno, totalmente extensible y altamente personalizable.
// Tamaño de fuente predeterminado en píxeles para todas las pestañas.
fontSize: 14,
// familia de fuentes Menlo con fuentes de respaldo DejaVu Sans Mono, Consolas, Lucida Console y monospace
fontFamily: 'Menlo, "DejaVu Sans Mono", Consolas, "Lucida Console", monospace',
// Si la bandera es True, el texto seleccionado se copiará automáticamente en el portapapeles. Por defecto, está deshabilitado.
copyOnSelect: true,
opacity: 0.85,
[...]
plugins: [
"hyper-sweet", // Un tema oscuro y moderno para hyper.
"hyper-systray", // Abre Hyper desde la bandeja del sistema o un acceso directo global (Alt + Espacio).
"hyper-opacity", // Establece la opacidad de Hyper, debes añadir una línea en el archivo de configuración: opacity: 0.85.
"hyper-tab-icons", // Añade iconos en las cabeceras de las pestañas.
"hyperborder", // Añade un borde degradado al terminal.
"hyperpower" // Es una extensión de efectos de partículas divertida y chula mientras tecleas en el terminal.
],
Es posible que necesites hacer clic en el menú Tools (Herramientas) y seleccionar la opción Install Hyper CLI command in PATH (Instalar la utilidad Hyper CLI en el PATH) para que el administrador de extensiones y temas de Hyper funcione correctamente.
Alacritty es un emulador de terminal rápido (utiliza la GPU para el renderizado), de código abierto y multiplataforma.
La configuración completa reside en un único archivo (alacritty.yml), por lo que no necesitas configurarlo navegando a través de menús y submenús en una interfaz gráfica de usuario (GUI), sino que toda tu configuración reside en un archivo en tus dotfiles y así podrás migrar, compartir y transferirla fácil y rápidamente. Alacritty es un emulador de terminal muy minimalista y simple; quizás, demasiado pues no soporta pestañas.
# Personalización de la ventana
window: # Dimensiones de la ventana (los cambios requieren reiniciar)
decorations: full # Con bordes y barra de título
startup_mode: Fullscreen
scrolling: # Número máximo de líneas en el buffer que guarda el histórico de órdenes. Contiene todo el texto que se ha mostrado en pantalla.
history: 10000
multiplier: 3
background_opacity: .95 # Opacidad de la ventana. Es un número entre 0.0 (completamente transparente) y 1.0 (opaco)
window.dynamic_title: true # Permite que las aplicaciones de terminal cambien el título de la ventana de Alacritty.
# Personalización de la fuente
font:
normal:
family: Hack NF
style: Regular
bold:
family: Hack NF
style: Bold
italic:
family: Hack NF
style: Italic
size: 12 # Tamaño del texto
offset:
x: 0
y: 0
glyph_offset:
x: 0
y: 0
use_thin_strokes: false
debug:
persistent_logging: false
draw_bold_text_with_bright_colors: true
# Colores (Gruvbox dark) https://github.com/eendroroy/alacritty-theme
colors:
primary:
background: '#000000'
foreground: '#ebdbb2'
normal:
black: '#282828'
red: '#cc241d'
green: '#98971a'
yellow: '#d79921'
blue: '#458588'
magenta: '#b16286'
cyan: '#689d6a'
white: '#a89984'
bright:
black: '#928374'
red: '#fb4934'
green: '#b8bb26'
yellow: '#fabd2f'
blue: '#83a598'
magenta: '#d3869b'
cyan: '#8ec07c'
white: '#ebdbb2'
selection:
semantic_escape_chars: ",?`|:\"' ()[]{}<>\t" # Esta cadena contiene todos los caracteres que se utilizan como separadores entre palabras.
text: '0xffffff'
background: '0xdc3232'
white: '0xffffff'
save_to_clipboard: true # Cuando se establece a "true", el texto seleccionado se copiará al portapapeles principal.
key_bindings: # Atajos de teclado
- { key: V, mods: Control, action: Paste } # Crtl + V = Pegar
- { key: C, mods: Control, action: Copy } # Crtl + C = Copiar
- { key: NumpadAdd, mods: Control, action: IncreaseFontSize } # Ctrl + "+", aumenta el tamaño del texto del terminal.
- { key: NumpadSubtract, mods: Control, action: DecreaseFontSize } # Ctrl + "-", reduce el tamaño del texto del terminal.
- { key: N, mods: Control, action: SpawnNewInstance } # Ctrl + N, crea una nueva instancia.
- { key: W, mods: Control, action: ToggleFullscreen } # Ctrl + W, alterna pantalla completa y normal.
- { key: F1, mods: Control, chars: "{" } # En algunas configuraciones, Barrier no permite escribir un carácter que necesite la tecla Alt Gr, usamos Ctrl + F1 para escribir "{"
- { key: F2, mods: Control, chars: "}" }
- { key: F3, mods: Control, chars: "#" }
- { key: F4, mods: Control, chars: "~" }
- { key: F5, mods: Control, chars: "@" }
- { key: F6, mods: Control, chars: "|" }
Kitty es un emulador de terminal versátil, rápido, multiplataforma, de código abierto y con muchas características adicionales.
Instalación. macOS (brew install kitty). Arch (sudo pacman -S kitty). Ubuntu/Debian (sudo apt-get install kitty).
Veamos algunos accesos directos. Pestaña nueva/eliminar pestaña: Ctrl + Shift + t/Ctrl + Shift + q. Nueva ventana/cerrar ventana: Ctrl + Shift + enter/Ctrl + Shift + w. Moverse a la pestaña de la derecha/izquierda: Ctrl + Shift + right/left arrow. Ventana a tamaño completo: Ctrl + Shift + F11.
Mostrar imágenes en el terminal: kitty + kitten icat image.jpeg.
Configurar Kitty: gedit ~/.config/kitty/kitty.conf:
font_family MesloLGS NF
font_size 18.0 # Tamaño de la fuente
copy_on_select yes # Copiará el texto seleccionado en el portapapeles
map ctrl+c copy_to_clipboard # CTRL + C: Copia al portapapeles
map ctrl+v paste_from_clipboard # CTRL + V: Pega del portapapeles
background_opacity 0.9.
mouse_map ctrl+left press ungrabbed,grabbed mouse_click_url # Abre una URL con un simple clic. Por defecto, teclea Ctrl + Shift + clic con el botón izquierdo sobre el enlace.
Si encuentras problemas al conectarte por ssh, edita en el servidor remoto: gedit .bashrc, export TERM=vt100.
Cambiar el tema: kitty +kitten themes.
You have chosen the Apprentice theme. What would you like to do? Select Modify kitty.conf to load Apprentice. Has elegido el tema Apprentice. ¿Qué te gustaría hacer? Selecciona Modificar kitty.conf para cambiar el tema Apprentice. Teclea M y estas líneas se añadirán a tu archivo de configuración kitty.conf:
# BEGIN_KITTY_THEME
# Apprentice
include current-theme.conf
# END_KITTY_THEME
kitty tiene la capacidad de definir sus propias ventanas que se pueden posicionar en diferentes distribuciones o layouts. Hay muchos layouts diferentes disponibles. Todos están habilitados de forma predeterminada y puedes cambiar el layout usando el atajo de teclado Ctrl + Shift + l.