Capitulo 9: Terminal Ghostty Integrado
Capitulo 9: Terminal Ghostty Integrado
< Volver al Indice del Tutorial
Ghostty como terminal embebido
Spacecake no emula una terminal en el navegador ni usa xterm.js. Incluye Ghostty directamente, un emulador de terminal moderno, rapido y nativo con renderizado GPU. Esto significa que obtienes el mismo rendimiento y compatibilidad que tendrias con Ghostty funcionando como aplicacion independiente, pero integrado dentro de Spacecake.
Al ser un terminal nativo, soporta colores de 24 bits, Unicode completo, ligaduras tipograficas y todas las secuencias de escape que esperarias de un emulador moderno.
Toggle del terminal
Para mostrar u ocultar el terminal integrado usa el atajo:
Ctrl + `
Tambien puedes hacer click directamente en el area del terminal cuando esta visible para darle foco. Si el terminal esta colapsado, el click lo expande automaticamente.
Este atajo funciona desde cualquier contexto dentro de Spacecake: estando en el editor, en el panel de tareas o en cualquier otra seccion.
Redimensionar el terminal
Puedes ajustar el tamano del terminal arrastrando el borde superior del panel de terminal. Arrastra hacia arriba para darle mas espacio al terminal, o hacia abajo para reducirlo y dar prioridad al editor.
El tamano que configures se mantiene durante la sesion. Cada vez que abres o cierras el terminal, recuerda la ultima posicion del borde.
Sesiones por workspace
Cada workspace en Spacecake tiene su propia sesion de terminal independiente. Cuando abres un workspace, el terminal inicia automaticamente en el directorio raiz de ese workspace usando tu shell por defecto.
Esto tiene implicaciones importantes:
- Las variables de entorno son independientes por workspace.
- Los procesos en ejecucion en un terminal no afectan a otros workspaces.
- El historial de comandos sigue siendo global (depende de tu shell), pero el contexto de ejecucion es aislado.
Cambiar de workspace
Al cambiar de workspace, Spacecake termina la sesion de terminal actual y crea una nueva en el directorio del nuevo workspace. Esto significa que cualquier proceso en ejecucion en el terminal anterior se detiene.
Si necesitas mantener un proceso corriendo mientras cambias de workspace, considera usar herramientas como tmux o screen dentro del terminal, o ejecutar el proceso en segundo plano con nohup.
Colapsar vs matar
Hay dos formas de cerrar el terminal, y la diferencia es fundamental:
Colapsar (minimizar)
Cuando colapsas el terminal (usando Ctrl + backtick o haciendo click fuera del area del terminal), la sesion se mantiene viva. Tu shell, variables de entorno y cualquier proceso en ejecucion se preservan. Al expandir el terminal de nuevo, todo sigue exactamente donde lo dejaste.
Esto es ideal cuando estas alternando entre escribir en el editor y ejecutar comandos. No pierdes el estado.
Matar la sesion
El boton de delete en el header del terminal destruye la sesion completamente. La proxima vez que abras el terminal, se inicia un shell completamente nuevo:
- Se pierde el historial de la sesion (no el historial persistente del shell).
- Se pierden las variables de entorno que hayas definido en esa sesion.
- Se matan todos los procesos que estaban corriendo en ese terminal.
Usa matar cuando necesites un estado limpio o cuando la sesion se haya corrompido por alguna razon.
Shell por defecto
Spacecake usa el shell configurado en tu sistema operativo. Si tu shell por defecto es zsh, el terminal integrado abre zsh. Si es bash, abre bash. Lo mismo aplica para fish, nushell o cualquier otro shell.
La deteccion del shell se hace a traves de las variables de entorno del sistema ($SHELL en macOS y Linux). En Windows, usa PowerShell o el shell configurado como predeterminado.
Variables EDITOR y VISUAL
Spacecake configura automaticamente las variables de entorno EDITOR y VISUAL dentro del terminal integrado a:
spacecake open --wait
Esto tiene un efecto practico directo: cualquier herramienta de linea de comandos que necesite abrir un editor de texto usara Spacecake en lugar de vim, nano u otro editor de terminal. Herramientas como git commit (sin flag -m), crontab -e o kubectl edit abren el archivo directamente en un tab de Spacecake.
El flag --wait es esencial: le indica a Spacecake que mantenga el proceso esperando hasta que cierres el archivo. Sin este flag, la herramienta CLI pensaria que terminaste de editar inmediatamente.
Este tema se profundiza en el siguiente capitulo.
Badge de terminal
La barra de estado de Spacecake muestra un badge que indica el estado actual del terminal:
- Si el terminal tiene un proceso en ejecucion, el badge lo refleja.
- Si el terminal esta inactivo, el badge muestra el estado idle.
- Si hay errores o el terminal se ha desconectado, el badge cambia para alertarte.
Esto permite saber de un vistazo si hay algo corriendo en el terminal sin necesidad de expandirlo.
Siguiente: Capitulo 10: EDITOR y VISUAL —>