tawasuyu

sergio/takana

> Una distribución Linux construida con un laboratorio funcional y hermético en el > sótano, y una terminal mutable, clásica y anárquica en el piso de arriba — diseñada > desde el suelo para que una IA programadora entienda, modifique y co…

TOML 1506Shell 186Rust 107Markdown 983639 Definitions

feat(perfiles): la máquina HABLA — 114 idiomas en los cinco escritorios

`censo-distro.py` marcaba «accesibilidad» **4 de 4 ausente**, y es el hueco que deja gente afuera de
verdad: sin voz, una distro no es incómoda para quien no ve — es **inusable**. Y ninguna otra métrica
del repo lo ve: el tablero puede estar en 1158/1158 y clausura 10 de 10 mientras la máquina es muda.

    espeak-ng   21 MB · 114 diccionarios de idioma · síntesis formante, sin modelos ni red ni GPU
                7 símbolos de audio + 3 libs de sonido en NEEDED + 364 ficheros de datos
    pcaudiolib  la salida de audio (pulse + alsa). Sin ella espeak-ng COMPILA IGUAL y sintetiza a
                .wav sin reproducir: `espeak-ng "hola"` no haría ruido
    sonic       velocidad sin cambiar el tono. No es opcional aunque su find_library no lleve
                REQUIRED: si no la encuentra, espeak-ng la CLONA de git y el sandbox no tiene red

Instala cuatro nombres (`espeak-ng`, `espeak`, `speak-ng`, `speak`) porque los scripts viejos
invocan los dos primeros.

Seis intentos, y lo que los hizo valer la pena es que **cada uno bajó un nivel real de la cadena**
en vez de repetir el mismo error: el `.pc` que me inventé · el patrón de detección de backends ·
el `else()` de cmake que clona de git · los `-l` de pulse/alsa que un `.a` no propaga · `libsndfile`
tres saltos más abajo · y mi guardián mirando el binario en vez de la `.so`.

⚠ Lo que NO cierra: **`orca`**, el lector de pantalla, necesita `at-spi2-core` y `py3-gobject`, los
dos sólo en `incoming-gnome` — la misma pila de introspección que bloqueó a `librsvg`, con el mismo
coste medido (promover arrastra 35 recetas de GNOME). Con esto la distro **habla**; que además **lea
la pantalla** es la otra mitad y es una decisión de campaña.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>

dcd0949ad0b4ce8a891b7534f85f28663588a63f · by Sergio · (2 d ago) · parent 4e49b625a · browse the tree at this commit

Semantic delta

No definition changed: this change is text, documentation or data.

1 files · +120 −0

diff --git a/docs/state/targets.toml b/docs/state/targets.toml
index fd0f3faa..3a03d96f 100644
--- a/docs/state/targets.toml
+++ b/docs/state/targets.toml
@@ -546,6 +546,30 @@ paquetes = [
   # menciona Qt ni una vez. `anthy-unicode` viaja por su DICCIONARIO (4 ficheros), igual que
   # `libhangul` por el hanja: sin los datos el motor carga y no convierte nada.
   "fcitx5", "fcitx5-hangul", "libhangul", "fcitx5-anthy", "anthy-unicode",
+  # ── LA MÁQUINA HABLA (2026-10-20) ────────────────────────────────────────────────────────────
+  # `censo-distro.py` marcaba «accesibilidad» **4 de 4 ausente**, y es el hueco que deja gente
+  # afuera de verdad: sin voz, una distro no es incómoda para quien no ve — es INUSABLE. Y ninguna
+  # otra métrica del repo lo ve: el tablero puede estar en 1158/1158 y clausura 10 de 10 mientras la
+  # máquina es muda.
+  #
+  # `espeak-ng` son **21 MB con 114 diccionarios de idioma**, por síntesis formante: sin modelos, sin
+  # red y sin GPU. Instala cuatro nombres (`espeak-ng`, `espeak`, `speak-ng`, `speak`) porque los
+  # scripts viejos invocan los dos primeros.
+  #
+  # Los tres van juntos y el orden es el de la cadena:
+  #   `espeak-ng`   el sintetizador y su `libespeak-ng.so` (lo que `orca` cargaría con dlopen)
+  #   `pcaudiolib`  la salida de audio. ⚠ Sin ella espeak-ng **compila igual** y sintetiza a `.wav`
+  #                 sin reproducir: `espeak-ng "hola"` no haría ruido. Verificado en el artefacto —
+  #                 la `.so` trae libpulse/libasound en NEEDED y exporta los `audio_object_*`
+  #   `sonic`       cambia la velocidad sin cambiar el tono. ⚠ No es opcional aunque su
+  #                 `find_library` no lleve REQUIRED: si no la encuentra, espeak-ng la CLONA de git
+  #                 en tiempo de build, y el sandbox no tiene red
+  #
+  # ⚠ Lo que esto NO cierra: **`orca`**, el lector de pantalla, necesita `at-spi2-core` y
+  # `py3-gobject`, los dos sólo en `incoming-gnome` — la misma pila de introspección que bloqueó a
+  # `librsvg`, con el mismo coste medido (promover arrastra 35 recetas de GNOME). Con esto la distro
+  # HABLA; que además LEA LA PANTALLA es la otra mitad y es una decisión de campaña.
+  "espeak-ng", "pcaudiolib", "sonic",
   "fontconfig-shared",     # /etc/fonts/fonts.conf y el soname que enlaza el riel
   "freetype-shared",       # libfontconfig.so.1 pide libfreetype.so.6: sin ella el riel muere al cargar
   "libpng-shared",         # y freetype pide libpng16.so.16 — la cadena entera entro por querer letras
@@ -683,6 +707,30 @@ paquetes = [
   # menciona Qt ni una vez. `anthy-unicode` viaja por su DICCIONARIO (4 ficheros), igual que
   # `libhangul` por el hanja: sin los datos el motor carga y no convierte nada.
   "fcitx5", "fcitx5-hangul", "libhangul", "fcitx5-anthy", "anthy-unicode",
+  # ── LA MÁQUINA HABLA (2026-10-20) ────────────────────────────────────────────────────────────
+  # `censo-distro.py` marcaba «accesibilidad» **4 de 4 ausente**, y es el hueco que deja gente
+  # afuera de verdad: sin voz, una distro no es incómoda para quien no ve — es INUSABLE. Y ninguna
+  # otra métrica del repo lo ve: el tablero puede estar en 1158/1158 y clausura 10 de 10 mientras la
+  # máquina es muda.
+  #
+  # `espeak-ng` son **21 MB con 114 diccionarios de idioma**, por síntesis formante: sin modelos, sin
+  # red y sin GPU. Instala cuatro nombres (`espeak-ng`, `espeak`, `speak-ng`, `speak`) porque los
+  # scripts viejos invocan los dos primeros.
+  #
+  # Los tres van juntos y el orden es el de la cadena:
+  #   `espeak-ng`   el sintetizador y su `libespeak-ng.so` (lo que `orca` cargaría con dlopen)
+  #   `pcaudiolib`  la salida de audio. ⚠ Sin ella espeak-ng **compila igual** y sintetiza a `.wav`
+  #                 sin reproducir: `espeak-ng "hola"` no haría ruido. Verificado en el artefacto —
+  #                 la `.so` trae libpulse/libasound en NEEDED y exporta los `audio_object_*`
+  #   `sonic`       cambia la velocidad sin cambiar el tono. ⚠ No es opcional aunque su
+  #                 `find_library` no lleve REQUIRED: si no la encuentra, espeak-ng la CLONA de git
+  #                 en tiempo de build, y el sandbox no tiene red
+  #
+  # ⚠ Lo que esto NO cierra: **`orca`**, el lector de pantalla, necesita `at-spi2-core` y
+  # `py3-gobject`, los dos sólo en `incoming-gnome` — la misma pila de introspección que bloqueó a
+  # `librsvg`, con el mismo coste medido (promover arrastra 35 recetas de GNOME). Con esto la distro
+  # HABLA; que además LEA LA PANTALLA es la otra mitad y es una decisión de campaña.
+  "espeak-ng", "pcaudiolib", "sonic",
   # `dejavu-fonts-nerd` es la MISMA DejaVu Sans Mono parcheada con Nerd Fonts (~10.000 glifos de
   # iconos: Powerline, Font Awesome, Devicons…) que usan starship, lsd, eza, neovim y las
   # statuslines; sin ellos dibujan cuadraditos. Se AÑADE, no reemplaza: la licencia de Bitstream
@@ -1330,6 +1378,30 @@ paquetes = [
   # menciona Qt ni una vez. `anthy-unicode` viaja por su DICCIONARIO (4 ficheros), igual que
   # `libhangul` por el hanja: sin los datos el motor carga y no convierte nada.
   "fcitx5", "fcitx5-hangul", "libhangul", "fcitx5-anthy", "anthy-unicode",
+  # ── LA MÁQUINA HABLA (2026-10-20) ────────────────────────────────────────────────────────────
+  # `censo-distro.py` marcaba «accesibilidad» **4 de 4 ausente**, y es el hueco que deja gente
+  # afuera de verdad: sin voz, una distro no es incómoda para quien no ve — es INUSABLE. Y ninguna
+  # otra métrica del repo lo ve: el tablero puede estar en 1158/1158 y clausura 10 de 10 mientras la
+  # máquina es muda.
+  #
+  # `espeak-ng` son **21 MB con 114 diccionarios de idioma**, por síntesis formante: sin modelos, sin
+  # red y sin GPU. Instala cuatro nombres (`espeak-ng`, `espeak`, `speak-ng`, `speak`) porque los
+  # scripts viejos invocan los dos primeros.
+  #
+  # Los tres van juntos y el orden es el de la cadena:
+  #   `espeak-ng`   el sintetizador y su `libespeak-ng.so` (lo que `orca` cargaría con dlopen)
+  #   `pcaudiolib`  la salida de audio. ⚠ Sin ella espeak-ng **compila igual** y sintetiza a `.wav`
+  #                 sin reproducir: `espeak-ng "hola"` no haría ruido. Verificado en el artefacto —
+  #                 la `.so` trae libpulse/libasound en NEEDED y exporta los `audio_object_*`
+  #   `sonic`       cambia la velocidad sin cambiar el tono. ⚠ No es opcional aunque su
+  #                 `find_library` no lleve REQUIRED: si no la encuentra, espeak-ng la CLONA de git
+  #                 en tiempo de build, y el sandbox no tiene red
+  #
+  # ⚠ Lo que esto NO cierra: **`orca`**, el lector de pantalla, necesita `at-spi2-core` y
+  # `py3-gobject`, los dos sólo en `incoming-gnome` — la misma pila de introspección que bloqueó a
+  # `librsvg`, con el mismo coste medido (promover arrastra 35 recetas de GNOME). Con esto la distro
+  # HABLA; que además LEA LA PANTALLA es la otra mitad y es una decisión de campaña.
+  "espeak-ng", "pcaudiolib", "sonic",
   # `dejavu-fonts-nerd` es la MISMA DejaVu Sans Mono parcheada con Nerd Fonts (~10.000 glifos de
   # iconos: Powerline, Font Awesome, Devicons…) que usan starship, lsd, eza, neovim y las
   # statuslines; sin ellos dibujan cuadraditos. Se AÑADE, no reemplaza: la licencia de Bitstream
@@ -1617,6 +1689,30 @@ paquetes = [
   # menciona Qt ni una vez. `anthy-unicode` viaja por su DICCIONARIO (4 ficheros), igual que
   # `libhangul` por el hanja: sin los datos el motor carga y no convierte nada.
   "fcitx5", "fcitx5-hangul", "libhangul", "fcitx5-anthy", "anthy-unicode",
+  # ── LA MÁQUINA HABLA (2026-10-20) ────────────────────────────────────────────────────────────
+  # `censo-distro.py` marcaba «accesibilidad» **4 de 4 ausente**, y es el hueco que deja gente
+  # afuera de verdad: sin voz, una distro no es incómoda para quien no ve — es INUSABLE. Y ninguna
+  # otra métrica del repo lo ve: el tablero puede estar en 1158/1158 y clausura 10 de 10 mientras la
+  # máquina es muda.
+  #
+  # `espeak-ng` son **21 MB con 114 diccionarios de idioma**, por síntesis formante: sin modelos, sin
+  # red y sin GPU. Instala cuatro nombres (`espeak-ng`, `espeak`, `speak-ng`, `speak`) porque los
+  # scripts viejos invocan los dos primeros.
+  #
+  # Los tres van juntos y el orden es el de la cadena:
+  #   `espeak-ng`   el sintetizador y su `libespeak-ng.so` (lo que `orca` cargaría con dlopen)
+  #   `pcaudiolib`  la salida de audio. ⚠ Sin ella espeak-ng **compila igual** y sintetiza a `.wav`
+  #                 sin reproducir: `espeak-ng "hola"` no haría ruido. Verificado en el artefacto —
+  #                 la `.so` trae libpulse/libasound en NEEDED y exporta los `audio_object_*`
+  #   `sonic`       cambia la velocidad sin cambiar el tono. ⚠ No es opcional aunque su
+  #                 `find_library` no lleve REQUIRED: si no la encuentra, espeak-ng la CLONA de git
+  #                 en tiempo de build, y el sandbox no tiene red
+  #
+  # ⚠ Lo que esto NO cierra: **`orca`**, el lector de pantalla, necesita `at-spi2-core` y
+  # `py3-gobject`, los dos sólo en `incoming-gnome` — la misma pila de introspección que bloqueó a
+  # `librsvg`, con el mismo coste medido (promover arrastra 35 recetas de GNOME). Con esto la distro
+  # HABLA; que además LEA LA PANTALLA es la otra mitad y es una decisión de campaña.
+  "espeak-ng", "pcaudiolib", "sonic",
   # ⚠ «sin puntero» lo decía este comentario desde que se escribió y NO era cierto: `cosmic-icons`
   # instala iconos de aplicación, no cursores, así que este perfil llegó a 43/43 con el puntero
   # INVISIBLE. Lo cazó `vigia-imagen.py` el 2026-09-04. Los cursores son su propia raíz.
@@ -1923,6 +2019,30 @@ paquetes = [
   # menciona Qt ni una vez. `anthy-unicode` viaja por su DICCIONARIO (4 ficheros), igual que
   # `libhangul` por el hanja: sin los datos el motor carga y no convierte nada.
   "fcitx5", "fcitx5-hangul", "libhangul", "fcitx5-anthy", "anthy-unicode",
+  # ── LA MÁQUINA HABLA (2026-10-20) ────────────────────────────────────────────────────────────
+  # `censo-distro.py` marcaba «accesibilidad» **4 de 4 ausente**, y es el hueco que deja gente
+  # afuera de verdad: sin voz, una distro no es incómoda para quien no ve — es INUSABLE. Y ninguna
+  # otra métrica del repo lo ve: el tablero puede estar en 1158/1158 y clausura 10 de 10 mientras la
+  # máquina es muda.
+  #
+  # `espeak-ng` son **21 MB con 114 diccionarios de idioma**, por síntesis formante: sin modelos, sin
+  # red y sin GPU. Instala cuatro nombres (`espeak-ng`, `espeak`, `speak-ng`, `speak`) porque los
+  # scripts viejos invocan los dos primeros.
+  #
+  # Los tres van juntos y el orden es el de la cadena:
+  #   `espeak-ng`   el sintetizador y su `libespeak-ng.so` (lo que `orca` cargaría con dlopen)
+  #   `pcaudiolib`  la salida de audio. ⚠ Sin ella espeak-ng **compila igual** y sintetiza a `.wav`
+  #                 sin reproducir: `espeak-ng "hola"` no haría ruido. Verificado en el artefacto —
+  #                 la `.so` trae libpulse/libasound en NEEDED y exporta los `audio_object_*`
+  #   `sonic`       cambia la velocidad sin cambiar el tono. ⚠ No es opcional aunque su
+  #                 `find_library` no lleve REQUIRED: si no la encuentra, espeak-ng la CLONA de git
+  #                 en tiempo de build, y el sandbox no tiene red
+  #
+  # ⚠ Lo que esto NO cierra: **`orca`**, el lector de pantalla, necesita `at-spi2-core` y
+  # `py3-gobject`, los dos sólo en `incoming-gnome` — la misma pila de introspección que bloqueó a
+  # `librsvg`, con el mismo coste medido (promover arrastra 35 recetas de GNOME). Con esto la distro
+  # HABLA; que además LEA LA PANTALLA es la otra mitad y es una decisión de campaña.
+  "espeak-ng", "pcaudiolib", "sonic",
   # `dejavu-fonts-nerd` es la MISMA DejaVu Sans Mono parcheada con Nerd Fonts (~10.000 glifos de
   # iconos: Powerline, Font Awesome, Devicons…) que usan starship, lsd, eza, neovim y las
   # statuslines; sin ellos dibujan cuadraditos. Se AÑADE, no reemplaza: la licencia de Bitstream