gioser

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 1572Shell 203Rust 109Markdown 993728 Definiciones

⎇ 0f5f53259f607efa1d43a651f478b4ea2b16553c recipes/wtype.toml TOML · 57 líneas · 3.3 KB Historia crudo

atuq: el diálogo de la bóveda no abre, y el muro no es de la bóveda — ninguna ventana llimphi pinta f611751f8 · Sergio ·

1# wtype 0.4 — teclear en Wayland desde un script: `wtype "hola"`, `wtype -k Return`. Es xdotool para
2# Wayland, por el protocolo `zwp_virtual_keyboard_v1` (que el XML vendorea en `protocol/`).
3#
4# ── POR QUÉ ENTRA (2026-09-18): sin esto no se puede CONTESTAR un diálogo ───────────────────────
5# El corpus no tiene **ninguna** forma de meter una tecla en un compositor: ni `wtype`, ni `ydotool`,
6# ni nada que hable el protocolo de teclado virtual (comprobado sobre `recipes/` y sobre
7# `scripts/`). Mientras lo único que había que medir era «¿la ventana pinta?», daba igual: las
8# capturas y el log del protocolo contestan eso sin tocar nada. La bóveda de `atuq` rompe esa
9# comodidad, porque su promesa **es** una pregunta: `vault.fill` no entrega la contraseña hasta que
10# una persona diga que sí en `shuma-pregunta` (SDD 26 §7.sexies). Un guardián que no puede decir que
11# sí sólo puede medir la mitad de la función — que la puerta existe—, y nunca que la puerta se abre.
12#
13# No es sólo para la bóveda: es la pieza que le faltaba a **cualquier** arnés de escritorio de este
14# repo. Todos los de `scripts/wlr/` miran; ninguno toca.
15#
16# ⚠ Y NO va declarado en ningún perfil, a propósito: es un INSTRUMENTO, no parte del producto. Mismo
17# criterio que `llama-cpp` cuando entró sin imagen que la declarara — una imagen no crece por algo
18# que sólo usa el que mide. Los arneses lo montan como capa overlay desde el store.
19#
20# ── LA REPRODUCIBILIDAD, QUE ACÁ TIENE UNA TRAMPA A LA VISTA ───────────────────────────────────
21# `meson.build` arma la cadena de versión con `__DATE__` cuando encuentra `git`. Un macro de fecha
22# de compilación es exactamente lo que rompe un binario reproducible… salvo que el compilador
23# respete `SOURCE_DATE_EPOCH`, que es lo que hacen gcc y clang (y por lo tanto `zig cc`) desde hace
24# años: con la variable puesta —y takana la pone siempre— `__DATE__` deja de ser el reloj de pared.
25# Si algún día esta receta apareciera en `why-differs`, éste es el primer sospechoso y está escrito
26# acá para no volver a buscarlo.
27#
28# ⚠ El tag `v0.4` es ANOTADO: `git ls-remote --tags` devuelve DOS shas y el bueno es el `^{}`
29# (d71be3a7…), que es el commit. Pinear el sha del objeto tag valida y después no encuentra el árbol.
30name    = "wtype"
31version = "0.4"
32license = "MIT"
33
34[source]
35repo   = "https://github.com/atx/wtype.git"
36commit = "d71be3a7b3f93b534a2823fd68cabd7ac2a02359"  # v0.4 PELADO (^{commit})
37
38[build]
39compiler    = "zig-cc"
40target      = "x86_64-linux-musl"
41link        = "dynamic"
42zig_version = "0.13.0"
43
44[build.phases]
45configure = "meson setup output --prefix=/usr --buildtype=release --wrap-mode=nodownload"
46compile   = "ninja -C output"
47install   = '''
48set -e
49DESTDIR=/out ninja -C output install
50test -x /out/usr/bin/wtype || { echo "no quedó /out/usr/bin/wtype — ¿cambió el layout de meson?" >&2; exit 1; }
51'''
52
53[deps]
54# `wayland-cursor` y `wayland-client` salen los dos del paquete `wayland`; `xkbcommon` es
55# `libxkbcommon`. `rt` lo resuelve musl dentro de la libc y no hace falta declarar nada.
56build = ["meson", "samurai", "python3", "pkgconf", "wayland", "libxkbcommon", "expat", "libffi", "zlib"]
57run   = ["wayland", "libxkbcommon"]