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