Files
takana/recipes/atuq
Sergio 2660063f99 atuq v0.4: el branding que se VE estaba en las imágenes del zip, no en el texto
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.
2026-09-05 16:45:58 +00:00
..

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: #c15728 el zorro, #1b6470 el disco, #04161d el anillo, #f5ecde los 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.ftl lleva 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 del jarlog cuando el PGO exista, o se tira a la basura la optimización de arranque.
  • La extensión de sct y el host de native messaging (SDD 26 §6.1 y §7).