bb21c28eb1
App GPUI con app_id carmen.greeter: formulario usuario+contraseña que autentica con brahman-auth en un hilo de fondo y, en éxito, emite un SessionTicket por stdout para que el compositor haga el traspaso a modo sesión. Backend mock (MIRADA_GREETER_MOCK) o PAM. Incluye brahman-auth::SessionTicket (contrato de tiquet greeter→compositor, serializado a una línea con prefijo versionado) y el modo enmascarado de nahual-widget-text-input (TextInput::with_mask para contraseñas). 18 tests nuevos; greeter verificado por compilación + clippy. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
1.4 KiB
1.4 KiB
mirada-greeter
El greeter (pantalla de login) del escritorio carmen.
Una ventana GPUI: el compositor mirada-compositor, cuando bootea en
modo greeter, la arranca como proceso hijo, la compone a pantalla
completa (la reconoce por app_id = "carmen.greeter") y le lee el
stdout.
Flujo
- El usuario teclea usuario + contraseña.
Enteren «usuario» pasa el foco a «contraseña»;Enteren «contraseña» autentica. - La autenticación corre con [
brahman-auth] en un hilo de fondo (PAM puede demorar ~2 s ante un fallo, no se congela la UI). - En éxito, el greeter imprime un
SessionTicketa stdout y termina. El compositor parsea esa línea y hace el traspaso a modo sesión sin reiniciar el servidor gráfico.
La línea de tiquet lleva el prefijo MIRADA-SESSION-TICKET-v1; el resto
del stdout (logs) se ignora.
Backend de autenticación
| Entorno | Backend |
|---|---|
| (por defecto) | PAM, servicio carmen (/etc/pam.d/carmen) |
MIRADA_GREETER_PAM=<servicio> |
PAM con otro servicio |
MIRADA_GREETER_MOCK=usuario:secreto |
Mock — credenciales fijas |
El modo mock sirve para iterar la UI en cajas sin PAM o con el greeter anidado dentro de otro escritorio:
MIRADA_GREETER_MOCK=demo:demo cargo run -p mirada-greeter
Pendiente
El consumo del tiquet en mirada-compositor (modo greeter +
BodyMode::Session + arranque de la sesión con setuid) — siguiente
slice del DM.