fix(wetter): der Schalter „in der Leiste" wirkt auch auf dem Schreibtisch

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 <noreply@anthropic.com>
This commit is contained in:
marcandClaude Opus 5 committed 2026-08-25 13:31:40 +02:00
1 parent 4e38ccdec1
commit 99f1ed4a58
4 files changed
+41 -8

No files matched your search

+1 -1
View File
@@ -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
+1
View File
@@ -37,6 +37,7 @@
<div class="mb-right">
<img class="mb-avatar" id="mbAvatar" alt="" hidden />
<span class="mb-user" id="mbUser">&nbsp;</span>
<button class="mb-wx" id="mbWx" hidden title="Wetter"></button>
<span class="mb-clock" id="clock">--:--</span>
<button class="mb-btn" id="btnSettings" title="Einstellungen (S)">&#9881;</button>
<button class="mb-btn" id="btnLogout" title="Abmelden" hidden>&#9211;</button>
+21 -7
View File
@@ -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)}<span class="mb-wx-temp">${Math.round(w.grad)}°</span>`;
bar.title = `${w.ort}: ${w.text}, ${Math.round(w.grad)}°`;
bar.onclick = openSettings;
}
}
function setMode(mode) {
+18
View File
@@ -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; } }