Capturé la pantalla con `grim` y por fin miré lo que el usuario miraba. El diagnóstico cambió
entero: la ventana SÍ estaba —el título decía «New Tab — atuq» y el icono del lanzador era el
zorro— pero la PÁGINA mostraba el logo y la palabra «Nightly».
O sea que la v0.2 rebrandeó lo que se lee y no lo que se ve. El branding de Gecko vive en TRES
sitios y sólo uno es texto FTL:
· `brand.ftl` — las cadenas nuevas (título de ventana, menús). Ya estaba.
· `brand.properties` — las cadenas VIEJAS, formato heredado. Seguía diciendo Nightly, y nadie lo
habría notado leyendo la receta: son 71 bytes en otra ruta del mismo zip.
· las imágenes de `chrome/browser/content/branding/` — TODO lo visible: el favicon de las páginas
internas (ese orbe azul en la pestaña), el logo de about:, y el «wordmark»,
que es una IMAGEN con la palabra dibujada, no un texto traducible.
Se reemplazan 10 imágenes + las dos tablas de cadenas + los dos wordmarks. Cada imagen va con LAS
MISMAS DIMENSIONES que la que sustituye (192, 384, 300x236, 16/32/48/64/128): son tamaños que el CSS
del chrome da por sentados, y meter otro tamaño descoloca la página en vez de rebrandearla. El
`about.png` (300x236, no cuadrado) lleva el medallón ENCAJADO y centrado, no estirado.
El wordmark conserva el `viewBox` exacto del original (0 0 372 99) y `fill="context-fill"`, que es
la convención de Gecko para que el color lo ponga quien lo usa — así sigue el tema claro/oscuro solo
en vez de imponer un color.
La variante «private» usa el mismo medallón a propósito: inventar una segunda marca para un modo del
navegador es ruido, y ese modo ya se distingue por su propio chrome.
MÉTODO, que es lo que más vale de esta vuelta: `grim` está en el corpus (incoming-wlr), se hidrata
en el mismo rootfs y captura la pantalla real desde dentro de la jaula. Dejé de decir «mirá tu
pantalla» y pasé a mirarla yo.
atuq — el envoltorio Gecko de la distro
atuq (quechua: zorro) es el navegador de la distro: un artefacto DERIVADO de firefox, no un
fork de su fuente. El diseño completo está en docs/26-atuq-envoltorio-gecko.md.
Este directorio ES la fuente de atuq — recipes/atuq.toml lo declara con source.dir y hammer lo
hashea por CONTENIDO. Editar un fichero de acá mueve el ArtifactHash; no hay commit que pinear.
Qué hay acá y dónde cae
| Acá | En el artefacto | Qué hace |
|---|---|---|
prefs/autoconfig.js |
defaults/pref/autoconfig.js |
Le dice a Gecko que lea atuq.cfg. Es el único gancho posible antes de que arranque el perfil. |
atuq.cfg |
<appdir>/atuq.cfg |
Prefs de fábrica + carga la hoja de estilo del chrome. |
chrome/atuq.css |
<appdir>/chrome/atuq.css |
El aspecto. Se inyecta como AGENT_SHEET desde atuq.cfg. |
distribution/policies.json |
<appdir>/distribution/policies.json |
Política de fábrica: telemetría, updates, y la instalación de la extensión de inicio. |
extension/ |
<appdir>/distribution/extensions/inicio@atuq.tawasuyu.xpi |
Página de inicio y pestaña nueva. |
Por qué la extensión se instala por POLÍTICA y no por carpeta
Dejar el .xpi en distribution/extensions/ era el mecanismo clásico de las distros y ya no
funciona: Firefox retiró el sideloading desde esa carpeta. Se comprobó midiendo, no leyendo — con
el XPI puesto ahí, el extensions.json del perfil no lo mencionaba siquiera, y el log no decía nada:
un fallo perfectamente silencioso.
El mecanismo vigente es ExtensionSettings en policies.json, con install_url apuntando al XPI
por ruta absoluta del FHS. Eso es estable acá porque el árbol se hidrata siempre en /usr/lib/atuq.
Por qué el CSS no es userChrome.css
userChrome.css vive en el PERFIL del usuario y exige que el usuario prenda
toolkit.legacyUserProfileCustomizations.stylesheets. Una distro no puede depender de eso: el
navegador tiene que verse como atuq la primera vez que arranca, con un perfil recién creado. La vía
que sí funciona a nivel de aplicación es el nsIStyleSheetService desde autoconfig, que es lo que
hace atuq.cfg.
La marca
El arte viene de un tablero de identidad del operador (2026-09-05): un zorro en medallón con cenefa andina, sobre disco teal y anillo noche.
branding/icons/atuq{16,32,48,64,128,256}.png— el medallón recortado del tablero, con máscara circular y alfa, reducido con LANCZOS desde un master de 1024 px. Se generan una vez y se copian; no se dibujan en cada build.- La paleta del chrome se muestreó del propio medallón, tomando el color más frecuente de cada
zona, en vez de estimarla a ojo:
#c15728el zorro,#1b6470el disco,#04161del anillo,#f5ecdelos reflejos. Un token escrito «parecido» es cómo una identidad se desalinea de su logo en tres ediciones. - Del tablero se toman la forma y el color; los eslóganes NO — el operador los descartó
explícitamente.
brand.ftllleva el nombre y nada más.
⚠ A 16 px el medallón pierde el detalle y queda como una mancha cálida redonda. Es intrínseco a un logo con cenefa, no un defecto del escalado: la salida sería un dibujo simplificado para ese tamaño, y eso lo decide quien dibujó el zorro.
Lo que TODAVÍA no está
- Re-empaque de
omni.ja: es donde va el chrome de verdad (split view, dientes propios). Trae dos condiciones ya sabidas: re-empacar determinista, y preservar el orden deljarlogcuando el PGO exista, o se tira a la basura la optimización de arranque. - La extensión de
scty el host de native messaging (SDD 26 §6.1 y §7).