Displays a GUI dialog box that users can interact with. Designed to be integrated into shell scripts.
Usage: ./fancydialog [options] [...] Options: --title : Set the title of the main window --position <x,y>: Place the window here, default: center --size <w,h>: Set the window size --icon : Set the icon for the window by name --iconfile : Set the icon for the window from a file --separator : In the output use this string to separate keys from values. Defaults to '=' Elements: --add-label : Adds a label, no return value --style 'Pango Style String' See: https://developer.gnome.org/pygtk/stable/pango-markup-language.html Example: --add-label "My Fancy Label" --style 'style="bold" size="x-large"' --add-separator: Adds a horizontal line --add-image <image_file>: Adds an image, the file must be a PNG --add-entry : Adds a one line textbox, returns the contents --default : The entry field is prefilled with this value --add-password : An entry field where the text is obscured --add-calendar : An entry where you can pick a date --format : Format of the output. See: https://developer.gnome.org/glib/stable/glib-GDateTime.html#g-date-time-format --add-checkbox : A binary entry, returns True if selected, False if not --checked: The checkbox will be selected by default --add-switch : Another binary entry, this one stylized like an on-off switch, default off --on: The switch will be in the 'on' position by default --add-combobox : A dropdown menu that allows one selection --value : This value will be added to the combox Use this option multiple times to add additional entries --default : This value will be added and automatically selected --add-file-selector : Select a file on the filesystem --savefile: Switch to choosing a new file to save to --selectfolder: Switch to selecting an existing folder --createfolder: Switch to createing a new folder --add-slider : Allows the user to select a value between 0 and 100 --default <0-100>: Start at this value --min : Select a different minimum value --max : Select a different maximum value --add-font : An entry field where you choose a system font --default : The default font selected --add-color : An entry field where you choose a color --default <r,g,b>: The color selected by default --hexstr: Output a hex string #rrggbb instead of decimal --add-application : An entry where you choose from one of the installed applications --default : The default application
To use this with bash scripts the easiest way is to import the output into an associative array so you can access each option individually. The option name is the label you specified for a field, and the value depends on which kind of field you used.
#!/bin/bash
declare -A opts
while IFS== read -r key value
do
opts["$key"]="$value"
done < <(fancydialog --title "Example Window"
--add-entry "Enter some text"
--add-checkbox "Select this if you like"
--add-color "Favorite Color"
--hexstr
--add-combobox "Favorite Direction"
--value "North" --value "West"
--value "East" --value "South")
echo "You entered
echo "Your favorite color is ${opts["Favorite Color"]} and your favorite direction is ${opts["Favorite Direction"]}"