feat(theme): exportación a GTK + inyección de entorno en el compositor

Segunda mitad de la uniformización del tema. nahual-theme::toolkit
traduce el Theme activo a gtk-3.0/gtk.css y gtk-4.0/gtk.css con overrides
@define-color (acento exacto + neutro claro/oscuro sintetizado).
Theme::set/install_default exportan best-effort; guarda de no-pisar
respeta un gtk.css ajeno. El compositor inyecta XDG_CURRENT_DESKTOP=mirada
y QT_QPA_PLATFORMTHEME=gtk3 a cada hijo, así GTK y Qt siguen el tema.

8 tests nuevos en toolkit; ejemplo dump-toolkit-css.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
sergio
2026-05-21 17:41:35 +00:00
parent 5369c307e4
commit af3be482a9
6 changed files with 439 additions and 7 deletions
+14
View File
@@ -5,6 +5,20 @@ Cerebro (GPUI) ↔ Cuerpo (smithay) en dos procesos. El historial previo
vive en `git log` (`feat(mirada): …`); este archivo arranca con el
trabajo de escritorio (tema, DM).
### feat(mirada): inyección de entorno de tema a los hijos del compositor
`spawn_command` del compositor inyecta `THEME_ENV` a cada proceso hijo:
- `XDG_CURRENT_DESKTOP=mirada``xdg-desktop-portal` enruta hacia el
backend `mirada-portal`.
- `QT_QPA_PLATFORMTHEME=gtk3` → las apps Qt siguen el tema GTK, y por
tanto el `gtk.css` que genera `nahual-theme`.
Cierra la segunda mitad de la uniformización del tema: portal
(claro/oscuro + acento por protocolo) + `gtk.css` generado por
`nahual-theme::toolkit` + esta inyección → GTK y Qt alineados con el
tema de nahual.
### feat(mirada-portal): backend de tema — org.freedesktop.appearance
App nueva `crates/apps/mirada-portal`: backend de `xdg-desktop-portal`
+21
View File
@@ -2,6 +2,27 @@
Motor GPUI: libs + widgets. Renombrado de `yahweh` el 2026-05-19.
### feat(nahual-theme): exportación del tema a GTK (módulo toolkit)
Módulo nuevo `nahual-theme/src/toolkit.rs`: traduce el `Theme` activo a
`~/.config/gtk-3.0/gtk.css` y `gtk-4.0/gtk.css` con overrides
`@define-color`. Las apps GTK adoptan el acento exacto del tema + un
neutro claro/oscuro coherente. Los fondos en gradiente de nahual no se
pueden reproducir en ventanas GTK sólidas, así que el neutro se sintetiza
con un ramp de luminancia tintado por el matiz del borde del tema.
- `gtk4_css` / `gtk3_css` — generadores puros (nombres de color de
libadwaita y de Adwaita 3 respectivamente).
- `export_toolkit_configs` + `export_toolkit_configs_to(base)`
escritura; el segundo con directorio base explícito para tests.
- **Guarda de no-pisar**: si un `gtk.css` ya existe sin la marca de
nahual, es del usuario y se respeta (`ExportReport.skipped`).
- `Theme::set` y `Theme::install_default` exportan best-effort: cambiar
de tema en cualquier app GPUI actualiza GTK al instante.
- `config_path` refactorizado sobre un nuevo `config_home()`.
- Ejemplo `dump-toolkit-css` para inspeccionar el CSS generado.
- 8 tests nuevos en `toolkit`.
### feat(yahweh-launcher): F3 — extracción del shell standard de explorers
Iter 19. Patrón con 4 consumers idénticos (nakui-explorer,
nouser-explorer, minga-explorer, brahman-broker-explorer) declaraban