tui-check: Ursache der Rahmendarstellung am Terminal ablesen
Nach der Locale-Korrektur meldet der Selbsttest UTF-8, die Anzeige blieb aber unveraendert. Damit liegt es nicht mehr an der Serverseite, und Weiterraten hat keinen Sinn. "cmk-manage.sh tui-check" gibt jetzt zwei Testzeilen aus: Zeile A echte UTF-8-Rahmenzeichen (U+2500 ff.) Zeile B die alte VT100-Umschaltung ESC(0 mit den Buchstaben lqk An deren Aussehen laesst sich die Ursache direkt ablesen - Terminal ignoriert die Umschaltung (PuTTY-Fall), Terminal nicht im UTF-8-Modus, oder Schrift ohne Rahmenzeichen. Zu jeder Beobachtung nennt die Ausgabe die passende Abhilfe samt PuTTY-Einstellungen. Dazu der ASCII-Schalter, der bisher ins Leere lief: einfache Rahmen kann nur dialog zeichnen. Ist CMK_TUI_ASCII gesetzt und dialog vorhanden, wird dialog jetzt dafuer vorgezogen; fehlt es, sagt das Skript das ausdruecklich statt wirkungslos weiterzumachen. dialog ist auf dieser Seite ohnehin der wirksamere Griff - es geht mit dem Zeichensatz zuverlaessiger um als whiptail. Entsprechend in beiden Sprachfassungen hervorgehoben. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -50,6 +50,8 @@ KOMMANDOS - Stack
|
||||
status Status von Containern und Sites anzeigen
|
||||
logs [-f] [DIENST] Logs anzeigen
|
||||
selftest Skripte auf bekannte Fallstricke pruefen
|
||||
tui-check Testzeilen fuer die Rahmendarstellung ausgeben
|
||||
(hilft bei q/x/l/m statt Linien, etwa in PuTTY)
|
||||
shell Root-Shell im Checkmk-Container
|
||||
omd ARG... beliebiges omd-Kommando im Container ausfuehren
|
||||
|
||||
@@ -4669,6 +4671,69 @@ Backups : $BACKUP_DIR" \
|
||||
ok "Beendet."
|
||||
}
|
||||
|
||||
# =====================================================================
|
||||
# Terminal pruefen
|
||||
#
|
||||
# Zeigt zwei Testzeilen. Woran es liegt, laesst sich an ihnen ablesen -
|
||||
# ohne Raten:
|
||||
# Zeile A sind echte UTF-8-Rahmenzeichen (U+2500 ff.)
|
||||
# Zeile B ist die alte VT100-Umschaltung ESC(0 mit den Buchstaben lqk
|
||||
# Genau diese Buchstaben erscheinen, wenn das Terminal die Umschaltung
|
||||
# nicht mitmacht - der Fall bei PuTTY im UTF-8-Modus.
|
||||
# =====================================================================
|
||||
cmd_tui_check() {
|
||||
ui_fix_locale || true
|
||||
ui_init
|
||||
|
||||
printf '\n%sWas dieses Terminal meldet%s\n' "$C_BLD" "$C_RST"
|
||||
printf ' TERM : %s\n' "${TERM:-<leer>}"
|
||||
printf ' LANG : %s\n' "${LANG:-<leer>}"
|
||||
printf ' LC_ALL : %s\n' "${LC_ALL:-<leer>}"
|
||||
printf ' LC_CTYPE : %s\n' "${LC_CTYPE:-<leer>}"
|
||||
printf ' Zeichensatz : %s\n' "$(locale charmap 2>/dev/null || echo unbekannt)"
|
||||
printf ' Programm : %s\n' "${UI_BIN:-keines (dialog/whiptail fehlt)}"
|
||||
[ -n "${UI_LOCALE_NOTE:-}" ] && printf ' Angepasst : %s\n' "$UI_LOCALE_NOTE"
|
||||
|
||||
printf '\n%sZeile A - echte UTF-8-Rahmenzeichen%s\n' "$C_BLD" "$C_RST"
|
||||
printf ' ┌────────┐\n'
|
||||
printf ' │ Rahmen │\n'
|
||||
printf ' └────────┘\n'
|
||||
|
||||
printf '\n%sZeile B - alte VT100-Umschaltung (ESC(0)%s\n' "$C_BLD" "$C_RST"
|
||||
printf ' \033(0lqqqqqqqqk\033(B\n'
|
||||
printf ' \033(0x\033(B Rahmen \033(0x\033(B\n'
|
||||
printf ' \033(0mqqqqqqqqj\033(B\n'
|
||||
|
||||
cat <<EOF
|
||||
|
||||
${C_BLD}Auswertung${C_RST}
|
||||
A zeigt Linien, B zeigt Linien
|
||||
Alles in Ordnung - die Oberflaeche muss sauber aussehen.
|
||||
|
||||
A zeigt Linien, B zeigt lqqqk / x / mqqj
|
||||
Das Terminal macht die VT100-Umschaltung nicht mit.
|
||||
Genau das ist der PuTTY-Fall. Abhilfe in PuTTY:
|
||||
Window -> Translation -> Remote character set: UTF-8
|
||||
Window -> Translation -> Handling of line drawing characters:
|
||||
"Use Unicode line drawing code points"
|
||||
Connection -> Data -> Terminal-type string: xterm-256color
|
||||
Auf dieser Seite hilft zusaetzlich 'dialog' statt 'whiptail':
|
||||
dnf install -y dialog bzw. apt-get install -y dialog
|
||||
Oder einfache Rahmen erzwingen:
|
||||
CMK_TUI_ASCII=1 $SELF gui
|
||||
|
||||
A zeigt Kaese wie a-- oder Fragezeichen
|
||||
Das Terminal laeuft NICHT im UTF-8-Modus.
|
||||
In PuTTY: Window -> Translation -> Remote character set: UTF-8
|
||||
|
||||
Beide Zeilen zeigen Buchstaben
|
||||
Schrift ohne Rahmenzeichen. In PuTTY unter
|
||||
Window -> Appearance eine andere waehlen, z.B. Consolas
|
||||
oder DejaVu Sans Mono.
|
||||
|
||||
EOF
|
||||
}
|
||||
|
||||
# =====================================================================
|
||||
# Selbstpruefung
|
||||
#
|
||||
@@ -4831,6 +4896,7 @@ main() {
|
||||
proxy) cmd_proxy "$@" ;;
|
||||
config) cmd_config "$@" || true ;;
|
||||
selftest) cmd_selftest ;;
|
||||
tui-check) cmd_tui_check ;;
|
||||
help|-h|--help) usage ;;
|
||||
*) err "Unbekanntes Kommando: $cmd"; echo; usage; exit 1 ;;
|
||||
esac
|
||||
|
||||
Reference in New Issue
Block a user