From 56003a71ab97d757eb0d0ec8d15bddccfc18d2ba Mon Sep 17 00:00:00 2001 From: duffyduck Date: Sun, 9 Aug 2026 10:17:43 +0200 Subject: [PATCH] Meldungen am unteren Rand waren kaum lesbar Sie standen schwarz auf gruen - und zwar mit A_BOLD. Genau das war die Falle: Fettschrift schaltet im Terminal die Farben 0-7 auf 8-15, aus Schwarz (0) wird also Hellschwarz (8), sprich Grau. Grau auf Gruen ist Matsch. vorher \e[0;1m \e[30m \e[42m fett + schwarz auf gruen nachher \e[0;1m \e[37m \e[44m fett + weiss auf blau Dabei zeigte sich, dass in derselben Farbe zwei verschiedene Dinge steckten: die Meldungsleiste ueber die ganze Zeile und Statustexte wie "Zustand: running". Beide sind jetzt getrennt: C_MSG weiss auf blau nur die Meldungsleiste, bleibt fett lesbar C_OK gruen auf Vorgabe Statustexte als Schriftfarbe statt als Block Alle uebrigen A_BOLD-Stellen haben helle Schrift (weiss, gelb) - die wird durch Fett heller statt dunkler und war nie betroffen. Die Aenderung sitzt in curses_util.py und gilt damit fuer alle Oberflaechen: Konfigurationseditor, Explorer, Wiederherstellung und Transfer-Laufwerke. Co-Authored-By: Claude Opus 5 (1M context) --- pvesnap/curses_util.py | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/pvesnap/curses_util.py b/pvesnap/curses_util.py index cc2dc9e..7831d7b 100644 --- a/pvesnap/curses_util.py +++ b/pvesnap/curses_util.py @@ -4,7 +4,7 @@ from __future__ import annotations import curses -C_HEADER, C_FOOTER, C_SEL, C_WARN, C_OK, C_DIM, C_DIR, C_MARK = 1, 2, 3, 4, 5, 6, 7, 8 +C_HEADER, C_FOOTER, C_SEL, C_WARN, C_OK, C_DIM, C_DIR, C_MARK, C_MSG = range(1, 10) def init_colors(): @@ -15,10 +15,16 @@ def init_colors(): curses.init_pair(C_FOOTER, curses.COLOR_BLACK, curses.COLOR_WHITE) curses.init_pair(C_SEL, curses.COLOR_BLACK, curses.COLOR_CYAN) curses.init_pair(C_WARN, curses.COLOR_WHITE, curses.COLOR_RED) - curses.init_pair(C_OK, curses.COLOR_BLACK, curses.COLOR_GREEN) + # Gruen als Schriftfarbe, nicht als Hintergrund. Schwarz auf Gruen sah + # im Terminal matschig aus - und mit A_BOLD wird aus Schwarz (Farbe 0) + # Hellschwarz (Farbe 8), also Grau. Grau auf Gruen kann man nicht lesen. + curses.init_pair(C_OK, curses.COLOR_GREEN, -1) curses.init_pair(C_DIM, -1, -1) curses.init_pair(C_DIR, curses.COLOR_CYAN, -1) curses.init_pair(C_MARK, curses.COLOR_YELLOW, -1) + # Meldungsleiste: Weiss auf Blau bleibt auch fett gut lesbar, weil die + # Schrift dabei heller wird statt dunkler. + curses.init_pair(C_MSG, curses.COLOR_WHITE, curses.COLOR_BLUE) except curses.error: pass @@ -111,7 +117,7 @@ def keybar(width, items): def message(win, text, error=False): height, _ = win.getmaxyx() - attr = curses.color_pair(C_WARN if error else C_OK) | curses.A_BOLD + attr = curses.color_pair(C_WARN if error else C_MSG) | curses.A_BOLD fill(win, height - 2, " " + str(text) + " [Taste druecken]", attr) win.refresh() read_key(win)