feat(perfiles): se puede ESCRIBIR coreano — el primer método de entrada entra a los 5 escritorios
Las fuentes Noto del 19-oct hicieron que la distro LEA chino, japonés, coreano, árabe e hindi. Esto
es lo que faltaba para ESCRIBIRLOS. `fcitx5` se construyó ese día y **no se declaró hasta hoy a
propósito**: un marco sin motor es una barra de candidatos que no convierte nada.
Entran los TRES juntos, y el tercero por una razón que casi se me escapa:
fcitx5 el marco — daemon, protocolo y barra. Habla `zwp_text_input_v3` /
`zwp_input_method_v2`, que `mirada-compositor` registra (setup.rs:600-602)
fcitx5-hangul el MOTOR coreano
libhangul ⚠ no es sólo dep de build: su código va estático dentro del addon, pero el
diccionario hanja NO — la ruta `/usr/share/libhangul/hanja/hanja.txt` está
HORNEADA en la `.a` (medido con `strings`). Sin este paquete en la imagen, la
conversión hanja busca un fichero que no existe: el código está y el dato no
El coreano primero por coste MEDIDO, no por preferencia: deps nuevas por motor — coreano **1**,
japonés 2 (`anthy` + `fcitx5-qt`), chino 6 (`libime`, `libpinyin`, `opencc`, `fcitx5-lua`,
`fcitx5-qt` y **qt6-qtwebengine**), y el chino además necesita Qt fuera de `incoming-kde`.
⚠ **PESO, y conviene decirlo con el número: 294 MB** por imagen (fcitx5 284 + libhangul 6,6 + motor
3,3). Y medido con readelf, **el 87 % de los binarios de fcitx5 son secciones `.debug_*`** — 294 MB
de 334, o sea que desnudado serían ~40 MB. **No es una anomalía suya**: `foot` y `mpv` también van
sin desnudar, es la norma del corpus, y su sitio es la campaña del split de debug (SDD 23). Lo dejo
medido acá porque es el renglón más gordo que he declarado y el número es accionable.
Y el censo se corrige: pedía `anthy`, `libpinyin` y `hangul` —las bibliotecas MOTOR— cuando lo que
se declara son los paquetes `fcitx5-*`. Con `fcitx5-hangul` ya sellado seguía contando «hangul» como
hueco: un hueco falso por nombrar la pieza de abajo en vez de la que viaja. Corregido, la categoría
pasa de 5/6 a **3/6** y el total a 147.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Semantic delta
No definition changed: this change is text, documentation or data.
2 files · +149 −2
- docs/state/targets.toml +140 −0
- scripts/censo-distro.py +9 −2
diff --git a/docs/state/targets.toml b/docs/state/targets.toml
index fd5911f6..a958fd7c 100644
--- a/docs/state/targets.toml
+++ b/docs/state/targets.toml
@@ -513,6 +513,34 @@ paquetes = [
# noto-fonts-cjk 86 MB 2 .ttc; cada uno trae zh-Hans, zh-Hant, ja y ko a la vez
# noto-fonts-emoji 10 MB NotoColorEmoji — fontconfig ya la prefiere de fábrica, sin `.conf`
"noto-fonts", "noto-fonts-cjk", "noto-fonts-emoji",
+ # ── ESCRIBIR, NO SÓLO LEER (2026-10-20) ──────────────────────────────────────────────────────
+ # Las fuentes Noto del 19-oct hicieron que la distro LEA chino, japonés, coreano, árabe e hindi.
+ # Esto es lo que falta para ESCRIBIRLOS: un teclado tiene cien teclas y esos sistemas no se
+ # teclean uno-a-uno. `censo-distro.py` marcaba la categoría «escribir en esos idiomas» 5 de 6.
+ #
+ # Entran los TRES JUNTOS y el orden del razonamiento importa:
+ # `fcitx5` el marco: daemon, protocolo y barra de candidatos. Habla
+ # `zwp_text_input_v3` / `zwp_input_method_v2`, que `mirada-compositor` registra
+ # (`setup.rs:600-602`) — sin eso ningún IME serviría en esta distro.
+ # `fcitx5-hangul` el MOTOR coreano. Sin un motor, el marco es una barra que no convierte nada:
+ # la figura de `crun` sin podman, y la razón por la que fcitx5 se construyó el
+ # 19-oct y NO se declaró hasta hoy.
+ # `libhangul` ⚠ y no es sólo dep de build. Su código va ESTÁTICO dentro del addon, pero el
+ # diccionario hanja NO: la ruta `/usr/share/libhangul/hanja/hanja.txt` está
+ # HORNEADA en la `.a` (medido con `strings`), así que sin este paquete en la
+ # imagen la conversión hanja busca un fichero que no existe. Es la figura de
+ # «un directorio vacío como sonda» por el otro lado: el código está, el dato no.
+ #
+ # ⚠ EL COREANO PRIMERO POR COSTE MEDIDO, no por preferencia: deps nuevas por motor —coreano 1
+ # (`libhangul`), japonés 2 (`anthy` + `fcitx5-qt`), chino 6 (`libime`, `libpinyin`, `opencc`,
+ # `fcitx5-lua`, `fcitx5-qt` y **qt6-qtwebengine**). El chino además necesita que Qt salga de
+ # `incoming-kde` al corpus. Los otros dos son campañas con su propio presupuesto.
+ #
+ # ⚠ PESO: 294 MB (fcitx5 284 + libhangul 6,6 + el motor 3,3). Y **el 87 % de los binarios de
+ # fcitx5 son secciones `.debug_*`** —294 MB de 334, medido con readelf—, así que desnudado serían
+ # ~40 MB. No es una anomalía suya: `foot` y `mpv` también van sin desnudar, es la norma del corpus
+ # y su sitio es la campaña del split de debug (SDD 23), no esta línea.
+ "fcitx5", "fcitx5-hangul", "libhangul",
"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
@@ -617,6 +645,34 @@ paquetes = [
# noto-fonts-cjk 86 MB 2 .ttc; cada uno trae zh-Hans, zh-Hant, ja y ko a la vez
# noto-fonts-emoji 10 MB NotoColorEmoji — fontconfig ya la prefiere de fábrica, sin `.conf`
"noto-fonts", "noto-fonts-cjk", "noto-fonts-emoji",
+ # ── ESCRIBIR, NO SÓLO LEER (2026-10-20) ──────────────────────────────────────────────────────
+ # Las fuentes Noto del 19-oct hicieron que la distro LEA chino, japonés, coreano, árabe e hindi.
+ # Esto es lo que falta para ESCRIBIRLOS: un teclado tiene cien teclas y esos sistemas no se
+ # teclean uno-a-uno. `censo-distro.py` marcaba la categoría «escribir en esos idiomas» 5 de 6.
+ #
+ # Entran los TRES JUNTOS y el orden del razonamiento importa:
+ # `fcitx5` el marco: daemon, protocolo y barra de candidatos. Habla
+ # `zwp_text_input_v3` / `zwp_input_method_v2`, que `mirada-compositor` registra
+ # (`setup.rs:600-602`) — sin eso ningún IME serviría en esta distro.
+ # `fcitx5-hangul` el MOTOR coreano. Sin un motor, el marco es una barra que no convierte nada:
+ # la figura de `crun` sin podman, y la razón por la que fcitx5 se construyó el
+ # 19-oct y NO se declaró hasta hoy.
+ # `libhangul` ⚠ y no es sólo dep de build. Su código va ESTÁTICO dentro del addon, pero el
+ # diccionario hanja NO: la ruta `/usr/share/libhangul/hanja/hanja.txt` está
+ # HORNEADA en la `.a` (medido con `strings`), así que sin este paquete en la
+ # imagen la conversión hanja busca un fichero que no existe. Es la figura de
+ # «un directorio vacío como sonda» por el otro lado: el código está, el dato no.
+ #
+ # ⚠ EL COREANO PRIMERO POR COSTE MEDIDO, no por preferencia: deps nuevas por motor —coreano 1
+ # (`libhangul`), japonés 2 (`anthy` + `fcitx5-qt`), chino 6 (`libime`, `libpinyin`, `opencc`,
+ # `fcitx5-lua`, `fcitx5-qt` y **qt6-qtwebengine**). El chino además necesita que Qt salga de
+ # `incoming-kde` al corpus. Los otros dos son campañas con su propio presupuesto.
+ #
+ # ⚠ PESO: 294 MB (fcitx5 284 + libhangul 6,6 + el motor 3,3). Y **el 87 % de los binarios de
+ # fcitx5 son secciones `.debug_*`** —294 MB de 334, medido con readelf—, así que desnudado serían
+ # ~40 MB. No es una anomalía suya: `foot` y `mpv` también van sin desnudar, es la norma del corpus
+ # y su sitio es la campaña del split de debug (SDD 23), no esta línea.
+ "fcitx5", "fcitx5-hangul", "libhangul",
# `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
@@ -1231,6 +1287,34 @@ paquetes = [
# noto-fonts-cjk 86 MB 2 .ttc; cada uno trae zh-Hans, zh-Hant, ja y ko a la vez
# noto-fonts-emoji 10 MB NotoColorEmoji — fontconfig ya la prefiere de fábrica, sin `.conf`
"noto-fonts", "noto-fonts-cjk", "noto-fonts-emoji",
+ # ── ESCRIBIR, NO SÓLO LEER (2026-10-20) ──────────────────────────────────────────────────────
+ # Las fuentes Noto del 19-oct hicieron que la distro LEA chino, japonés, coreano, árabe e hindi.
+ # Esto es lo que falta para ESCRIBIRLOS: un teclado tiene cien teclas y esos sistemas no se
+ # teclean uno-a-uno. `censo-distro.py` marcaba la categoría «escribir en esos idiomas» 5 de 6.
+ #
+ # Entran los TRES JUNTOS y el orden del razonamiento importa:
+ # `fcitx5` el marco: daemon, protocolo y barra de candidatos. Habla
+ # `zwp_text_input_v3` / `zwp_input_method_v2`, que `mirada-compositor` registra
+ # (`setup.rs:600-602`) — sin eso ningún IME serviría en esta distro.
+ # `fcitx5-hangul` el MOTOR coreano. Sin un motor, el marco es una barra que no convierte nada:
+ # la figura de `crun` sin podman, y la razón por la que fcitx5 se construyó el
+ # 19-oct y NO se declaró hasta hoy.
+ # `libhangul` ⚠ y no es sólo dep de build. Su código va ESTÁTICO dentro del addon, pero el
+ # diccionario hanja NO: la ruta `/usr/share/libhangul/hanja/hanja.txt` está
+ # HORNEADA en la `.a` (medido con `strings`), así que sin este paquete en la
+ # imagen la conversión hanja busca un fichero que no existe. Es la figura de
+ # «un directorio vacío como sonda» por el otro lado: el código está, el dato no.
+ #
+ # ⚠ EL COREANO PRIMERO POR COSTE MEDIDO, no por preferencia: deps nuevas por motor —coreano 1
+ # (`libhangul`), japonés 2 (`anthy` + `fcitx5-qt`), chino 6 (`libime`, `libpinyin`, `opencc`,
+ # `fcitx5-lua`, `fcitx5-qt` y **qt6-qtwebengine**). El chino además necesita que Qt salga de
+ # `incoming-kde` al corpus. Los otros dos son campañas con su propio presupuesto.
+ #
+ # ⚠ PESO: 294 MB (fcitx5 284 + libhangul 6,6 + el motor 3,3). Y **el 87 % de los binarios de
+ # fcitx5 son secciones `.debug_*`** —294 MB de 334, medido con readelf—, así que desnudado serían
+ # ~40 MB. No es una anomalía suya: `foot` y `mpv` también van sin desnudar, es la norma del corpus
+ # y su sitio es la campaña del split de debug (SDD 23), no esta línea.
+ "fcitx5", "fcitx5-hangul", "libhangul",
# `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
@@ -1485,6 +1569,34 @@ paquetes = [
# noto-fonts-cjk 86 MB 2 .ttc; cada uno trae zh-Hans, zh-Hant, ja y ko a la vez
# noto-fonts-emoji 10 MB NotoColorEmoji — fontconfig ya la prefiere de fábrica, sin `.conf`
"noto-fonts", "noto-fonts-cjk", "noto-fonts-emoji",
+ # ── ESCRIBIR, NO SÓLO LEER (2026-10-20) ──────────────────────────────────────────────────────
+ # Las fuentes Noto del 19-oct hicieron que la distro LEA chino, japonés, coreano, árabe e hindi.
+ # Esto es lo que falta para ESCRIBIRLOS: un teclado tiene cien teclas y esos sistemas no se
+ # teclean uno-a-uno. `censo-distro.py` marcaba la categoría «escribir en esos idiomas» 5 de 6.
+ #
+ # Entran los TRES JUNTOS y el orden del razonamiento importa:
+ # `fcitx5` el marco: daemon, protocolo y barra de candidatos. Habla
+ # `zwp_text_input_v3` / `zwp_input_method_v2`, que `mirada-compositor` registra
+ # (`setup.rs:600-602`) — sin eso ningún IME serviría en esta distro.
+ # `fcitx5-hangul` el MOTOR coreano. Sin un motor, el marco es una barra que no convierte nada:
+ # la figura de `crun` sin podman, y la razón por la que fcitx5 se construyó el
+ # 19-oct y NO se declaró hasta hoy.
+ # `libhangul` ⚠ y no es sólo dep de build. Su código va ESTÁTICO dentro del addon, pero el
+ # diccionario hanja NO: la ruta `/usr/share/libhangul/hanja/hanja.txt` está
+ # HORNEADA en la `.a` (medido con `strings`), así que sin este paquete en la
+ # imagen la conversión hanja busca un fichero que no existe. Es la figura de
+ # «un directorio vacío como sonda» por el otro lado: el código está, el dato no.
+ #
+ # ⚠ EL COREANO PRIMERO POR COSTE MEDIDO, no por preferencia: deps nuevas por motor —coreano 1
+ # (`libhangul`), japonés 2 (`anthy` + `fcitx5-qt`), chino 6 (`libime`, `libpinyin`, `opencc`,
+ # `fcitx5-lua`, `fcitx5-qt` y **qt6-qtwebengine**). El chino además necesita que Qt salga de
+ # `incoming-kde` al corpus. Los otros dos son campañas con su propio presupuesto.
+ #
+ # ⚠ PESO: 294 MB (fcitx5 284 + libhangul 6,6 + el motor 3,3). Y **el 87 % de los binarios de
+ # fcitx5 son secciones `.debug_*`** —294 MB de 334, medido con readelf—, así que desnudado serían
+ # ~40 MB. No es una anomalía suya: `foot` y `mpv` también van sin desnudar, es la norma del corpus
+ # y su sitio es la campaña del split de debug (SDD 23), no esta línea.
+ "fcitx5", "fcitx5-hangul", "libhangul",
# ⚠ «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.
@@ -1758,6 +1870,34 @@ paquetes = [
# noto-fonts-cjk 86 MB 2 .ttc; cada uno trae zh-Hans, zh-Hant, ja y ko a la vez
# noto-fonts-emoji 10 MB NotoColorEmoji — fontconfig ya la prefiere de fábrica, sin `.conf`
"noto-fonts", "noto-fonts-cjk", "noto-fonts-emoji",
+ # ── ESCRIBIR, NO SÓLO LEER (2026-10-20) ──────────────────────────────────────────────────────
+ # Las fuentes Noto del 19-oct hicieron que la distro LEA chino, japonés, coreano, árabe e hindi.
+ # Esto es lo que falta para ESCRIBIRLOS: un teclado tiene cien teclas y esos sistemas no se
+ # teclean uno-a-uno. `censo-distro.py` marcaba la categoría «escribir en esos idiomas» 5 de 6.
+ #
+ # Entran los TRES JUNTOS y el orden del razonamiento importa:
+ # `fcitx5` el marco: daemon, protocolo y barra de candidatos. Habla
+ # `zwp_text_input_v3` / `zwp_input_method_v2`, que `mirada-compositor` registra
+ # (`setup.rs:600-602`) — sin eso ningún IME serviría en esta distro.
+ # `fcitx5-hangul` el MOTOR coreano. Sin un motor, el marco es una barra que no convierte nada:
+ # la figura de `crun` sin podman, y la razón por la que fcitx5 se construyó el
+ # 19-oct y NO se declaró hasta hoy.
+ # `libhangul` ⚠ y no es sólo dep de build. Su código va ESTÁTICO dentro del addon, pero el
+ # diccionario hanja NO: la ruta `/usr/share/libhangul/hanja/hanja.txt` está
+ # HORNEADA en la `.a` (medido con `strings`), así que sin este paquete en la
+ # imagen la conversión hanja busca un fichero que no existe. Es la figura de
+ # «un directorio vacío como sonda» por el otro lado: el código está, el dato no.
+ #
+ # ⚠ EL COREANO PRIMERO POR COSTE MEDIDO, no por preferencia: deps nuevas por motor —coreano 1
+ # (`libhangul`), japonés 2 (`anthy` + `fcitx5-qt`), chino 6 (`libime`, `libpinyin`, `opencc`,
+ # `fcitx5-lua`, `fcitx5-qt` y **qt6-qtwebengine**). El chino además necesita que Qt salga de
+ # `incoming-kde` al corpus. Los otros dos son campañas con su propio presupuesto.
+ #
+ # ⚠ PESO: 294 MB (fcitx5 284 + libhangul 6,6 + el motor 3,3). Y **el 87 % de los binarios de
+ # fcitx5 son secciones `.debug_*`** —294 MB de 334, medido con readelf—, así que desnudado serían
+ # ~40 MB. No es una anomalía suya: `foot` y `mpv` también van sin desnudar, es la norma del corpus
+ # y su sitio es la campaña del split de debug (SDD 23), no esta línea.
+ "fcitx5", "fcitx5-hangul", "libhangul",
# `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
diff --git a/scripts/censo-distro.py b/scripts/censo-distro.py
index 3ce96909..0e595c8e 100755
--- a/scripts/censo-distro.py
+++ b/scripts/censo-distro.py
@@ -53,8 +53,15 @@ CHECKLIST = {
'cuadraditos en chino, japonés, coreano, árabe, hindi, tailandés y emoji',
['noto-fonts-cjk', 'noto-fonts-emoji', 'noto-fonts', 'noto-fonts-extra']),
'escribir en esos idiomas': (
- 'una fuente deja LEER; para ESCRIBIR hace falta un método de entrada',
- ['fcitx5', 'ibus', 'anthy', 'libpinyin', 'hangul', 'rime']),
+ 'una fuente deja LEER; para ESCRIBIR hace falta un método de entrada. ✅ El marco `fcitx5` '
+ 'y el motor COREANO entraron el 2026-10-20 (con `libhangul`, que viaja por su diccionario '
+ 'hanja: la ruta está horneada en la .a). Faltan los otros idiomas. '
+ '⚠ Los renglones se nombran como los PAQUETES de fcitx5, no como las bibliotecas motor: mi '
+ 'primera versión pedía `anthy`, `libpinyin` y `hangul`, y con `fcitx5-hangul` ya sellado el '
+ 'censo seguía contando «hangul» como hueco — un hueco falso por nombrar la pieza de abajo '
+ 'en vez de la que se declara',
+ ['fcitx5', 'ibus', 'fcitx5-hangul', 'fcitx5-anthy', 'fcitx5-chinese-addons',
+ 'fcitx5-rime']),
'accesibilidad': (
'sin lector de pantalla ni voz la distro es inusable para quien no ve',
['orca', 'speech-dispatcher', 'espeak-ng', 'brltty']),