¿Qué es Kitty?
Kitty es un emulador de terminal moderno, rápido y rico en características, diseñado desde cero para aprovechar las GPUs modernas. Creado por Kovid Goyal, es conocido por:
Características Principales:
- Renderizado GPU acelerado: Extremadamente rápido
- Soporte Unicode completo: Incluyendo emojis y ligaduras
- True color: 24-bit RGB
- Ligaduras de fuentes: Soporte nativo
- Imágenes en terminal: Protocolo propio de alta calidad
- Multiplexación: Tabs y splits nativos
- Extensible: Sistema de kittens (plugins)
- Control remoto: API completa
- Configuración simple: Archivo único y legible
Por Qué Usar Kitty
Ventajas sobre otros terminales:
| Característica | Kitty | Alacritty | iTerm2 | GNOME Terminal |
|---|---|---|---|---|
| Renderizado por GPU | Sí | Sí | Sí | No |
| Pestañas nativas | Sí | No | Sí | Sí |
| División de paneles | Sí | No | Sí | No |
| Soporte para imágenes | Sí | No | Sí | No |
| Ligaduras (ligatures) | Sí | Sí | Sí | Sí |
| Sistema de extensiones | Sí (kittens) | No | Sí | No |
| Control remoto (SSH) | Sí | No | Sí | No |
| Multiplataforma | Sí (Linux/macOS/Windows) | Sí (Linux/macOS/Windows) | No (solo macOS) | No (solo Linux) |
1 Instalación
1.1 Requisitos del Sistema
Mínimos:
- OpenGL 3.3+
- Linux, macOS, o Windows (WSL)
- Python 3.6+
Recomendados:
- GPU moderna con drivers actualizados
- Monitor de alta resolución (4K/Retina)
- Fuente con ligaduras (FiraCode, JetBrains Mono)
1.2 Linux
Ubuntu/Debian:
Arch Linux:
Fedora:
Desde binario oficial (recomendado):
1.3 macOS
Homebrew:
Desde DMG:
Descargar desde: https://github.com/kovidgoyal/kitty/releases
1.4 Windows (WSL)
1.5 Verificar Instalación
1.6 Instalación de Dependencias Opcionales
2 Filosofía y Diseño
2.1 Principios de Diseño
- Velocidad: GPU rendering para máximo rendimiento
- Simplicidad: Configuración en un solo archivo
- Extensibilidad: Kittens para añadir funcionalidad
- Estándares: Soporte completo de especificaciones modernas
- Teclado primero: Control total desde teclado
2.2 Arquitectura
Componentes principales:
- Core (C): Renderizado GPU, performance crítico
- UI (Python): Interfaz, configuración, extensibilidad
- Kittens (Python/Go): Programas auxiliares
Stack tecnológico:
- OpenGL para renderizado
- HarfBuzz para text shaping
- FontConfig para gestión de fuentes
- libunistring para Unicode
3 Conceptos Básicos
3.1 Jerarquía: OS Windows > Tabs > Windows
┌─────────────────────────────────────┐
│ OS Window (ventana del sistema) │
│ ┌───────────────────────────────┐ │
│ │ Tab 1 Tab 2 Tab 3 │ │
│ ├───────────────────────────────┤ │
│ │ ┌──────────┬──────────┐ │ │
│ │ │ Window 1 │ Window 2 │ │ │
│ │ │ │ │ │ │
│ │ └──────────┴──────────┘ │ │
│ └───────────────────────────────┘ │
└─────────────────────────────────────┘
OS Window: Ventana del sistema operativo Tab: Pestaña dentro de un OS Window Window: Panel dentro de un Tab (como splits en tmux)
3.2 Primer Uso
Al abrir Kitty por primera vez:
4 Configuración (kitty.conf)
4.1 Ubicación del Archivo
Linux/macOS: ~/.config/kitty/kitty.conf
Windows: %LOCALAPPDATA%\kitty\kitty.conf
4.2 Generar Configuración Por Defecto
4.3 Estructura de Configuración
Secciones principales:
- Fuentes
- Cursor
- Scrollback
- Mouse
- Terminal bell
- Window layout
- Tab bar
- Color scheme
- Advanced
- OS tweaks
- Keyboard shortcuts
4.4 Configuración Básica Recomendada
# ==========================================
# CONFIGURACIÓN BÁSICA DE KITTY
# ==========================================
# Fuentes
font_family JetBrains Mono
bold_font auto
italic_font auto
bold_italic_font auto
font_size 12.0
# Cursor
cursor_shape block
cursor_blink_interval 0
cursor_stop_blinking_after 15.0
# Scrollback
scrollback_lines 10000
scrollback_pager less --chop-long-lines --RAW-CONTROL-CHARS +INPUT_LINE_NUMBER
# Mouse
mouse_hide_wait 3.0
url_color #0087bd
url_style curly
open_url_with default
detect_urls yes
copy_on_select no
# Ventanas
remember_window_size yes
initial_window_width 640
initial_window_height 400
window_border_width 0.5pt
window_margin_width 0
window_padding_width 0
active_border_color #00ff00
inactive_border_color #cccccc
# Pestañas
tab_bar_edge bottom
tab_bar_style fade
tab_bar_min_tabs 2
tab_title_template "{index}: {title}"
# Colores (Dracula theme)
foreground #f8f8f2
background #282a36
selection_foreground #ffffff
selection_background #44475a
# Negro
color0 #21222c
color8 #6272a4
# Rojo
color1 #ff5555
color9 #ff6e6e
# Verde
color2 #50fa7b
color10 #69ff94
# Amarillo
color3 #f1fa8c
color11 #ffffa5
# Azul
color4 #bd93f9
color12 #d6acff
# Magenta
color5 #ff79c6
color13 #ff92df
# Cyan
color6 #8be9fd
color14 #a4ffff
# Blanco
color7 #f8f8f2
color15 #ffffff
# Rendimiento
repaint_delay 10
input_delay 3
sync_to_monitor yes
# Bell
enable_audio_bell no
visual_bell_duration 0.0
window_alert_on_bell yes
bell_on_tab "🔔 "
# Advanced
shell .
editor .
allow_remote_control yes
listen_on unix:/tmp/kitty
clipboard_control write-clipboard write-primary read-clipboard-ask read-primary-ask
# OS Específico (macOS)
macos_titlebar_color system
macos_option_as_alt no
macos_hide_from_tasks no
macos_quit_when_last_window_closed no
# Layouts habilitados
enabled_layouts tall:bias=50;full_size=1,stack,fat:bias=50;full_size=1,grid,splits
# ==========================================
# MAPEOS DE TECLADO
# ==========================================
# Modificador principal
kitty_mod ctrl+shift
# Clipboard
map kitty_mod+c copy_to_clipboard
map kitty_mod+v paste_from_clipboard
map kitty_mod+s paste_from_selection
# Scrolling
map kitty_mod+up scroll_line_up
map kitty_mod+down scroll_line_down
map kitty_mod+page_up scroll_page_up
map kitty_mod+page_down scroll_page_down
map kitty_mod+home scroll_home
map kitty_mod+end scroll_end
map kitty_mod+h show_scrollback
map kitty_mod+g show_last_command_output
# Ventanas
map kitty_mod+enter new_window
map kitty_mod+n new_os_window
map kitty_mod+w close_window
map kitty_mod+] next_window
map kitty_mod+[ previous_window
map kitty_mod+f move_window_forward
map kitty_mod+b move_window_backward
map kitty_mod+` move_window_to_top
map kitty_mod+r start_resizing_window
map kitty_mod+1 first_window
map kitty_mod+2 second_window
map kitty_mod+3 third_window
map kitty_mod+4 fourth_window
map kitty_mod+5 fifth_window
# Tabs
map kitty_mod+t new_tab
map kitty_mod+q close_tab
map kitty_mod+right next_tab
map kitty_mod+left previous_tab
map kitty_mod+. move_tab_forward
map kitty_mod+, move_tab_backward
map kitty_mod+alt+t set_tab_title
# Layouts
map kitty_mod+l next_layout
# Fuentes
map kitty_mod+equal change_font_size all +2.0
map kitty_mod+minus change_font_size all -2.0
map kitty_mod+backspace change_font_size all 0
# Misc
map kitty_mod+f1 show_kitty_doc overview
map kitty_mod+f2 edit_config_file
map kitty_mod+f5 load_config_file
map kitty_mod+f6 debug_config
map kitty_mod+f11 toggle_fullscreen
map kitty_mod+f10 toggle_maximized
map kitty_mod+u kitten unicode_input
map kitty_mod+e open_url_with_hints
map kitty_mod+escape kitty_shell window
# Opacidad de fondo
map kitty_mod+a>m set_background_opacity +0.1
map kitty_mod+a>l set_background_opacity -0.1
map kitty_mod+a>1 set_background_opacity 1
map kitty_mod+a>d set_background_opacity default
# Reset terminal
map kitty_mod+delete clear_terminal reset active4.5 Configuración Avanzada
Fuentes con fallbacks:
Ligaduras:
Modificar fuentes:
5 Atajos de Teclado
5.1 Modificador Principal
Por defecto kitty_mod = Ctrl+Shift
En macOS algunos también usan Cmd (⌘)
5.2 Scrolling
| Atajo | Acción |
|---|---|
Ctrl+Shift+Up |
Scroll línea arriba |
Ctrl+Shift+Down |
Scroll línea abajo |
Ctrl+Shift+Page Up |
Scroll página arriba |
Ctrl+Shift+Page Down |
Scroll página abajo |
Ctrl+Shift+Home |
Ir al inicio |
Ctrl+Shift+End |
Ir al final |
Ctrl+Shift+Z |
Prompt anterior (shell integration) |
Ctrl+Shift+X |
Prompt siguiente (shell integration) |
Ctrl+Shift+H |
Ver scrollback en pager |
Ctrl+Shift+G |
Ver último comando (shell integration) |
Ctrl+Shift+/ |
Buscar en scrollback |
5.3 Tabs
| Atajo | Acción |
|---|---|
Ctrl+Shift+T |
Nueva tab |
Ctrl+Shift+Q |
Cerrar tab |
Ctrl+Shift+Right |
Tab siguiente |
Ctrl+Shift+Left |
Tab anterior |
Ctrl+Shift+. |
Mover tab adelante |
Ctrl+Shift+, |
Mover tab atrás |
Ctrl+Shift+Alt+T |
Renombrar tab |
Ctrl+Alt+1...9 |
Ir a tab N |
5.4 Windows (Ventanas dentro de Tabs)
| Atajo | Acción |
|---|---|
Ctrl+Shift+Enter |
Nueva window |
Ctrl+Shift+N |
Nueva OS window |
Ctrl+Shift+W |
Cerrar window |
Ctrl+Shift+] |
Window siguiente |
Ctrl+Shift+[ |
Window anterior |
Ctrl+Shift+F |
Mover window adelante |
Ctrl+Shift+B |
Mover window atrás |
Ctrl+Shift+`` `| Mover window al top | |Ctrl+Shift+R| Redimensionar window | |Ctrl+Shift+F7| Selección visual de window | |Ctrl+Shift+F8| Swap visual de window | |Ctrl+Shift+1…0` |
Ir a window N |
5.6 Layouts
| Atajo | Acción |
|---|---|
Ctrl+Shift+L |
Siguiente layout |
5.7 Clipboard
| Atajo | Acción |
|---|---|
Ctrl+Shift+C |
Copiar |
Ctrl+Shift+V |
Pegar |
Ctrl+Shift+S |
Pegar de selección |
Ctrl+Shift+O |
Pasar selección a programa |
5.8 Fuentes
| Atajo | Acción |
|---|---|
Ctrl+Shift+Equal |
Aumentar tamaño |
Ctrl+Shift+Minus |
Disminuir tamaño |
Ctrl+Shift+Backspace |
Reset tamaño |
5.9 Miscelánea
| Atajo | Acción |
|---|---|
Ctrl+Shift+F1 |
Mostrar ayuda |
Ctrl+Shift+F2 |
Editar config |
Ctrl+Shift+F5 |
Recargar config |
Ctrl+Shift+F6 |
Debug config |
Ctrl+Shift+F11 |
Toggle fullscreen |
Ctrl+Shift+F10 |
Toggle maximized |
Ctrl+Shift+U |
Input Unicode |
Ctrl+Shift+E |
Open URL hints |
Ctrl+Shift+Escape |
Kitty shell |
Ctrl+Shift+Delete |
Reset terminal |
5.10 Atajos en macOS
Reemplazan algunos con Cmd (⌘):
| Windows/Linux | macOS |
|---|---|
Ctrl+Shift+T |
Cmd+T |
Ctrl+Shift+W |
Cmd+W |
Ctrl+Shift+C |
Cmd+C |
Ctrl+Shift+V |
Cmd+V |
Ctrl+Shift+N |
Cmd+N |
Ctrl+Shift+F2 |
Cmd+, |
Ctrl+Shift+F11 |
Ctrl+Cmd+F |
6 Ventanas y Pestañas
6.1 Concepto de Multiplexación
Kitty tiene multiplexación nativa (sin necesidad de tmux):
Jerarquía:
OS Window (kitty instance)
└── Tab 1
├── Window 1
├── Window 2
└── Window 3
└── Tab 2
└── Window 1
6.2 Crear Ventanas y Tabs
Nueva window:
Nueva tab:
Nueva OS window:
6.4 Mover Windows y Tabs
Mover windows:
Mover tabs:
6.5 Detach (Separar)
Detach window:
Detach tab:
6.6 Títulos Personalizados
7 Layouts (Diseños)
7.1 Layouts Disponibles
Kitty tiene 7 layouts built-in:
- Stack: Una window a la vez (maximizada)
- Tall: Una o más windows full-height a la izquierda
- Fat: Una o más windows full-width arriba
- Grid: Grid balanceado
- Splits: Arreglo arbitrario (como tmux)
- Horizontal: Todas las windows lado a lado
- Vertical: Todas las windows una debajo de otra
7.2 Stack Layout
┌────────────────────────────┐
│ │
│ │
│ Window Actual │
│ (maximizada) │
│ │
│ │
└────────────────────────────┘
Configuración:
7.3 Tall Layout
┌──────────┬─────────────────┐
│ │ │
│ │ │
│ ├─────────────────┤
│ Full │ │
│ Height │ │
│ ├─────────────────┤
│ │ │
│ │ │
└──────────┴─────────────────┘
Configuración:
Acciones:
7.4 Fat Layout
┌────────────────────────────┐
│ │
│ Full Width │
│ │
├─────────┬─────────┬────────┤
│ │ │ │
│ │ │ │
└─────────┴─────────┴────────┘
Configuración:
Mismas acciones que Tall layout.
7.5 Grid Layout
┌────────┬────────┬────────┐
│ │ │ │
│ │ │ │
├────────┼────────┼────────┤
│ │ │ │
│ │ │ │
└────────┴────────┴────────┘
Configuración:
7.6 Splits Layout
El más flexible - como tmux/vim splits.
┌──────────┬─────────────────┐
│ │ │
│ │ │
│ ├────────┬────────┤
│ │ │ │
│ │ │ │
│ ├────────┴────────┤
│ │ │
│ │ │
└──────────┴─────────────────┘
Configuración:
Crear splits:
# Split horizontal
map f5 launch --location=hsplit
# Split vertical
map f6 launch --location=vsplit
# Split auto (horizontal si ancho, vertical si alto)
map f4 launch --location=split
# Rotar split (horizontal <-> vertical)
map f7 layout_action rotate
# Mover window
map shift+up move_window up
map shift+down move_window down
map shift+left move_window left
map shift+right move_window right
# Mover window al borde
map ctrl+shift+up layout_action move_to_screen_edge top
map ctrl+shift+down layout_action move_to_screen_edge bottom
map ctrl+shift+left layout_action move_to_screen_edge left
map ctrl+shift+right layout_action move_to_screen_edge right
# Bias del split
map ctrl+. layout_action bias 807.7 Horizontal y Vertical Layouts
Horizontal (lado a lado):
┌────────┬────────┬────────┐
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
└────────┴────────┴────────┘
Vertical (uno debajo del otro):
┌────────────────────────────┐
│ │
├────────────────────────────┤
│ │
├────────────────────────────┤
│ │
└────────────────────────────┘
Configuración:
7.8 Cambiar Entre Layouts
7.9 Redimensionar Windows
Modo interactivo:
Atajos directos:
8 Fuentes
8.1 Configuración Básica
8.2 Fuentes Recomendadas
Con ligaduras:
- JetBrains Mono
- Fira Code
- Cascadia Code
- Victor Mono
- Iosevka
Mono clásicas:
- IBM Plex Mono
- Source Code Pro
- Ubuntu Mono
- Inconsolata
8.3 Fuentes con Powerline
8.4 Symbol Maps
Mapear rangos Unicode a fuentes específicas:
8.5 Ligaduras
Controlar por window:
8.6 Font Features
8.7 Modificar Fuentes
8.8 Kitten para Elegir Fuentes
9 Colores y Temas
9.1 Estructura de Colores
# Colores básicos
foreground #foreground_color
background #background_color
# Selección
selection_foreground #color
selection_background #color
# Cursor
cursor #color
cursor_text_color #color
# Tabla de colores (16 básicos)
# Negro
color0 #color
color8 #color
# Rojo
color1 #color
color9 #color
# Verde
color2 #color
color10 #color
# Amarillo
color3 #color
color11 #color
# Azul
color4 #color
color12 #color
# Magenta
color5 #color
color13 #color
# Cyan
color6 #color
color14 #color
# Blanco
color7 #color
color15 #color
# Colores extendidos (256 colores)
color16 #color
color17 #color
# ... hasta color2559.2 Temas Populares
Dracula:
foreground #f8f8f2
background #282a36
selection_foreground #ffffff
selection_background #44475a
color0 #21222c
color8 #6272a4
color1 #ff5555
color9 #ff6e6e
color2 #50fa7b
color10 #69ff94
color3 #f1fa8c
color11 #ffffa5
color4 #bd93f9
color12 #d6acff
color5 #ff79c6
color13 #ff92df
color6 #8be9fd
color14 #a4ffff
color7 #f8f8f2
color15 #ffffffNord:
Gruvbox Dark:
9.3 Kitten Themes
9.4 Opacidad y Blur
# Opacidad del background
background_opacity 0.9
# Background blur (macOS y KDE)
background_blur 20
# Dynamic opacity (permite cambiar con atajos)
dynamic_background_opacity yes
# Cambiar opacidad con atajos
map ctrl+shift+a>m set_background_opacity +0.1
map ctrl+shift+a>l set_background_opacity -0.1
map ctrl+shift+a>1 set_background_opacity 1
map ctrl+shift+a>d set_background_opacity default9.5 Background Image
9.6 Dim Text
10 Cursor y Scrollback
10.1 Cursor
Forma:
Forma cuando no enfocado:
Grosor:
Blink:
Color:
Cursor Trail:
10.2 Scrollback
Líneas de historial:
Pager:
Scrollback Pager History:
Fill Window:
Scroll Multiplier:
10.3 Scrollbar
# Cuándo mostrar scrollbar
scrollbar scrolled
# Opciones: scrolled, hovered, scrolled-and-hovered, always, never
# Interactivo
scrollbar_interactive yes
# Jump on click
scrollbar_jump_on_click yes
# Ancho
scrollbar_width 0.5
scrollbar_hover_width 1
# Opacidad
scrollbar_handle_opacity 0.5
scrollbar_track_opacity 0
# Colores
scrollbar_handle_color foreground
scrollbar_track_color foreground11 Mouse
11.1 Comportamiento Básico
11.2 URLs
# Color y estilo de URLs
url_color #0087bd
url_style curly
# Opciones: none, straight, double, curly, dotted, dashed
# Programa para abrir URLs
open_url_with default
# Prefijos detectados
url_prefixes file ftp ftps gemini git gopher http https irc ircs kitty mailto news sftp ssh
# Detectar URLs
detect_urls yes
# Mostrar target de hyperlinks
show_hyperlink_targets no
# Underline de hyperlinks
underline_hyperlinks hover
# Opciones: hover, always, never11.3 Selección
# Copiar al seleccionar
copy_on_select no
# Opciones: no, clipboard, a1 (buffer personalizado)
# Limpiar selección al perder clipboard
clear_selection_on_clipboard_loss no
# Caracteres de palabra
select_by_word_characters @-./_~?&=%+#
# Intervalo de clicks
click_interval -1.0
# -1 = usar default del sistema11.4 Pointer Shape
11.5 Mouse Actions
Sintaxis:
Ejemplos:
# Click en URL
mouse_map left click ungrabbed mouse_handle_click selection link prompt
# Pegar con middle click
mouse_map middle release ungrabbed paste_from_selection
# Seleccionar con left press
mouse_map left press ungrabbed mouse_selection normal
# Selección rectangular con Ctrl+Alt
mouse_map ctrl+alt+left press ungrabbed mouse_selection rectangle
# Seleccionar palabra con double click
mouse_map left doublepress ungrabbed mouse_selection word
# Seleccionar línea con triple click
mouse_map left triplepress ungrabbed mouse_selection line
# Extender selección con right press
mouse_map right press ungrabbed mouse_selection extendClearar todos los mouse actions:
12 Kittens (Extensiones)
12.1 ¿Qué son los Kittens?
Programas auxiliares que extienden funcionalidad de kitty.
12.2 Kittens Built-in
12.3 1. icat - Imágenes en Terminal
En kitty.conf:
12.4 2. diff - Diff con Imágenes
Configurar como git difftool:
12.5 3. unicode_input - Input Unicode
12.6 4. themes - Cambiar Temas
12.7 5. choose-fonts - Elegir Fuentes
12.8 6. hints - Selección Rápida
Configuración:
# Abrir URL
map ctrl+shift+e open_url_with_hints
# Insertar path
map ctrl+shift+p>f kitten hints --type path --program -
# Abrir path
map ctrl+shift+p>shift+f kitten hints --type path
# Insertar archivo (con chooser)
map ctrl+shift+p>c kitten choose-files
# Insertar directorio
map ctrl+shift+p>d kitten choose-files --mode=dir
# Insertar línea
map ctrl+shift+p>l kitten hints --type line --program -
# Insertar palabra
map ctrl+shift+p>w kitten hints --type word --program -
# Insertar hash
map ctrl+shift+p>h kitten hints --type hash --program -
# Abrir en editor
map ctrl+shift+p>n kitten hints --type linenum
# Abrir hyperlink
map ctrl+shift+p>y kitten hints --type hyperlink12.9 7. ssh - SSH Mejorado
Ventajas: - Shell integration automática - Re-uso de conexiones - Clonación de config local - Transferencia de terminfo
12.10 8. transfer - Transferencia de Archivos
12.11 9. clipboard - Clipboard en SSH
12.12 10. broadcast - Broadcast Input
12.13 11. notify - Notificaciones
12.14 12. panel - Panel Desktop
12.15 13. @ (Remote Control)
12.16 Crear Kittens Personalizados
Estructura básica:
#!/usr/bin/env python3
# mi_kitten.py
from kittens.tui.handler import Handler
from kitty.key_encoding import KeyEvent
class MyHandler(Handler):
def initialize(self):
self.print("¡Hola desde mi kitten!")
def on_key(self, key_event: KeyEvent):
if key_event.key == 'q':
self.quit_loop(0)
return True
def main(args):
handler = MyHandler()
handler.run()
if __name__ == '__main__':
import sys
main(sys.argv[1:])Usar:
13 Control Remoto
13.1 Habilitar Remote Control
13.2 Uso Básico
13.3 Comandos Principales
Información:
Crear/Cerrar:
Modificar:
Enviar Input:
Focus:
13.4 Matching
Usar --match para seleccionar windows/tabs:
13.5 Remote Control desde Mapeos
13.6 Remote Control via SSH
Con kitten ssh:
14 Sesiones
14.1 ¿Qué son las Sesiones?
Archivos que definen:
- Layout de tabs y windows
- Directorio de trabajo
- Comandos a ejecutar
- Configuración específica
14.2 Crear Sesión
Archivo de sesión:
# mi_sesion.kitty
# Nueva ventana
new_window
cd ~/proyectos/app
launch vim
# Nueva ventana
new_window
cd ~/proyectos/app
launch
# Nueva tab
new_tab editor
cd ~/proyectos/app
layout tall
launch vim src/main.py
launch
# Nueva tab con split
new_tab servers
launch ssh server1
launch --location=hsplit ssh server2
14.3 Usar Sesión
Al iniciar kitty:
Desde configuración:
Desde atajo:
14.4 Comandos de Sesión
new_tab:
new_tab [nombre]
cd /directorio
layout tall
launch comando
new_window:
new_window
cd /directorio
launch comando
launch:
launch [--location=split] comando
cd:
cd /ruta/absoluta
cd ~/relativa
layout:
layout tall
layout stack
layout splits
focus:
focus
enabled_layouts:
enabled_layouts tall,stack,grid
14.5 Ejemplo Completo
# Sesión de desarrollo web
# ~/proyectos/web_dev.kitty
# Tab principal - Editor
new_tab Editor
cd ~/proyectos/webapp
layout tall:bias=70;full_size=1
launch nvim .
# Tab de servidores
new_tab Servers
cd ~/proyectos/webapp
layout splits
launch npm run dev
launch --location=hsplit npm run tailwind
# Tab de terminal
new_tab Terminal
cd ~/proyectos/webapp
launch
# Tab de git
new_tab Git
cd ~/proyectos/webapp
launch lazygit
# Focus en primera tab
focus_tab 1
14.6 Guardar Sesión Actual
Kitty no tiene comando built-in para guardar, pero puedes usar remote control:
14.7 Switching Sessions
Con goto_session:
Cerrar sesión:
15 Integración con Shell
15.1 Shell Integration
Kitty puede integrarse con bash, zsh y fish para:
- Saltar a prompts anteriores
- Ver output de comandos
- Tracking de directorios
- Indicadores visuales
15.2 Habilitar
Deshabilitar características específicas:
# Deshabilitar cursor shape en prompt
shell_integration no-cursor
# Deshabilitar título automático
shell_integration no-title
# Deshabilitar tracking de cwd
shell_integration no-cwd
# Deshabilitar prompt marks
shell_integration no-prompt-mark
# Deshabilitar completion
shell_integration no-complete
# Deshabilitar sudo
shell_integration no-sudo15.3 Configuración Manual
Si la integración automática no funciona:
Bash (~/.bashrc):
Zsh (~/.zshrc):
Fish (~/.config/fish/config.fish):
15.4 Características con Shell Integration
Saltar a prompts:
Ver output de comandos:
Mouse:
- Click en prompt para mover cursor
- Right-click en comando para ver output
- Click en error para copiar
Indicadores visuales:
- Marca en prompt
- Color diferente para comandos exitosos/fallidos
16 Marcas (Marks)
16.1 ¿Qué son las Marcas?
Sistema para resaltar texto basado en regex.
16.2 Tipos de Marcas
Hay 3 tipos (cada uno con color diferente):
- mark1 (light steel blue)
- mark2 (beige)
- mark3 (violet)
16.3 Configurar Colores
16.4 Crear Marcas
Con regex:
Desde línea de comando:
16.5 Usar Marcas
Toggle:
Saltar:
Eliminar:
16.6 Ejemplo Completo
# Marcar diferentes niveles de log
map ctrl+shift+1 create_marker iregex 1 "^.*ERROR.*$"
map ctrl+shift+2 create_marker iregex 2 "^.*WARNING.*$"
map ctrl+shift+3 create_marker iregex 3 "^.*INFO.*$"
# Navegar entre marcas
map ctrl+shift+n scroll_to_mark next
map ctrl+shift+p scroll_to_mark prev
# Toggle marcas
map ctrl+shift+m toggle_marker iregex 1 "^.*ERROR.*$"
# Limpiar todas las marcas
map ctrl+shift+c remove_marker17 Características Avanzadas
17.1 Multiple Copy/Paste Buffers
17.2 Keyboard Modes
Modos de teclado para mapeos contextuales:
17.3 Per-Application Mappings
17.4 Environment Variables
17.5 Watchers
Scripts Python que reaccionan a eventos:
~/.config/kitty/watchers.py:
from kitty.boss import Boss
def on_focus_change(boss: Boss, window, data):
if data['focused']:
# Window ganó focus
pass
else:
# Window perdió focus
pass
def on_close(boss: Boss, window, data):
# Window está cerrándose
pass
def on_resize(boss: Boss, window, data):
# Window fue redimensionada
pass
def on_title_change(boss: Boss, window, data):
new_title = data['title']
# Hacer algo con nuevo título
passHabilitar:
17.6 Filtros de Notificación
17.7 Allow Cloning
17.8 Notificaciones de Comando
18 Optimización de Rendimiento
18.1 Repaint Delay
18.2 Input Delay
18.3 Sync to Monitor
18.4 Scrollback
18.5 Text Composition
18.6 OpenGL
19 Trucos y Tips
19.1 Cambiar Directorio del Shell al Salir
Bash/Zsh:
19.2 Previsualizar Imágenes
19.3 Integración con Neovim
19.4 SSH con Túneles
19.5 Diff de Directorios
19.6 Broadcast Input
19.7 Quick Terminal (Quake-style)
Configurar en i3/sway:
for_window [class="kitty-quake"] floating enable, move position center
bindsym $mod+grave exec ~/.local/bin/kitty-quake.sh
19.8 8. URLs Personalizadas
19.9 Layouts Personalizados
Crear ~/.config/kitty/layouts/my_layout.py:
19.10 Themevar para Colores Dinámicos
20 Solución de Problemas
20.1 Problemas Comunes
20.2 Ligaduras No Funcionan
Verificar:
Solución:
20.3 Colores Incorrectos
Verificar:
Solución:
20.4 Imágenes No se Muestran
Verificar:
Solución:
20.5 Performance Lento
Diagnóstico:
Solución:
20.6 Remote Control No Funciona
Verificar:
Solución:
20.7 Fuentes Borrosas
Solución:
20.8 Clipboard No Funciona
Verificar:
Solución:
20.9 Debugging
Modo verbose:
Ver logs:
21 Referencia Completa
21.1 Archivos de Configuración
~/.config/kitty/
├── kitty.conf # Configuración principal
├── current-theme.conf # Tema actual (generado)
├── diff.conf # Config para kitty diff
├── sessions/ # Archivos de sesión
│ ├── dev.kitty
│ └── personal.kitty
├── layouts/ # Layouts personalizados
│ └── my_layout.py
└── watchers.py # Watchers de eventos
21.2 Variables de Entorno
21.3 Códigos de Escape Útiles
21.4 API de Remote Control
Endpoints principales:
ls- Listar windows/tabslaunch- Crear window/tabclose-window- Cerrar windowclose-tab- Cerrar tabfocus-window- Enfocar windowfocus-tab- Enfocar tabget-colors- Obtener coloresset-colors- Cambiar coloresget-text- Obtener textosend-text- Enviar textoresize-window- Redimensionarset-window-title- Cambiar títulogoto-layout- Cambiar layout
21.5 Comparison Chart
| Característica | Kitty | Alacritty | iTerm2 | Wezterm |
|---|---|---|---|---|
| GPU Rendering | ✅ | ✅ | ✅ | ✅ |
| Tabs | ✅ | ❌ | ✅ | ✅ |
| Splits | ✅ | ❌ | ✅ | ✅ |
| Imágenes | ✅ | ❌ | ✅ | ✅ |
| Ligaduras | ✅ | ✅ | ✅ | ✅ |
| Remote Control | ✅ | ❌ | ✅ | ✅ |
| Extensiones | ✅ (kittens) | ❌ | ✅ | ✅ (lua) |
| Cross-platform | ✅ | ✅ | ❌ | ✅ |
| Config Language | conf | toml | GUI | lua |
| Shell Integration | ✅ | ❌ | ✅ | ✅ |
22 Conclusión
22.1 Roadmap de Aprendizaje
Semana 1 - Básicos:
- Instalar y configurar
- Aprender atajos principales
- Configurar fuentes y colores
Semana 2 - Intermedio:
- Dominar tabs y windows
- Experimentar con layouts
- Configurar shell integration
Mes 1 - Avanzado:
- Usar kittens
- Remote control básico
- Crear sesiones
Mes 2+ - Experto:
- Crear kittens propios
- Watchers
- Automatización completa
22.2 Recursos
Documentación Oficial:
- https://sw.kovidgoyal.net/kitty/
- https://sw.kovidgoyal.net/kitty/conf/
Comunidad:
- GitHub: https://github.com/kovidgoyal/kitty
- Discussions: https://github.com/kovidgoyal/kitty/discussions
- Reddit: r/KittyTerminal
Temas:
- https://github.com/dexpota/kitty-themes
- https://github.com/kdrag0n/base16-kitty
Configs de Ejemplo:
- https://github.com/search?q=kitty.conf
22.3 Tips Finales
- Empieza simple: No copies configs complejas al inicio
- Experimenta: Prueba diferentes layouts y kittens
- Lee la docs: La documentación de kitty es excelente
- Usa kitten themes: Para encontrar tu tema perfecto
- Aprovecha shell integration: Hace la diferencia
- Explora kittens: Son muy potentes
- Practica atajos: La eficiencia viene de no usar el mouse
- Contribuye: Reporta bugs, sugestiones, o crea kittens
23 Publicaciones Similares
Si te interesó este artículo, te recomendamos que explores otros blogs y recursos relacionados que pueden ampliar tus conocimientos. Aquí te dejo algunas sugerencias:
- Comandos De Informacion Windows
- Adb
- Limpieza Y Optimizacion De Pc
- Scrcpy
- Gestionar Versiones De Jdk En Kubuntu
- Instalar Tor Browser
- Crear Enlaces Duros O Hard Link En Linux
- Comandos Vim
- Guia De Git Y Github
- 00 Primeros Pasos En Linux
- 01 Introduccion Linux
- 02 Distribuciones Linux
- 03 Instalacion Linux
- 04 Administracion Particiones Volumenes
- Atajos De Teclado Y Comandos Para Usar Vim
- Instalando Specitify
- Gestiona Tus Dotfiles Con Gnu Stow
- Guia De Ranger
- Guia De Kitty Terminal
- Guia De Positron Ide
- Guia De Rsync
Esperamos que encuentres estas publicaciones igualmente interesantes y útiles. ¡Disfruta de la lectura!
