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
@@ -0,0 +1,17 @@
//! Vuelca a stdout el `gtk.css` que `nahual-theme` generaría para cada
//! preset. Útil para inspeccionar o depurar la exportación a toolkits
//! sin tener que cambiar de tema en una app real.
//!
//! `cargo run -p nahual-theme --example dump-toolkit-css`
use nahual_theme::{toolkit, Theme};
fn main() {
for theme in Theme::all() {
println!("\n================= {} =================", theme.name);
println!("--- gtk-4.0/gtk.css ---");
print!("{}", toolkit::gtk4_css(&theme));
println!("--- gtk-3.0/gtk.css ---");
print!("{}", toolkit::gtk3_css(&theme));
}
}