From 99f1ed4a580d30713d12217d2499873df7c1dd84 Mon Sep 17 00:00:00 2001 From: marc Date: Tue, 25 Aug 2026 13:31:40 +0200 Subject: [PATCH] =?UTF-8?q?fix(wetter):=20der=20Schalter=20=E2=80=9Ein=20d?= =?UTF-8?q?er=20Leiste"=20wirkt=20auch=20auf=20dem=20Schreibtisch?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Die Leiste am oberen Rand von HoneyOS ist nicht honeybar.js, sondern die Menueleiste des Schreibtischs — anderer Code, gleiches Aussehen. Das Wetter stand deshalb nur in fremden Apps, waehrend der Schalter dort, wo man ihn umlegt, nichts zu bewirken schien. Fuer den, der davorsitzt, ist beides dieselbe Leiste. Ein Schalter, der nur woanders wirkt, ist nicht zu erklaeren. Co-Authored-By: Claude Opus 5 --- main.go | 2 +- web/index.html | 1 + web/os.js | 28 +++++++++++++++++++++------- web/style.css | 18 ++++++++++++++++++ 4 files changed, 41 insertions(+), 8 deletions(-) diff --git a/main.go b/main.go index 5a693fd..9b3480e 100644 --- a/main.go +++ b/main.go @@ -28,7 +28,7 @@ const localSub = "local" // Version ist die einzige Stelle, an der sie steht. build.sh liest sie hier aus // und vergibt denselben Docker-Tag; die Oberfläche holt sie über /api/public. // Vorher stand sie zusätzlich in os.js und lief mit den Image-Tags auseinander. -const Version = "0.8" +const Version = "0.9" type Config struct { Addr string diff --git a/web/index.html b/web/index.html index 9c6baa5..c9eb353 100644 --- a/web/index.html +++ b/web/index.html @@ -37,6 +37,7 @@
  + --:-- diff --git a/web/os.js b/web/os.js index e9bcef4..cc6d3a6 100644 --- a/web/os.js +++ b/web/os.js @@ -535,18 +535,32 @@ function weatherHtml(w) { } function renderWeather() { - const an = state.settings.weatherDesk === "on" && state.weather; + const w = state.weather; const tile = $("wxTile"); const desk = $("wxDesk"); + const bar = $("mbWx"); const desktopMode = state.settings.mode === "desktop"; - tile.hidden = !an || desktopMode; - desk.hidden = !an || !desktopMode; - if (!an) return; + // Das Widget: Fenster im Terminal-Modus, Schild auf dem Schreibtisch. + const alsWidget = state.settings.weatherDesk === "on" && w; + tile.hidden = !alsWidget || desktopMode; + desk.hidden = !alsWidget || !desktopMode; + if (alsWidget) { + const html = weatherHtml(w); + tile.querySelector(".wx-body").innerHTML = html; + desk.innerHTML = html; + } - const html = weatherHtml(state.weather); - tile.querySelector(".wx-body").innerHTML = html; - desk.innerHTML = html; + // Und in der Leiste. Die Menüleiste hier ist zwar anderer Code als + // honeybar.js in den Apps, aber für den, der davorsitzt, dieselbe Leiste — + // ein Schalter, der nur woanders wirkt, wäre nicht zu erklären. + const inLeiste = state.settings.weatherBar === "on" && w; + bar.hidden = !inLeiste; + if (inLeiste) { + bar.innerHTML = `${glyphSvg(w.glyph)}${Math.round(w.grad)}°`; + bar.title = `${w.ort}: ${w.text}, ${Math.round(w.grad)}°`; + bar.onclick = openSettings; + } } function setMode(mode) { diff --git a/web/style.css b/web/style.css index 303e1b0..ab02d25 100644 --- a/web/style.css +++ b/web/style.css @@ -954,3 +954,21 @@ body { } .wx-hit span { color: var(--p-dim); font-size: 12px; } .wx-hit:hover { border-color: var(--p-faint); color: var(--p); } + +/* Wetter in der Menüleiste — dasselbe Maß wie in honeybar.js, damit die + Leiste hier und die in den Apps nicht unterschiedlich aussehen. */ +.mb-wx { + display: flex; + align-items: center; + gap: 5px; + padding: 2px 4px; + background: none; + border: 1px solid transparent; + color: var(--p-mid); + font: inherit; + cursor: pointer; +} +.mb-wx[hidden] { display: none; } +.mb-wx:hover { color: var(--p); border-color: var(--p-dim); } +.mb-wx svg { width: 14px; height: 14px; display: block; } +@media (max-width: 700px) { .mb-wx-temp { display: none; } }