SUSEDIALOG(1)

πŸ“¦ version 20260501.3969402, in opensuse-leap 16.0

✨ NAME ✨

Okay bestie, welcome to the SUSEDIALOG(1) page from the User Commands section. The command is susedialog β€” the openSUSE-branded terminal dialog shim. That's the whole name vibe: shim, branded, terminal, cute. πŸ’…


πŸ¦‹ SYNOPSIS πŸ¦‹

susedialog [common-options] widget [widget-options]

So it's susedialog, then your [common-options], then a widget, then that widget's [widget-options]. Slay. ✨


πŸ’– DESCRIPTION πŸ’–

susedialog is a Bubble Tea-based compatibility shim for a subset of dialog(1) widgets, designed for openSUSE system tooling such as jeos-firstboot and opensuse-migration-tool. It's giving "dialog but make it openSUSE." 🫢

Like dialog, the UI is drawn on standard output, and the selected value(s) are written to standard error β€” or to the file descriptor given by --output-fd. A non-zero exit status signals cancellation. No cap.

Screen clearing between dialogs is enabled by default. That's equivalent to always passing --clear to dialog. So yes, clear-the-screen is the default energy. ✨


🧚 WIDGETS 🧚

Pick your widget, bestie β€” these are the supported ones:

  • --msgbox text height width β€” Display a message box with an OK button. Returns 0 when dismissed. Easy.
  • --infobox text height width β€” Display a non-interactive informational message and exit immediately with status 0.
  • --textbox file height width β€” Display the contents of file in a scrollable box. Press Enter or click Continue to dismiss.
  • --yesno text height width β€” Display a yes/no question. Returns 0 for Yes, 1 for No.
  • --inputbox text height width β€” Prompt the user for a single line of text. The entered value is written to the output file descriptor.
  • --passwordbox text height width β€” Like --inputbox but input is masked with asterisks. The entered value is written to the output file descriptor.
  • --menu text height width list-height tag label [tag label] ... β€” Display a single-selection menu. Writes the selected tag to the output file descriptor.
  • --checklist text height width list-height tag label state [tag label state] ... β€” Display a multi-selection checklist. state is on or off. Writes a space-separated quoted list of selected tags to the output file descriptor.
  • --form text height width form-height label y x init y x flen ilen [...] β€” Display an editable form with labelled fields. Field positions and lengths are accepted for dialog(1) compatibility but layout is managed automatically. Writes field values separated by newlines to the output file descriptor.
  • --mixedform text height width form-height label y x init y x flen ilen type [...] β€” Like --form but each field has an additional type argument: 0 normal, 1 password (masked), 2 read-only label.
  • --progress text height width [percent] β€” Display a progress bar. If percent is given the bar is set to that value; otherwise it reads percentages from standard input.

πŸŽ€ COMMON OPTIONS πŸŽ€

  • --title title β€” Set the dialog title.
  • --backtitle backtitle β€” Set the background title (displayed at the top of the screen).
  • --ok-label label β€” Override the label of the OK/Yes button (default: OK).
  • --cancel-label label β€” Override the label of the Cancel/No button.
  • --exit-label label β€” Override the label of the Exit button (default: Exit).
  • --output-fd fd β€” Write output to file descriptor fd instead of standard error.
  • --default-item tag β€” Pre-select tag in a menu or checklist.
  • --theme name β€” Select a named color theme. Built-in themes include opensuse and high-contrast, and rainbow.
  • --align mode β€” Set dialog alignment. Supported values are topleft and center. Default is topleft.
  • --clear β€” Clear the screen before rendering the next dialog. This is the default behavior; the flag is accepted for dialog(1) compatibility.
  • --insecure β€” Accepted for compatibility. Password fields are always masked regardless of this flag.
  • --no-nl-expand β€” Do not expand \n escape sequences in text strings.
  • --no-collapse β€” Accepted for dialog(1) compatibility; has no effect.

πŸ’€ EXIT STATUS πŸ’€

  • 0 β€” The user confirmed or selected a value (Yes, OK, Continue).
  • 1 β€” The user cancelled (No, Cancel, ESC).
  • 130 β€” Interrupted by Ctrl+C. This uses SIGINT process-group semantics to match dialog(1) behavior in wrapper applications.

🌸 ENVIRONMENT 🌸

  • SUSEDIALOG_DEBUG_KEYS β€” When set to 1, received key names are printed to standard error while a dialog is running. Useful for debugging key-handling issues.
  • SUSEDIALOG_THEME β€” Selects the theme when --theme is not specified.
  • SUSEDIALOG_ALIGN β€” Sets dialog alignment when --align is not specified. Supported values are topleft and center.
  • SUSEDIALOG_THEME_TOGGLE_KEY β€” Sets the key binding used to toggle between opensuse and high-contrast themes while a dialog is open. Default is ctrl+t.

Theme resolution order is: --theme option, SUSEDIALOG_THEME environment variable, ~/.config/susedialog/config (or $XDG_CONFIG_HOME/susedialog/config), then /etc/susedialog/config.

Config files use shell-style key=value entries and also accept lines prefixed with export. Supported config keys are theme, SUSEDIALOG_THEME, align, SUSEDIALOG_ALIGN, theme_toggle_key, and SUSEDIALOG_THEME_TOGGLE_KEY.

When the theme is changed at runtime with the toggle shortcut, susedialog stores the selected theme in the user config file as SUSEDIALOG_THEME=.... This makes the choice persist across future runs and override any system-wide default. Iconic.

The toggle shortcut can be set in config files with theme_toggle_key or via SUSEDIALOG_THEME_TOGGLE_KEY.

Alignment can be set in config files with align or via SUSEDIALOG_ALIGN.


🌈 EXAMPLES 🌈

Display a simple message:

susedialog --title "Hello" --msgbox "Installation complete." 10 50

Show a non-interactive status update:

susedialog --title "Status" --infobox "Refreshing repositories..." 8 50

Prompt the user to choose a migration target:

CHOICE=$(susedialog --title "Migration" \
  --menu "Select target:" 20 60 10 \
  "15.6" "openSUSE Leap 15.6" \
  "16.0" "openSUSE Leap 16.0" \
  2>&1 >/dev/tty) || exit 1

Collect user credentials:

PASS=$(susedialog --title "Auth" \
  --passwordbox "Enter password:" 10 50 \
  2>&1 >/dev/tty)

πŸ‘‘ SEE ALSO πŸ‘‘

dialog(1)

That's the whole see-also situation. πŸ’…


πŸ“ AUTHORS πŸ“

susedialog was written by the openSUSE community. Iconic behavior, honestly. 🫢


πŸ™ˆ BUGS πŸ™ˆ

Report bugs at https://github.com/openSUSE/susedialog/issues.


Okay that's the whole page, bestie β€” it's dated April 2026 and the source/version footer name is susedialog, so go forth and dialog πŸ’–

πŸ“¦ where this page comes from