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:
+21
-7
@@ -338,24 +338,38 @@ ui_ascii_args() {
|
||||
case "${CMK_TUI_ASCII:-}${UI_ASCII:-}" in
|
||||
'') return 0 ;;
|
||||
esac
|
||||
# Nur dialog kann das; whiptail kennt die Option nicht.
|
||||
if [ "${UI_BIN:-}" = dialog ] && dialog --ascii-lines --print-version >/dev/null 2>&1; then
|
||||
UI_EXTRA=(--ascii-lines)
|
||||
elif [ -z "${UI_ASCII_WARNED:-}" ]; then
|
||||
UI_ASCII_WARNED=1
|
||||
warn "Einfache Rahmen kann nur 'dialog' zeichnen - 'whiptail' kennt
|
||||
die Option nicht. Installieren mit:
|
||||
dnf install -y dialog (RHEL/Rocky/Alma)
|
||||
apt-get install -y dialog (Debian/Ubuntu)"
|
||||
fi
|
||||
return 0
|
||||
}
|
||||
|
||||
ui_init() {
|
||||
ui_fix_locale || true
|
||||
ui_ascii_args
|
||||
|
||||
# Geometrie IMMER setzen - sonst laeuft das Skript unter "set -u" auf
|
||||
# eine unbound variable, wenn UI_BIN von aussen vorgegeben wurde.
|
||||
UI_H="${UI_H:-22}"; UI_W="${UI_W:-78}"; UI_MH="${UI_MH:-13}"
|
||||
[ -n "${UI_BIN:-}" ] && return 0
|
||||
if command -v dialog >/dev/null 2>&1; then UI_BIN=dialog
|
||||
elif command -v whiptail >/dev/null 2>&1; then UI_BIN=whiptail
|
||||
else UI_BIN=""; fi
|
||||
export DIALOGRC="${DIALOGRC:-}"
|
||||
|
||||
if [ -z "${UI_BIN:-}" ]; then
|
||||
if command -v dialog >/dev/null 2>&1; then UI_BIN=dialog
|
||||
elif command -v whiptail >/dev/null 2>&1; then UI_BIN=whiptail
|
||||
else UI_BIN=""; fi
|
||||
export DIALOGRC="${DIALOGRC:-}"
|
||||
fi
|
||||
|
||||
# Einfache Rahmen koennen nur mit dialog gezeichnet werden. Ist das
|
||||
# gewuenscht und dialog vorhanden, wird es dafuer vorgezogen.
|
||||
if [ -n "${CMK_TUI_ASCII:-}${UI_ASCII:-}" ] && command -v dialog >/dev/null 2>&1; then
|
||||
UI_BIN=dialog
|
||||
fi
|
||||
ui_ascii_args
|
||||
}
|
||||
|
||||
ui_available() { ui_init; [ -n "$UI_BIN" ]; }
|
||||
|
||||
Reference in New Issue
Block a user