SDD 26 §6.10: la mitad de sway queda cerrada, con la evidencia al lado

`dunst` 1.12.2 atiende `org.freedesktop.Notifications` en el cuarto escritorio.
La prueba no es que la receta selle: el bus ACTIVA al daemon y el daemon DIBUJA
—14.832 píxeles cambiados con el .service puesto, 0 sin él—.

Y queda anotada la media función que apareció de paso: dunstify segfaultea por
las dos GLib (estática del corpus + compartida que arrastra libnotify.so.4), o
sea que en este corpus quién enlaza qué GLib es parte del contrato.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NNFzrqFBEt6W7maGJKf2Xs
This commit is contained in:
Sergio
2026-09-07 18:15:50 +00:00
co-authored by Claude Opus 5
parent 4f9ee5430f
commit e98362925a
+15 -6
View File
@@ -583,13 +583,22 @@ escuche `org.freedesktop.Notifications`. Medido perfil por perfil:
escritorio-kde plasma-workspace ✓ completa
escritorio-gnome gnome-shell ✓ completa
escritorio-cosmic cosmic-notifications ✓ completa
escritorio-sway — ✗ MEDIA: nadie atiende
escritorio-sway dunst 1.12.2 ✓ completa — CERRADA el 2026-09-07
⚠ Y una trampa para quien vaya a cerrar la de sway: **el nombre `mako` YA ESTÁ OCUPADO en el
corpus** por el motor de plantillas de Python que usa Mesa para su codegen. No es el daemon de
notificaciones de wlroots. Escribir `recipes/mako.toml` para el daemon pisaría una receta viva de la
cadena de mesa — es exactamente la colisión de homónimos que la memoria del proyecto ya tiene
anotada. El daemon habrá que nombrarlo de otro modo o meterlo en `incoming-wlr`.
La de sway se cerró el mismo día con `recipes/incoming-wlr/dunst.toml`, y la trampa del homónimo
—**el nombre `mako` YA ESTÁ OCUPADO en el corpus** por el motor de plantillas de Python de Mesa— se
esquivó eligiendo dunst, que además habla D-Bus por GDBus y no por `sd-bus`, o sea sin receta nueva
de `basu`. La prueba no es que selle: `scripts/wlr/dunst-headless.sh` levanta sway headless y un bus
de sesión, manda un `notify-send` y **deja que el bus active el daemon solo** —el mismo camino que
recorre una página web en `atuq`—, y mide un diff de píxeles antes/después: 14.832 cambiados con el
`.service` puesto, 0 sin él. Evidencia en `docs/evidencia/dunst-sway-notificacion-2026-09-07.png`.
⚠ De paso apareció otra media función, y ésta toca a `libnotify` directamente: **`dunstify`
segfaultea hasta en `--help`** porque mezcla la GLib ESTÁTICA del corpus con la COMPARTIDA que
arrastra `libnotify.so.4` — dos copias de GObject en un proceso. No se shipea; el emisor es
`notify-send`, que viene dentro del artefacto de libnotify y enlaza toda la cadena compartida. Vale
como recordatorio de que en este corpus **quién enlaza qué GLib es parte del contrato**, no un
detalle del build.
**Lo que esta sección cambia de fondo:** hasta hoy la pregunta era «¿arranca?», y la respuesta era
sí. La pregunta que faltaba era «¿y qué NO puede hacer?», que ninguna métrica del repo respondía