All screens: drop gray text, matching the Journey fix

The epd4in0e panel's palette has no gray at all (just black/white/
yellow/red/blue/green -- see epd4in0e.py's putpalette), so any gray
RGB fill gets Floyd-Steinberg dithered into a black/white checkerboard
across the whole glyph body. At the small font sizes most of these
screens use (Navidrome's artist/album/genre/source lines, Departures'
direction/platform columns, Weather's description/forecast labels,
Clock's date line, the placeholder messages), that reads as blurry,
half-rendered text -- same root cause already fixed in Journey.

Switched every gray fill/outline to solid black across navidrome.py,
weather.py, departures.py, clock.py, and picture.py. Left the
intentionally-faint row-divider hairlines (228,228,228) alone --
those are meant to almost disappear, not readable text. Removed
departures.py's now-unused MUTED constant.
This commit is contained in:
Honey committed 2026-07-23 11:56:24 +02:00
1 parent 4c10ff94d2
commit 132e133b1d
5 files changed
+20 -21

No files matched your search

+4 -4
View File
@@ -129,7 +129,7 @@ class WeatherScreen(Screen):
settings.get("latitude") and settings.get("longitude")
) else "Wetterdaten nicht verfügbar"
mw = text_width(draw, msg, font)
draw.text(((width - mw) / 2, height / 2), msg, font=font, fill=(120, 120, 120))
draw.text(((width - mw) / 2, height / 2), msg, font=font, fill="black")
return image
days = state.get("days") or []
@@ -174,7 +174,7 @@ class WeatherScreen(Screen):
desc_y = temp_y + temp_h + temp_gap
dw = desc_right - desc_left
draw.text(((width - dw) / 2, desc_y - desc_top), desc, font=desc_font, fill=(90, 90, 90))
draw.text(((width - dw) / 2, desc_y - desc_top), desc, font=desc_font, fill="black")
if has_forecast:
forecast_y = current_h
@@ -192,7 +192,7 @@ class WeatherScreen(Screen):
label = day["label"]
lw = text_width(draw, label, label_font)
draw.text((cx - lw / 2, y), label, font=label_font, fill=(60, 60, 60))
draw.text((cx - lw / 2, y), label, font=label_font, fill="black")
y += label_font.size * 1.4
draw_weather_icon(draw, day["kind"], cx, y + day_icon_size / 2, day_icon_size)
@@ -200,6 +200,6 @@ class WeatherScreen(Screen):
temps = f"{round(day['high'])}°/{round(day['low'])}°"
dtw = text_width(draw, temps, day_temp_font)
draw.text((cx - dtw / 2, y), temps, font=day_temp_font, fill=(50, 50, 50))
draw.text((cx - dtw / 2, y), temps, font=day_temp_font, fill="black")
return image