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; } }