gnome: la primera extensión del catálogo — blur-my-shell v72, instalada Y activa
La imagen de GNOME traía la CÁSCARA: el shell sabe cargar extensiones —`ui/extensionSystem.js` va
en el gresource sin opción que lo apague y su gschema sellado trae `enabled-extensions`— pero no
había ninguna que cargar. Esta es la primera, y fija el patrón para las otras ~1400.
⚠ NO HIZO FALTA TLS, que era la conclusión fácil del análisis de ayer. glib-networking sólo lo pide
BAJARLAS desde extensions.gnome.org con el descargador del shell. Empaquetada, una extensión se
instala como cualquier receta y no toca la red.
LA FUENTE ES EL REPO DEL AUTOR, NO EL ZIP DE EGO, por dos razones y las dos medidas:
1. hammer no sabe abrir un zip: el fetch extrae con `tar -x` y GNU tar contesta «This does not
look like a tar archive». Ninguna receta del corpus usa .zip.
2. Y aunque lo abriera, el zip de EGO es un ARTEFACTO que construye EGO desde este mismo repo.
Pinear el zip es pinear el binario de un tercero; pinear el commit es pinear el código.
El tag v72 es el que EGO sirve para shell 48 —preguntado a su API, no supuesto— y el metadata.json
declara ['46','47','48','49','50']. ⚠ Eso hay que preguntarlo por extensión: nixpkgs va por GNOME
50 y hay extensiones que ya sólo declaran el major nuevo.
SIN `gnome-extensions pack`, que es lo que usa el Makefile de upstream y es el CLI que nuestra
receta del shell apaga (-Dextensions_tool=false; encenderlo costaría gnome-autoar y re-hashear
gnome-shell entero). No hace falta: `pack` sólo arma un zip que después alguien descomprime, y lo
que el shell lee es un DIRECTORIO. El layout no se inventó — se leyó del zip de EGO v72, que es la
salida de ese mismo `pack`, y el artefacto sellado se comparó contra él: **entradas idénticas, ni
sobras ni faltantes**, 45 .mo compilados.
⚠ INSTALADA ≠ ACTIVA, y esto es lo que hace que la receta sirva. El shell sólo carga lo que esté en
`org.gnome.shell enabled-extensions`: sin eso el artefacto sella, el fichero está en la imagen y NO
PASA NADA al arrancar — el mismo cuadro de «sellado ≠ instalado» que este repo ya se comió con
foot, mpv y libnotify, un escalón más abajo. Se resuelve con un override de GSettings, que cambia
el DEFAULT y deja ganar al dconf del usuario que no la quiera.
PROBADO DE VERDAD, no deducido: se compiló el directorio de esquemas del shell con el override
puesto (`glib-compile-schemas`, exit 0 y stderr vacío — que hay que mirar, porque sale 0 aunque
RECHACE un esquema) y después `gsettings get org.gnome.shell enabled-extensions` devolvió
['blur-my-shell@aunetx'].
⚠ TRAMPA ANOTADA PARA LA SEGUNDA: `enabled-extensions` es un ARRAY y el override lo escribe ENTERO.
Dos recetas con su propio override no se suman — gana la que compile última y la otra queda
instalada y muerta, sin error. Cuando llegue la segunda, la lista pasa a un solo sitio.
Y una corrección sobre la licencia, que casi firmo mal: el LICENSE es el texto del GPLv3, y su
apéndice «How to Apply» CONTIENE la frase «either version 3 … or any later version» siempre, así
que grepearla ahí no distingue -only de -or-later (la trampa que la memoria del repo ya tenía
escrita). La evidencia buena es el README del commit pineado: «This program is distributed under
the terms of the GNU General Public License, version 3 or later». El árbol JS no lleva cabecera de
licencia en ningún fichero.
Va de RAÍZ en escritorio-gnome por la lección de `foot` que targets.toml ya aprendió tres veces.
El perfil queda 183/183 listo con 25 raíces, deuda 0.
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01LCt3ettR4Z7b6wPCBmbvEV
This commit is contained in:
@@ -1,16 +1,16 @@
|
||||
{
|
||||
"schema": "hammer-build-state/1",
|
||||
"totals": {
|
||||
"recipes": 920,
|
||||
"nodes": 922,
|
||||
"sealed": 920,
|
||||
"recipes": 921,
|
||||
"nodes": 923,
|
||||
"sealed": 921,
|
||||
"ajeno": 2
|
||||
},
|
||||
"by_class": {
|
||||
"ajeno": 2,
|
||||
"c": 272,
|
||||
"go": 362,
|
||||
"gui": 47,
|
||||
"gui": 48,
|
||||
"kernel": 6,
|
||||
"rust": 233
|
||||
},
|
||||
@@ -21,7 +21,7 @@
|
||||
"ajeno": 2
|
||||
},
|
||||
"incoming-gnome": {
|
||||
"sealed": 63
|
||||
"sealed": 64
|
||||
}
|
||||
},
|
||||
"by_profile": {
|
||||
@@ -36,9 +36,9 @@
|
||||
"sealed": 80
|
||||
},
|
||||
"escritorio-gnome": {
|
||||
"raices": 24,
|
||||
"clausura": 182,
|
||||
"sealed": 182
|
||||
"raices": 25,
|
||||
"clausura": 183,
|
||||
"sealed": 183
|
||||
},
|
||||
"escritorio-mirada": {
|
||||
"raices": 17,
|
||||
@@ -5360,7 +5360,7 @@
|
||||
"escritorio-kde",
|
||||
"escritorio-sway"
|
||||
],
|
||||
"dependientes_total": 103
|
||||
"dependientes_total": 104
|
||||
},
|
||||
"gh": {
|
||||
"iname": "gh",
|
||||
@@ -5992,7 +5992,7 @@
|
||||
"perfiles": [
|
||||
"escritorio-gnome"
|
||||
],
|
||||
"dependientes_total": 42
|
||||
"dependientes_total": 43
|
||||
},
|
||||
"glib-introspected": {
|
||||
"iname": "glib-introspected",
|
||||
@@ -6245,6 +6245,30 @@
|
||||
],
|
||||
"dependientes_total": 0
|
||||
},
|
||||
"gnome-shell-extension-blur-my-shell": {
|
||||
"iname": "gnome-shell-extension-blur-my-shell",
|
||||
"version": "72",
|
||||
"link": "dynamic",
|
||||
"compiler": "zig-cc",
|
||||
"deps": [
|
||||
"gettext-tiny",
|
||||
"glib",
|
||||
"libffi",
|
||||
"pcre2",
|
||||
"zlib"
|
||||
],
|
||||
"cls": "gui",
|
||||
"queue": "incoming-gnome",
|
||||
"foreign": false,
|
||||
"hash": "b3:6b39a579c1d58e333c9c1d27875ba015705a340b883638afcde166fd6e6ac9d9",
|
||||
"state": "sealed",
|
||||
"blocked_by": [],
|
||||
"unblocks": 0,
|
||||
"perfiles": [
|
||||
"escritorio-gnome"
|
||||
],
|
||||
"dependientes_total": 0
|
||||
},
|
||||
"gnupg": {
|
||||
"iname": "gnupg",
|
||||
"version": "2.4.9",
|
||||
@@ -10065,7 +10089,7 @@
|
||||
"escritorio-mirada",
|
||||
"escritorio-sway"
|
||||
],
|
||||
"dependientes_total": 109
|
||||
"dependientes_total": 110
|
||||
},
|
||||
"libffi-shared": {
|
||||
"iname": "libffi-shared",
|
||||
@@ -13824,7 +13848,7 @@
|
||||
"escritorio-kde",
|
||||
"escritorio-sway"
|
||||
],
|
||||
"dependientes_total": 81
|
||||
"dependientes_total": 82
|
||||
},
|
||||
"pcre2-shared": {
|
||||
"iname": "pcre2-shared",
|
||||
@@ -18967,7 +18991,7 @@
|
||||
"escritorio-mirada",
|
||||
"escritorio-sway"
|
||||
],
|
||||
"dependientes_total": 112
|
||||
"dependientes_total": 113
|
||||
},
|
||||
"zlib-ng": {
|
||||
"iname": "zlib-ng",
|
||||
|
||||
@@ -31,7 +31,7 @@
|
||||
},
|
||||
"escritorio-gnome": {
|
||||
"grafo": "docs/state/build-state-gnome.json",
|
||||
"nodos": 182,
|
||||
"nodos": 183,
|
||||
"en_deuda": 0,
|
||||
"ondas": 0,
|
||||
"profundidad": 0,
|
||||
|
||||
@@ -429,6 +429,20 @@ paquetes = [
|
||||
# resuelve en RUNTIME leyendo el `index.theme` del padre, así que el padre tiene que estar
|
||||
# INSTALADO. Desde hoy se resuelve contra el corpus (misma receta, mismo hash).
|
||||
"adwaita-icon-theme", "hicolor-icon-theme",
|
||||
# ── EXTENSIONES DEL SHELL ────────────────────────────────────────────────────────────────────
|
||||
# ⚠ Añadida el 2026-09-09: esta imagen traía la CÁSCARA de GNOME y ni una extensión. No es un
|
||||
# detalle estético — GNOME manda un shell deliberadamente mínimo y el ecosistema lo completa por
|
||||
# acá; sin ninguna, el escritorio es lo que el proyecto entrega y nadie usa tal cual.
|
||||
# El shell SÍ sabe cargarlas sin nada más: `ui/extensionSystem.js` va en el gresource sin opción
|
||||
# que lo apague y su gschema sellado trae `enabled-extensions`. Lo que faltaba era que hubiera
|
||||
# alguna, y va de RAÍZ por la lección de `foot` que este fichero ya aprendió tres veces.
|
||||
# ⚠ NO hace falta glib-networking ni TLS: eso sólo lo pide BAJARLAS desde extensions.gnome.org
|
||||
# con el descargador del shell. Empaquetada, se instala como cualquier receta.
|
||||
# La receta se construye desde el REPO del autor (tag v72), no desde el zip de EGO: hammer extrae
|
||||
# con `tar -x` y GNU tar no lee zip, y además el zip es un artefacto que construye EGO a partir
|
||||
# de ese mismo repo. El layout instalado se verificó CONTRA ese zip: idéntico, sin sobras ni
|
||||
# faltantes.
|
||||
"gnome-shell-extension-blur-my-shell",
|
||||
]
|
||||
|
||||
[perfil.escritorio-cosmic]
|
||||
|
||||
Reference in New Issue
Block a user