tawasuyu

tawasuyu/brahman

Rust 492TOML 194Markdown 53JSON 176939 Sutichaykuna

⎇ main docs/changelog/mirada.md Markdown · 73 siq'ikuna · 3.5 KB Ñawpa willay ch'uya

feat(mirada): mirada-greeter — greeter de login del escritorio carmen bb21c28eb · sergio ·

1# Changelog — mirada
2
3Compositor Wayland del monorepo (nombre de proyecto: carmen). Arquitectura
4Cerebro (GPUI) ↔ Cuerpo (smithay) en dos procesos. El historial previo
5vive en `git log` (`feat(mirada): …`); este archivo arranca con el
6trabajo de escritorio (tema, DM).
7
8### feat(mirada-greeter): greeter de carmen — login GPUI
9
10App nueva `crates/apps/mirada-greeter`: la pantalla de login del
11escritorio. Ventana GPUI con `app_id = "carmen.greeter"` para que el
12compositor la reconozca y la componga a pantalla completa.
13
14- Formulario usuario + contraseña (campo enmascarado). `Enter` encadena
15  los campos y dispara la autenticación.
16- Autentica con `brahman-auth` en un hilo de fondo (PAM demora ~2 s ante
17  un fallo — la UI no se congela). Backend por entorno:
18  `MIRADA_GREETER_MOCK=usuario:secreto` (dev) o PAM (`MIRADA_GREETER_PAM`,
19  por defecto `carmen`).
20- En éxito imprime un `SessionTicket` a stdout y termina; el compositor
21  lo leerá para el traspaso a modo sesión (siguiente slice).
22
23Para el contrato del tiquet (`brahman-auth::SessionTicket`) y el modo
24enmascarado de `nahual-widget-text-input`, ver los changelogs de
25`protocol/` y `nahual`.
26
27### feat(mirada): inyección de entorno de tema a los hijos del compositor
28
29`spawn_command` del compositor inyecta `THEME_ENV` a cada proceso hijo:
30
31- `XDG_CURRENT_DESKTOP=mirada` → `xdg-desktop-portal` enruta hacia el
32  backend `mirada-portal`.
33- `QT_QPA_PLATFORMTHEME=gtk3` → las apps Qt siguen el tema GTK, y por
34  tanto el `gtk.css` que genera `nahual-theme`.
35
36Cierra la segunda mitad de la uniformización del tema: portal
37(claro/oscuro + acento por protocolo) + `gtk.css` generado por
38`nahual-theme::toolkit` + esta inyección → GTK y Qt alineados con el
39tema de nahual.
40
41### feat(mirada-portal): backend de tema — org.freedesktop.appearance
42
43App nueva `crates/apps/mirada-portal`: backend de `xdg-desktop-portal`
44para carmen. Implementa `org.freedesktop.impl.portal.Settings` y publica
45un único namespace, `org.freedesktop.appearance`, con tres claves:
46
47- `color-scheme` — `1` oscuro / `2` claro,
48- `accent-color` — `(ddd)` RGB,
49- `contrast` — `1` alto / `0` normal.
50
51GTK4/libadwaita, Qt6, Firefox y Chromium leen ese namespace por
52protocolo: con el portal activo, todos respetan claro/oscuro + acento del
53escritorio **sin tocar sus archivos de config**. Es la primera mitad de
54la uniformización del tema (la segunda es inyección de entorno + CSS
55generado para la paleta completa).
56
57- **Fuente del tema**: el archivo que persiste `nahual-theme`
58  (`$XDG_CONFIG_HOME/nahual/theme`). El daemon lo vigila con `notify`;
59  al cambiar, recomputa y emite `SettingChanged` — las apps voltean en
60  vivo.
61- **`theme_facts.rs`**: tabla pura nombre-de-tema → hechos del portal
62  (oscuro, acento HSL, contraste) + conversión HSL→RGB. Espeja
63  `nahual_theme::Theme::all()` sin enlazar GPUI, para que el daemon
64  quede liviano. Nombre desconocido → `FALLBACK` (oscuro, acento gris).
65- **D-Bus**: bus de **sesión**, `org.freedesktop.impl.portal.desktop.
66  mirada` en `/org/freedesktop/portal/desktop`. Mismo patrón `zbus 4`
67  que los shims de `compat/`.
68- **`data/`**: `mirada.portal` + `mirada-portals.conf` + el `.service`
69  de activación D-Bus. El frontend genérico `xdg-desktop-portal` enruta
70  hacia este backend; ver el README del crate.
71- 13 tests (`theme_facts` + helpers del protocolo). Smoke verificado
72  sobre un bus de sesión efímero (`dbus-run-session`): `ReadAll`,
73  `ReadOne`, `Read` y emisión de `SettingChanged` al cambiar el tema.

mirada.md

Changelog — mirada

Compositor Wayland del monorepo (nombre de proyecto: carmen). Arquitectura 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-greeter): greeter de carmen — login GPUI

App nueva crates/apps/mirada-greeter: la pantalla de login del escritorio. Ventana GPUI con app_id = "carmen.greeter" para que el compositor la reconozca y la componga a pantalla completa.

Para el contrato del tiquet (brahman-auth::SessionTicket) y el modo enmascarado de nahual-widget-text-input, ver los changelogs de protocol/ y nahual.

feat(mirada): inyección de entorno de tema a los hijos del compositor

spawn_command del compositor inyecta THEME_ENV a cada proceso hijo:

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 para carmen. Implementa org.freedesktop.impl.portal.Settings y publica un único namespace, org.freedesktop.appearance, con tres claves:

GTK4/libadwaita, Qt6, Firefox y Chromium leen ese namespace por protocolo: con el portal activo, todos respetan claro/oscuro + acento del escritorio sin tocar sus archivos de config. Es la primera mitad de la uniformización del tema (la segunda es inyección de entorno + CSS generado para la paleta completa).