Registro de Cambios
Registro de Cambios
v0.8.0 · Instalación con crates.io, Dependencias más Ligeras e IP Pública por HTTPS · 2026-08-21
- crates.io: ahora se admite
cargo install xfetch-cli
- Adelgazamiento del árbol de dependencias: eliminada la cadena del codificador AVIF (
ravif/rav1e/rayon) — de 196 a 133 crates, cero vulnerabilidades; códecs de image limitados a los que usa el renderizador de logos; crates de API fijadas a un commit concreto
- IP pública por HTTPS: las sondas de IP pública ahora usan TLS (raíces de Mozilla) con validación estricta de
IpAddr, tope de 64 bytes y sin redirecciones
- Endurecimiento del catálogo de logos: el arte descargado rechaza secuencias de escape ANSI y caracteres de control, cayendo al logo por defecto
- 147 tests, clippy limpio
v0.7.0 · Etiquetas y Formatos de Valor Configurables · 2026-08-20
- Mapa de config
labels: renombra la clave mostrada por módulo en todos los layouts; una cadena vacía oculta la clave (fila solo-icono); los colores siguen usando la clave original del módulo
- Mapa de config
formats: plantillas de valor con placeholders {campo} por módulo — CPU {brand}/{model}/{cores}/{freq}, GPU {name}/{vendor}/{model}/{vram}, memoria/swap {used}/{total}/{percent}, disco {fs}, os {distro}/{version}/{arch}/{wsl}, packages un campo por gestor más {count}/{manager}/{managers}, batería {percent}/{state}, uptime {days}/{hours}/{mins}, datetime {date}/{time}; los campos desconocidos se muestran vacíos y {{/}} escapan llaves literales
- Corrección de batería (Linux): las baterías de periféricos (p. ej. Logitech HID++) ya no se cuentan como baterías del sistema
- 141 tests, clippy limpio
v0.6.0 · Temas, Daemon de Estadísticas en Vivo y Modularización por Plataforma · 2026-08-19
- Formato de temas simplificado:
theme set edita solo la clave theme, conservando comentarios y formato; los temas ya no incluyen icons (elección de fuente del usuario, se rellenan desde los defaults); nuevos campos logo_color y logo_colors (por fila)
- Daemon de estadísticas en vivo (
daemon_live): fija la salida arriba de la terminal y vuelve a sondear un subconjunto ligero de módulos cada daemon_live_refresh segundos; hot reload mediante daemon_live_reload (observa config y tema); flags --no-daemon-live, --daemon-live-stop, --daemon-live-reload
- Windows:
winget cuenta solo paquetes instalados vía winget; Chocolatey salió de las sondas del núcleo (vuelve como plugin); la detección de shell recorre la cadena de procesos padre (cmd.exe ya no se reporta como PowerShell); el mapeo versión→logo usa números de build
- Timeouts de plugins y extensiones: nuevo
subprocess.rs con drenaje acotado de pipes — los procesos hijos que retienen el pipe ya no pueden colgar xfetch; timeout_secs opcional por plugin/extensión en la config; helper with_timeout en los crates de la API
- Modularización por plataforma: macOS y Linux replican la estructura de Windows (
platform/<os>/version.rs, software.rs, network.rs, ...); Arch separa pacman (oficial) de la nueva entrada aur (pacman -Qm); se muestra el conteo de portage en Gentoo; presentación consciente de WSL
- Efectos: animaciones de introducción mediante la clave
effects y los comandos xfetch effects install/list/remove
v0.5.0 · Rendimiento, Gestores de Paquetes y Logos por Distribución · 2026-08-18
- Rondas de rendimiento: los conteos de paquetes se leen directamente de las bases de datos de las distros (dpkg/pacman/apk/flatpak, microsegundos en lugar de subprocesos); pre-chequeo de PATH antes de lanzar sondas; battery/datetime movidos a la sección paralela; hosts de IP pública consultados en paralelo; sondas lanzadas todas y luego unidas (fetch en frío 8.7 s → 0.05 s en WSL)
- Logos por distribución en
--gen-config: obtiene el logo ASCII del OS/distro detectado del nuevo catálogo xfetch-cli/logos, con override --logo <id> y XFETCH_LOGOS_URL para forks
- Nuevo flag
--layout <name> para --gen-config; se eliminó la carpeta configs/ — la plantilla ahora va embebida en el binario y los instaladores generan el primer config con xfetch --gen-config
- Presentación WSL: nueva clave
os_wsl_style (off / minimal / full)
- Más gestores de paquetes: soporte de Void (base de datos xbps) y Gentoo (portage); las claves de config desconocidas se ignoran
- Windows: soporte de
winget añadido; choco list --local-only ya no cuenta de más; scoop list cuenta filas correctamente
- Plugins en paralelo: los plugins corren en hilos paralelos — API intacta, ningún plugin necesita cambios
v0.4.0 · Modo Daemon, Nuevos Layouts y Corrección de Cuelgues · 2026-08-17
- Modo daemon (
--daemon): fija el logo animado en una región de scroll fija y sale de inmediato; deténgalo con --daemon-stop
- Timeouts de comandos externos:
run_cmd_with_timeout() mata comandos colgados — snap sin el daemon snapd ya no bloquea el fetch; timeouts por comando para gestores de paquetes y sondas de hardware
- Separación por plataforma: nueva estructura
src/info/platform/{linux,macos,windows}/ con contrato compartido y maquinaria en shared/
- Nuevos layouts:
section-box (cajas con borde por grupo de módulos) y custom-x (plantillas de borde totalmente configurables con {fill}/{title}, ancho auto/full/fijo)
- Nuevas opciones:
show_keys, key_width, logo_color (nombres, índices 256 y hex RGB), logo_padding, logo_type (auto/ascii/image)
- Soporte de XDG_CONFIG_HOME (corrección para macOS) y scripts de CI local (
scripts/ci.sh, scripts/ci.ps1)
v0.3.0 · Renderizado de Imágenes y Extensiones · 2026-07-25
- Renderizado de imágenes en Kitty: Añadido toggle
logo_kitty (protocolo nativo vs half-block), logo_gap para espaciado configurable entre imagen y texto, logo_width/logo_height para tamaño explícito, y ancho auto-responsive (28% de la terminal, clamp 12–42 cols)
- Corrección de posicionamiento del cursor: Reemplazado
MoveUp/MoveToColumn con SavePosition/RestorePosition para comportamiento correcto en todos los protocolos de imagen
- Corrección de layout stacked: Arreglado
print_stacked_output() para manejar logos de imagen sin ASCII
- API de extensiones: Creado
api/crates/extension-api/ — protocolo ConfigProviderRequest/ConfigProviderResponse, campo config_providers[], comunicación stdin/stdout JSON
- Extensión config-roulette: Elige una configuración aleatoria o diaria de una lista JSON de rutas, soporta más de 100 rutas
- Extensión layout-override: Fuerza layout y/o módulos al cargar la configuración
- CLI de extensiones: Añadidos comandos
xfetch extension install/list/remove
- 100 configuraciones basadas en imágenes para config-roulette con
logo_gap: 3 y logo_kitty: true
Fase 0 · Base y Núcleo
- Inicializar proyecto Rust con dependencias
- Detección multiplataforma de SO (Linux, Windows, macOS)
- Módulo de recopilación de información del sistema
- Sistema de configuración con soporte JSONC
- Motor de renderizado UI con crossterm
Fase 1 · Módulos de Información del Sistema
- Mostrar nombre del SO y arquitectura
- Detección de versión del kernel
- Resolución de hostname
- Detección y visualización de shell
- Detección de emulador de terminal
- Información del modelo y frecuencia de CPU
- Detección de GPU (discreta e integrada)
- Visualización de uso de memoria y RAM
- Estadísticas de uso de disco
- Estado y porcentaje de batería
- Cálculo de tiempo de actividad del sistema
- Conteo de paquetes para múltiples gestores (pacman, dpkg, scoop)
- Detección de entorno de escritorio / gestor de ventanas
Fase 2 · Personalización Visual y Diseños
- Soporte de arte ASCII personalizado desde archivos
- Soporte de logotipos SVG/Imagen via viuer
- Códigos de color ANSI en logotipos ASCII
- Personalización de iconos por módulo (Nerd Fonts)
- Personalización de colores por módulo
- Diseño predeterminado (lado a lado)
- Diseño Pac-Man con cabecera/pie personalizado
- Diseño de bloque lateral
- Diseño de árbol para visualización jerárquica
- Diseño de sección para información agrupada
- Paleta de colores con opciones de estilo
Fase 3 · Documentación y Ejemplos
- Guía de instalación
- Guía de configuración
- Script de instalación rápida para Linux/macOS
- Script de instalación PowerShell para Windows
- 20+ configuraciones de ejemplo
- Logotipos de muestra (texto y SVG)
- Scripts de desinstalación
- Documentación de diseños
Fase 4 · Expansión de Gestores de Paquetes
- Soporte para gestor RPM (Fedora, RHEL)
- Soporte para gestor APK (Alpine)
- Soporte para gestor Nix
- Soporte para gestor Homebrew (macOS/Linux)
- Soporte para gestor Chocolatey (Windows)
- Detección de múltiples gestores instalados
- Optimización de rendimiento del conteo de paquetes
Fase 5 · Red y Conectividad
- Detección de dirección IP local
- Obtención de IP pública (con opción de privacidad)
- Soporte IPv6
- Información de interfaces de red
- Opción para deshabilitar obtención de IP por privacidad
Fase 6 · Módulos Mejorados
- Integración con reproductor de música (soporte MPD)
- Visualización de pista actual de Spotify
- Módulo meteorológico con API de ubicación
- Visualización de zona horaria y reloj mundial
- Información de usuario y estado de inicio de sesión
- Resolución de pantalla y tasa de refresco
- Detección de tema y esquema de colores
Fase 7 · Diseños Adicionales
- Diseño compacto para salida mínima
- Diseño horizontal
- Diseño inferior con logo debajo de la info
- Diseño minimalista (solo texto)
- Documentación de vista previa de diseños
Fase 8 · Optimización de Rendimiento
- Sondas lentas de hardware paralelizadas
- Caché de datos de módulos
- Optimización de detección GPU para sistemas multi-GPU
- Carga diferida para módulos opcionales
- Evaluación comparativa y perfilado de rendimiento
- Estructura de archivos modularizada
Fase 9 · CI/CD y Distribución
- GitHub Actions para compilaciones automatizadas
- Lanzamientos binarios para Linux x86_64, macOS (Intel & ARM) y Windows
- Paquete AUR para Arch Linux
- Homebrew tap para macOS
- Scripts de instalación para todas las plataformas
- Instalación automatizada de Rust en install.ps1 para Windows
Fase 10 · Comunidad y Ecosistema
- Repositorio y registro de temas
- Gestor de descarga de temas (plugin)
- Herramienta de vista previa de temas en línea
- Proceso de contribución de temas comunitarios
- Sistema de plugins para módulos personalizados
- Plantillas de issues para xfetch, plugins, configs y api
- Guías de contribución
Fase 11 · Pruebas y Aseguramiento de Calidad
- Pruebas unitarias para el módulo de información
- Pruebas unitarias para el módulo de configuración
- Pruebas de integración para diseños
- 41 pruebas en total, todas exitosas
Fase 12 · Funciones Avanzadas
Por respeto a la privacidad de nuestros usuarios: hemos decidido eliminar incluso la posibilidad, mantenemos esto como un registro de lo que no debe hacerse bajo ninguna circunstancia en el futuro.
Fase 13 · Documentación y Marketing
- Manual de usuario completo
- Sitio web del proyecto con showcase
- Documentación para desarrolladores