From 8ca16aec84c87d53a0fefe19f0a48b91d8213eba Mon Sep 17 00:00:00 2001 From: marc Date: Wed, 2 Sep 2026 10:41:19 +0200 Subject: [PATCH] Anmeldung zeigt dasselbe Wappen, und der Rahmen sitzt eng MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Auf dem Anmeldebildschirm steht jetzt dieselbe Biene wie in der Leiste und im Tab, nur gross — ein Geraet, ein Zeichen. Die 3/4-Ansicht wird nirgends mehr ausgeliefert; sie bleibt als schraeg() im Werkzeug liegen. Dazu sitzt der SVG-Rahmen jetzt auf dem, was wirklich gefuellt ist. Das Raster ist quadratisch, die Biene nicht — unten blieb ein Viertel Luft, und die kostet ueberall Groesse, wo das Bild in einen Kasten gelegt wird. tools/biene.py schreibt die Zeile in honeybar.js jetzt selbst mit: Drei Kopien, die von Hand gepflegt werden, laufen genau einmal auseinander. --- README.md | 19 ++++++------------- tools/biene.py | 33 ++++++++++++++++++++++++--------- web/css/style.css | 8 ++++---- web/honeybar/honeybar.js | 2 +- web/img/biene-3d-256.png | Bin 1223 -> 0 bytes web/img/biene-3d.svg | 1 - web/img/biene.svg | 2 +- web/index.html | 6 +++--- web/js/biene.js | 2 +- 9 files changed, 40 insertions(+), 33 deletions(-) delete mode 100644 web/img/biene-3d-256.png delete mode 100644 web/img/biene-3d.svg diff --git a/README.md b/README.md index 37657ec..a765f53 100644 --- a/README.md +++ b/README.md @@ -199,9 +199,8 @@ python3 tools/biene.py | Ausgabe | wohin | |---|---| -| `web/img/biene.svg` | Favicon | +| `web/img/biene.svg` | Favicon und Anmeldebildschirm | | `web/js/biene.js` | Menüleiste des Schreibtischs (`BIENE_SVG`), System-Fenster und Startlauf (`BIENE_ASCII`) | -| `web/img/biene-3d.svg`, `-3d-256.png` | Anmeldebildschirm — die Schrägsicht | | `web/img/biene-256.png`, `-32.png` | Doku und Vorschau | In die HoneyBar ist dieselbe SVG-Zeile **einkopiert** — sie ist eine einzelne @@ -219,17 +218,11 @@ die Farbe mit — die Biene nicht. Ein Zeichen, das die Farbe wechselt, ist ein Symbol wie *wolke*; eines, das seine Farbe behält, ist ein Wappen. Der eine warme Fleck liest sich als „das hier ist das System selbst". -### Einmal groß: die Schrägsicht - -Auf dem Anmeldebildschirm steht dieselbe Biene als **Würfel in 2:1-Schrägsicht** -— gerechnet, nicht gemalt: Das Skript legt Deckel und die zwei sichtbaren -Wangen an und malt Streifen, Augen und Flügel darauf. Die Streifen laufen -parallel zur linken Deckelkante und setzen sich auf der rechten Wange als -senkrechte Bänder fort, damit sie über den Knick hinweg zusammenpassen. - -Sie ist **unter 64 px unbrauchbar** — zu viele Kanten auf zu wenig Pixeln —, -und genau deshalb steht sie dort: Der Anmeldebildschirm ist die einzige Stelle -mit Platz und Zeit. In den Leisten bleibt die Seitenansicht. +**Überall dasselbe Zeichen:** Leiste, Tab und Anmeldebildschirm zeigen dieselbe +Datei, nur in anderer Größe. Eine 3/4-Ansicht (ein gerechneter Würfel in +2:1-Schrägsicht) steckt als `schraeg()` in `tools/biene.py`, wird aber nirgends +ausgeliefert — sie ist unter 64 px unbrauchbar, und ein zweites Wappen für +große Flächen wäre ein zweites Wappen. ### Und aus Schriftzeichen diff --git a/tools/biene.py b/tools/biene.py index 1b56309..b9a1c89 100644 --- a/tools/biene.py +++ b/tools/biene.py @@ -16,6 +16,7 @@ einen Buchstaben ändern, danach stimmen wieder alle Fassungen überein. """ import json import pathlib +import re import struct import zlib @@ -61,8 +62,10 @@ BIENE = [ # ── Die 3/4-Ansicht ────────────────────────────────────────────────────── # -# Nur für den Anmeldebildschirm: groß, einmal am Tag, mit Zeit zum Hinsehen. -# Unter 64 px zerfällt sie — zu viele Kanten auf zu wenig Pixeln. +# Liegt in der Schublade: HoneyOS zeigt überall dasselbe Wappen von der Seite, +# also wird sie zurzeit nirgends ausgeliefert. Wer sie doch braucht (ein großes +# Startbild, ein Aufkleber), ruft `schraeg()` und reicht das Ergebnis an `svg()` +# oder `png()`. Unter 64 px zerfällt sie — zu viele Kanten auf zu wenig Pixeln. # # Ein Würfel hat in Pixelkunst die Steigung 2:1: zwei Pixel nach rechts, einer # nach unten. Von Hand wird das krumm, also werden die drei sichtbaren Flächen @@ -133,6 +136,11 @@ def svg(raster): """Waagerechte Läufe gleicher Farbe werden ein Rechteck — dieselbe Idee wie bei den Pixelsymbolen in web/js/glyphs.js, nur mit Farbe statt currentColor. + Der Rahmen wird auf das gesetzt, was wirklich gefüllt ist: Das Raster ist + quadratisch, die Biene ist es nicht. Mit dem vollen Quadrat als viewBox + bliebe unten ein Viertel Luft — und die kostet überall Größe, wo das Bild in + einen Kasten gelegt wird: in der Leiste, im Tab, auf dem Anmeldebildschirm. + Warum SVG und nicht PNG für die Leisten: Die HoneyBar läuft in *fremden* Apps. Ein holt dort eine Datei von HoneyOS, und ob das erlaubt ist, entscheidet die CSP der fremden App. Markup kann niemand blockieren.""" @@ -150,8 +158,12 @@ def svg(raster): r, g, b = FARBEN[z] teile.append(f'') x += lauf - n = len(raster) - return (f'") @@ -198,10 +210,6 @@ def main(): zeichen = text(BIENE) (WURZEL / "web/img/biene.svg").write_text(bild + "\n") - # Für die Anmeldung: einmal groß, in Schrägsicht. - drei = schraeg() - (WURZEL / "web/img/biene-3d.svg").write_text(svg(drei) + "\n") - png(drei, 8, WURZEL / "web/img/biene-3d-256.png") png(BIENE, 16, WURZEL / "web/img/biene-256.png") png(BIENE, 2, WURZEL / "web/img/biene-32.png") @@ -218,8 +226,15 @@ def main(): f"export const BIENE_SVG = '{bild}';\n\n" f"export const BIENE_ASCII = {json.dumps(zeichen)};\n" ) + bar = WURZEL / "web/honeybar/honeybar.js" + alt = bar.read_text() + neu = re.sub(r" const WAPPEN = '[^\n]*';", f" const WAPPEN = '{bild}';", alt) + if neu != alt: + bar.write_text(neu) + print("web/honeybar/honeybar.js: Wappen ersetzt") + print(text(BIENE)) - print(f"\nweb/img/biene.svg ({len(bild)} Zeichen), biene-3d.svg, drei PNG, web/js/biene.js") + print(f"\nweb/img/biene.svg ({len(bild)} Zeichen), biene-256.png, biene-32.png, web/js/biene.js") if __name__ == "__main__": diff --git a/web/css/style.css b/web/css/style.css index 37fe953..d3026bd 100644 --- a/web/css/style.css +++ b/web/css/style.css @@ -944,12 +944,12 @@ body { overflow: hidden; } -/* Die Biene über dem Anmeldeknopf, in Schrägsicht. Sie schwebt ein wenig — - sechs Sekunden für zwei Pixel, also eher ein Atmen als eine Bewegung. Wer - Bewegung abgestellt hat, bekommt sie ruhig. */ +/* Dasselbe Wappen wie in der Leiste, nur groß. Es schwebt ein wenig — sechs + Sekunden für zwei Pixel, also eher ein Atmen als eine Bewegung. Wer Bewegung + abgestellt hat, bekommt es ruhig. */ .login-biene { display: block; - width: clamp(96px, 22vw, 132px); + width: clamp(128px, 28vw, 176px); height: auto; margin: 22px 0 0; image-rendering: pixelated; diff --git a/web/honeybar/honeybar.js b/web/honeybar/honeybar.js index 6025463..7d201be 100644 --- a/web/honeybar/honeybar.js +++ b/web/honeybar/honeybar.js @@ -103,7 +103,7 @@ * entscheidet die CSP der fremden App. Erzeugt von tools/biene.py — * dieselbe Zeile steht in web/img/biene.svg (ein Test hält sie gleich). */ - const WAPPEN = ''; + const WAPPEN = ''; const root = host.attachShadow({ mode: "open" }); diff --git a/web/img/biene-3d-256.png b/web/img/biene-3d-256.png deleted file mode 100644 index c9a6ecaa97dbbb046be5d40ba85bdd0c9b4097fe..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1223 zcmeAS@N?(olHy`uVBq!ia0y~yU<5K5893O0R7}x|GzJEiK2I0NkcwMx?-=?yISMo+ z_9gJNvM!x^havg3rjC!zWc7{eC0jBcioWq&as3jX(6QRhzrX#Syz{`mnd_Bw#3reD z5=56oZSUQmR{XeCg~5ZV0fi`fFo{8dlL3X`o^kQ}^KD;j%zPLa8dw+@JTNJa1_l?P z4;Zk@9(z;rN7I(yfk6qRgb9cha4qH&@d$Og8%XUY+te?KH@E}ML z+=ZBoFZ&r7QgR&j-II3$8BGkBAXa_$R8U=R=mp0OUd`$^4&p_6e^Z39s{fZ?~1 zq2l)YbAGQKuCOin*2w4p(ue7KWYY|u@;7ENPvG?-R(T3@fV2j(33%CVObXI7Zq-K+ z>uaE4w}=iRpkfJ-?Vv175O6TKF&|(BWqNQL!ohH0xWLC?76A-OV6b842ooWNwaf|4 zSmnTind}Vl0cbg!sbR@WhL7!1Lcr_?v=&Z5vI>quBV=oQ$M3Ajm?QjEAg_74`njxg HN@xNAD44+2 diff --git a/web/img/biene-3d.svg b/web/img/biene-3d.svg deleted file mode 100644 index 36a8353..0000000 --- a/web/img/biene-3d.svg +++ /dev/null @@ -1 +0,0 @@ - diff --git a/web/img/biene.svg b/web/img/biene.svg index bbe19cf..477272b 100644 --- a/web/img/biene.svg +++ b/web/img/biene.svg @@ -1 +1 @@ - + diff --git a/web/index.html b/web/index.html index f02d4f5..486a4bc 100644 --- a/web/index.html +++ b/web/index.html @@ -21,9 +21,9 @@