From 98bce1b0da675715b2e5482c0ad61ba21135f62f Mon Sep 17 00:00:00 2001
From: Server-Bibliothek <server-bibliothek@lokal>
Date: Di, 04 Aug 2026 07:00:04 +0200
Subject: [PATCH] Add a desktop client that knows what is installed locally
---
desktop/generate_icon.py | 40 ++++++++++++++++++++++++++++++++++++++++
1 files changed, 40 insertions(+), 0 deletions(-)
diff --git a/desktop/generate_icon.py b/desktop/generate_icon.py
new file mode 100644
index 0000000..c415606
--- /dev/null
+++ b/desktop/generate_icon.py
@@ -0,0 +1,40 @@
+"""Erzeugt das App-Icon als assets/icon.ico.
+
+Pillow wird nur zum Erzeugen gebraucht, nicht zur Laufzeit — deshalb steht es
+bewusst nicht in requirements.txt:
+
+ .venv\\Scripts\\python.exe -m pip install pillow
+ .venv\\Scripts\\python.exe generate_icon.py
+
+Das Ergebnis gehoert ins Repo: Ein frischer Klon soll bauen koennen, ohne
+Pillow zu installieren.
+"""
+
+from pathlib import Path
+
+from PIL import Image, ImageDraw
+
+GROESSE = 256
+ORANGE = (255, 128, 20, 255) # Markenfarbe --md-sys-color-primary
+WEISS = (255, 255, 255, 255)
+
+bild = Image.new("RGBA", (GROESSE, GROESSE), (0, 0, 0, 0))
+zeichnung = ImageDraw.Draw(bild)
+
+# Hintergrund: abgerundetes Quadrat in Markenorange — wie beim Transkriptor,
+# damit unsere Werkzeuge in der Taskleiste als Familie erkennbar sind.
+zeichnung.rounded_rectangle((8, 8, 248, 248), radius=52, fill=ORANGE)
+
+# Pfeil nach unten: das Zeichen fuer „holen", dasselbe wie in der Oberflaeche.
+zeichnung.rounded_rectangle((112, 44, 144, 132), radius=10, fill=WEISS)
+zeichnung.polygon([(80, 118), (176, 118), (128, 186)], fill=WEISS)
+
+# Ablage darunter — angedeutet als offene Schale, nicht als geschlossener Kasten.
+zeichnung.rounded_rectangle((66, 198, 190, 216), radius=9, fill=WEISS)
+zeichnung.rounded_rectangle((66, 160, 84, 216), radius=9, fill=WEISS)
+zeichnung.rounded_rectangle((172, 160, 190, 216), radius=9, fill=WEISS)
+
+ziel = Path(__file__).resolve().parent / "assets" / "icon.ico"
+ziel.parent.mkdir(parents=True, exist_ok=True)
+bild.save(ziel, sizes=[(16, 16), (24, 24), (32, 32), (48, 48), (64, 64), (128, 128), (256, 256)])
+print(f"geschrieben: {ziel}")
--
Gitblit v1.9.3