From 8f681a224bf1a5b3a6ffa7c99135e2a186b34cb2 Mon Sep 17 00:00:00 2001 From: Sergio Date: Wed, 9 Sep 2026 20:47:06 +0000 Subject: [PATCH] marca: el simbolo como arte de terminal, y la via al fetch de shuma MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit scripts/logo-ascii.py emite la tocapu 7x7 en color (ANSI 24-bit) y en monocromo. Se DERIVA del SVG en vez de dibujarse a mano: una copia aparte se desincroniza el dia que la marca cambie y nadie se entera. Para shuma: su fetch no lleva arte ASCII a proposito —su propio doc explica que los *fetch clasicos empaquetan el ASCII de trescientas distros y que eso envejece— pero expone SHUMA_FETCH_LOGO, que toma una IMAGEN. Y el hallazgo que hay que dejar escrito: NO sirve exportarla desde el perfil de la shell. shuma absorbe el entorno de la login shell, pero su es_denegada rechaza todo lo que empiece con SHUMA_, por diseño. La via correcta es su propio env.json, que aplica los grupos activos al proceso al arrancar. El icono se instala fuera del repo (~/.local/share/pixmaps/takana.png): una ruta dentro del arbol se rompe cuando el repo se mueve, que es literalmente lo que paso hoy con ~/hammer. --- docs/marca/README.md | 44 +++++++++++++++++++++++++++++ docs/marca/simbolo.ansi | 7 +++++ docs/marca/simbolo.txt | 7 +++++ scripts/logo-ascii.py | 61 +++++++++++++++++++++++++++++++++++++++++ 4 files changed, 119 insertions(+) create mode 100644 docs/marca/simbolo.ansi create mode 100644 docs/marca/simbolo.txt create mode 100755 scripts/logo-ascii.py diff --git a/docs/marca/README.md b/docs/marca/README.md index 9d3388b6..99788c9e 100644 --- a/docs/marca/README.md +++ b/docs/marca/README.md @@ -34,3 +34,47 @@ Ejemplos: «Forjado en 41 s.» · «Idéntico al build 7f3a…» · `takana forj ## Ecosistema TAWASUYU (el territorio: apps, compositor, filosofía) × TAKANA (la herramienta: distro, forja determinista). + +--- + +## En terminal: el símbolo como arte de `*fetch` + +`scripts/logo-ascii.py` emite el símbolo al estilo de un `*fetch`. **Se deriva del SVG**, no se +dibuja a mano: una copia dibujada aparte se desincroniza el día que la marca cambie y nadie se +entera. La grilla es la tocapu 7×7 y cada celda ocupa dos columnas para salir cuadrada (los +caracteres de terminal son ~2:1). + +```sh +scripts/logo-ascii.py # color, ANSI 24-bit +scripts/logo-ascii.py --plano # monocromo, para pipes y TERM sin color +scripts/logo-ascii.py --regenerar # reescribe simbolo.ansi y simbolo.txt +``` + +- `simbolo.ansi` — listo para `cat`. +- `simbolo.txt` — monocromo, densidad decreciente del extremo del gradiente (`#`) a la chispa (`@`). + +## En el fetch de shuma + +El fetch de shuma **no lleva arte ASCII y es a propósito**: su `logo_de_la_distro` documenta que los +`*fetch` clásicos empaquetan el ASCII de trescientas distros y que eso es una galería que envejece; +él le pregunta a la máquina. Lo que sí expone es una válvula para que el operador mande su propio +archivo — **una imagen, PNG o SVG**, no ASCII: + +``` +SHUMA_FETCH_LOGO= +``` + +⚠ **No sirve exportarla desde `~/.zshenv` ni `~/.zshrc`.** shuma absorbe el entorno de la shell de +login (`wire_login_env`), pero su `es_denegada` **rechaza todo lo que empiece con `SHUMA_`** — son +«cosas que shuma gobierna por su cuenta». Comprobado en `login_env.rs`. + +La vía que sí funciona es su propio mecanismo, que aplica los grupos activos al proceso al arrancar +(`modelo.rs`, `apply_env_group`) y sobrevive reinicios: + +```sh +# desde un tab de shuma, o escribiendo ~/.config/shuma/env.json a mano +:env SHUMA_FETCH_LOGO=~/.local/share/pixmaps/takana.png +``` + +El icono se instala **fuera del repo** a propósito: una ruta dentro del árbol se rompe el día que el +repo se mueve, que es exactamente lo que pasó el 2026-09-09 con `~/hammer`. diff --git a/docs/marca/simbolo.ansi b/docs/marca/simbolo.ansi new file mode 100644 index 00000000..5ab05e50 --- /dev/null +++ b/docs/marca/simbolo.ansi @@ -0,0 +1,7 @@ +██████████████ + ██████████ +██████████████ + ██ + ██ + ██ + ██ diff --git a/docs/marca/simbolo.txt b/docs/marca/simbolo.txt new file mode 100644 index 00000000..831b5d14 --- /dev/null +++ b/docs/marca/simbolo.txt @@ -0,0 +1,7 @@ +##**++++++**## + **++@@++** +##**++++++**## + ** + ## + ## + ## diff --git a/scripts/logo-ascii.py b/scripts/logo-ascii.py new file mode 100755 index 00000000..e67884fd --- /dev/null +++ b/scripts/logo-ascii.py @@ -0,0 +1,61 @@ +#!/usr/bin/env python3 +"""Emite el símbolo de takana como arte de terminal, al estilo de los `*fetch`. + +Se DERIVA del SVG de `docs/marca/`, no se dibuja a mano: una copia dibujada +aparte se desincroniza del símbolo el día que la marca cambie, y nadie se +entera. La grilla es la tocapu 7x7 y cada celda ocupa dos columnas para que +salga cuadrada en una terminal (los caracteres son ~2:1 de alto). + +Uso: + scripts/logo-ascii.py # color (ANSI 24-bit) + scripts/logo-ascii.py --plano # monocromo, para pipes y TERM tontos + scripts/logo-ascii.py --regenerar # reescribe docs/marca/simbolo.{ansi,txt} +""" +import re, sys, pathlib + +RAIZ = pathlib.Path(__file__).resolve().parent.parent +SVG = RAIZ / "docs/marca/simbolo-fondo-oscuro.svg" +# Monocromo: densidad decreciente, del extremo del gradiente a la chispa. +DENSIDAD = {"#A63A25": "#", "#DF6B2A": "*", "#E3A63D": "+", "#FFF6DE": "@"} + + +def grilla(): + s = SVG.read_text() + # El SVG trae un manifiesto C2PA enorme en ; los rects van después. + cuerpo = s[s.rfind("") + 11:] if "" in s else s + celdas = {} + for m in re.finditer( + r'