Objetivo: Un entorno de escritorio estilo Windows 3.1 completamente funcional para la terminal. Sin X11. Sin Wayland. Solo curses, una TTY y vibes.
Estado actual: v0.9.3 released.
Escritorio con patron Win 3.1, ventanas con bordes Unicode, soporte de mouse (GPM + xterm), dialogos modales, menu desplegable, iconos de escritorio, navegacion completa por teclado.
File Manager interactivo con navegacion de directorios, visor de archivos de texto, deteccion de binarios, delegacion de eventos por ventana, teclado completo (seleccion, PgUp/PgDn, Home/End, toggle ocultos).
NotepadWindow con cursor y edicion multilinea, word wrap (Ctrl+W), guardado (Ctrl+S). Resize de ventanas por bordes/esquinas, maximize/minimize, taskbar. Menus por ventana (WindowMenu) con hover tracking. ASCII Video Player.
Terminal embebida con PTY (pty.fork()), parser ANSI, scrollback, multiples instancias. Refactor mayor: unificacion de menus en MenuBar, descomposicion de mouse/keyboard/rendering/event loop en modulos separados, bootstrap de terminal, protocolo formal de ventana. CI con cobertura 100% por modulo.
Motor de temas con 5 temas built-in (Windows 3.1, DOS/CGA, Windows 95, Hacker, Amiga). Configuracion persistente en ~/.config/retrotui/config.toml. Ventana de Settings con preview en vivo.
Clipboard interno con sync a sistema (xclip/xsel/wl-copy). Drag-and-drop de archivos entre File Manager, Notepad y Terminal. Sistema de acciones tipado (ActionResult/ActionType/AppAction).
Log Viewer (tail -f, highlighting, busqueda vim-style), Process Manager (live, sort, kill), Calculadora (evaluador seguro, historial), Reloj/Calendario (ASCII, always-on-top).
Operaciones de archivo completas (copiar/mover/renombrar/eliminar con dialogos, progreso, undo via trash). Modo dual-pane estilo Norton Commander. Previews de archivos (texto, imagen, info). Bookmarks configurables.
Image Viewer (chafa/timg/catimg backend, zoom, escalado). Hex Viewer (offset/hex/ASCII, navegacion, busqueda). Video Player mejorado (selector de archivos, subtitulos).
Character Map, Markdown Viewer, System Monitor, Control Panel, Tetris, RetroNet Explorer. Context menus funcionales, persistencia de iconos de escritorio, optimizacion de startup, terminal styling.
Plugin loader con plugin.toml, clase base RetroApp, auto-discovery, registro dinamico en desktop/menu. Plugin de ejemplo (todo-list). Guia de desarrollo (docs/plugin-guide.md). Hardening de TTY: captura de puntero, drag-drop normalizado, menu Plugins dinamico.
Modularizacion del core
- Descomposicion de
core/app.pyen 5 modulos (window_manager, action_runner, dialog_dispatch, drag_drop, file_operations) - Event bus, IPC y notificaciones integrados al core
- Extraccion de context menu handler y mouse utils
Migracion a plugins bundled
- 9 apps migradas de
apps/abundled_plugins/(charmap, clock, image-viewer, minesweeper, retronet, snake, solitaire, tetris, wifi-manager) - Se cargan via el plugin system, no hardcodeadas
Refactor de apps
- Notepad: dispatch table (
_KEY_DISPATCH) reemplaza if/elif de 217 lineas - File Manager: unificacion de pane state con
PaneState+ propiedades de compatibilidad - Terminal: eliminacion de dead code (
_dirty_lines), fix de visibilidad de errores de sesion
Soporte Windows nativo
- Backend PTY dual: POSIX (
pty.fork()) + Windows (pywinptyConPTY) - Dependencias condicionales en
pyproject.toml(windows-curses,pywinpty) - Shim
win_termios.pypara flow control cross-platform
Estilos de iconos
- 3 estilos de iconos de escritorio: default, mini, braille
- Braille pixel art: iconos 8x12 renderizados como caracteres braille Unicode (4x3)
- Iconos per-plugin via
[plugin.icon]enplugin.toml(emoji + token) - Seleccion desde Settings con gallery preview
Auto-refresh de plugins animados
- Mecanismo
needs_redrawenWindowpara plugins con animacion - Timeout adaptativo (100ms) para ventanas animadas sin afectar idle (500ms)
- Plugins animados se refrescan solos: aquarium, matrix, starwars, game-of-life, pomodoro, system-monitor, network-monitor
Calidad
- 970 tests, 100% cobertura por modulo
- Optimizaciones de rendering (cache de taskbar, window stats)
Comportamiento de "sistema" mas robusto.
- Restauracion de sesion: recordar ventanas abiertas, posiciones, archivos abiertos
- Soft restart interno sin romper sesion host
- Deteccion de primera ejecucion con wizard de bienvenida
- Metadata de plugins visible en UI (version, capabilities)
- Pulir flujo boot/init/run/shutdown con comportamiento determinista
Cerrar matriz de compatibilidad real.
- Matriz manual completa: Linux console, tmux, SSH (MobaXterm, Windows Terminal, terminales GUI)
- Capturar baselines en
docs/baseline/para rendimiento y estabilidad - Cerrar gaps GPM vs SGR en edge-cases de seleccion/drag/right-click
- Documentar desvios por terminal y mitigaciones
- Verificar soporte Windows nativo end-to-end (pywinpty + windows-curses)
- Paintbrush — editor de ASCII art (brush, line, rect, fill, text)
- RetroCalc — visor/editor de CSV/TSV estilo VisiCalc
- Wallpaper — ASCII art o imagen como fondo de escritorio
- Sonido — terminal bell para feedback UI + efectos via
aplay/paplay
La experiencia de escritorio completa.
- Start Menu estilo Windows — boton "Start" en taskbar, menu desplegable con apps y submenues
- TUI App Launcher — detectar apps TUI instaladas (
nvim,mc,htop) y lanzarlas en ventana - Tema Luna (Windows XP) — colores azul/verde/plateado, bordes redondeados
- Tema personalizable — editor de temas en vivo desde Settings
- Extraer widgets reutilizables a
widgets/(checkbox, radio, text input, list, scrollbar) - Simplificar apps existentes usando los widgets compartidos
- Documentar API de widgets para plugin developers
Reservada para absorber ideas nuevas despues de validar v0.9.4-v0.9.8.
Calidad de release. Publicacion y empaquetado.
-
pyproject.tomlcon entry point de consola (retrotui) - Publicacion en PyPI (
pip install retrotui) - Metadata completa: classifiers, keywords, URLs, LICENSE
- Paquete
.debpara Ubuntu/Debian - Paquete AUR para Arch
- Man page (
man retrotui) - Opcion auto-start: agregar a
.bash_profilecomo reemplazo de login shell
RetroTUI como shell de login: al abrir la terminal, aparece el escritorio.
- Auto-start como login shell (
/etc/shells+chsh) - Script de provision para Raspberry Pi / thin clients
- System tray en taskbar: bateria, WiFi, volumen (extiende
NotificationManagerexistente) - Notificaciones del SO via event bus (bateria baja, updates disponibles)
Ideas sin version asignada, se consideraran segun prioridad.
| Categoria | Idea | Descripcion |
|---|---|---|
| Apps | Music Player | Wrapper mpv --no-video o cmus en ventana PTY |
| Apps | SSH File Manager | Navegar servidores remotos via SFTP/paramiko |
| UX | Screensaver | Starfield, flying toasters, maze despues de idle (plugin) |
| UX | Escritorios multiples | N listas de ventanas con Ctrl+Left/Right para cambiar |
| UX | Temas comunitarios | Repositorio de archivos TOML con temas de la comunidad |
| Sistema | Pipe integration | stdout de terminal -> Notepad o Log Viewer |
Ultima actualizacion: 27 de febrero de 2026