# uevent-relay — la pieza que le faltaba al hotplug de la imagen. # # ══ QUÉ ARREGLA, MEDIDO EN METAL EL 2026-10-15 ═════════════════════════════════════════════════ # *«los accesorios no aparecen cuando se conectan después de iniciar»*. El kernel emite sus uevents # al grupo netlink 1; `libudev-zero` abre su monitor `"udev"` —el que pide `libinput`— en el grupo # 0x4, que es donde `udevd` reenvía lo ya procesado. **Sin `udevd` nadie emite nunca al 0x4**, así # que el monitor no recibe un solo evento en toda la sesión y todo lo que se enchufa después de # arrancar es invisible. Es el contrato de libudev-zero, escrito en su README: hay que # rebroadcastear, y «hotplugging support is fully optional» — takana se salteó ese paso. # # El detalle completo (incluida la razón de que esto sea un reenviador y no un parche de una línea a # libudev-zero: la carrera que el propio autor advierte) está en el encabezado del crate. # # ⚠ **Va en TODOS los perfiles que lleven `libudev-zero`.** Sin él, el escritorio funciona con lo que # estaba enchufado al arrancar y con nada más: un ratón USB que se conecta después no mueve el # puntero, y el síntoma no nombra a ninguna de las tres piezas que participan. name = "uevent-relay" version = "0.0.1" license = "MIT" [source] repo = "https://git.tawasuyu.net/sergio/takana.git" commit = "5b761c17554ac412dde80ab2c2f77657fd1a90fe" [build] compiler = "zig-cc" target = "x86_64-linux-musl" link = "static" flags = ["-p", "uevent-relay"] # ── La Card: arje lo levanta y lo vuelve a levantar ─────────────────────────────────────────────── # `scope = "system"` porque el reenvío es de la MÁQUINA y no de una sesión: el greeter todavía no # tiene a nadie dentro y ya hace falta que un teclado enchufado aparezca. # # El backoff es corto a propósito: si esto muere, el hotplug de la máquina muere con él, y el único # síntoma es que los accesorios dejan de aparecer — exactamente el defecto que viene a cerrar, pero # intermitente, que es peor. Que vuelva rápido. [[service]] label = "uevent-relay" id = "01M4ZQ8H3NKQ7VPT5WRXB4YJ6C" exec = "/usr/bin/uevent-relay" scope = "system" restart = { initial_ms = 200, max_ms = 5000 }