xref: /freebsd/contrib/bsddialog/utility/bsddialog.1 (revision d316de24faa7453118a90fb0e9839e8026e36a4e)
1.\"
2.\" Copyright (c) 2021-2024 Alfonso Sabato Siciliano
3.\"
4.\" Redistribution and use in source and binary forms, with or without
5.\" modification, are permitted provided that the following conditions
6.\" are met:
7.\" 1. Redistributions of source code must retain the above copyright
8.\"    notice, this list of conditions and the following disclaimer.
9.\" 2. Redistributions in binary form must reproduce the above copyright
10.\"    notice, this list of conditions and the following disclaimer in the
11.\"    documentation and/or other materials provided with the distribution.
12.\"
13.\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
14.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
15.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
16.\" ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
17.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
18.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
19.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
20.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
21.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
22.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
23.\" SUCH DAMAGE.
24.\"
25.Dd April 7, 2024
26.Dt BSDDIALOG 1
27.Os
28.Sh NAME
29.Nm bsddialog
30.Nd TUI dialogs
31.Sh SYNOPSIS
32.Nm
33.Fl Fl help | Fl Fl version
34.Nm
35.Op Fl Fl option
36.Fl Fl dialog
37.Ar text
38.Ar rows
39.Ar cols
40.Op Ar dialog-argument
41.Op Fl Fl option
42.Nm
43\&...
44.Fl Fl dialog1
45.Ar ...
46.Oo Fl Fl and-dialog
47.Fl Fl dialog2
48.Ar ...
49.Oc ...
50.Sh DESCRIPTION
51The
52.Nm bsddialog
53utility builds Text User Interface dialogs and widgets.
54.Pp
55The option
56.Fl Fl help
57prints a brief list of features and exits.
58The option
59.Fl Fl version
60prints the version and exits.
61The option
62.Fl Fl and-dialog
63builds another dialog unless the previous one returns Error, ESC or Cancel.
64.Pp
65Each dialog accepts
66.Ar text
67to print a message inside,
68.Ar rows
69and
70.Ar cols
71to set height and width,
72.Dv 0
73for autosize and
74.Dv -1
75for fullscreen.
76.Pp
77The possible input from the user interface is printed to standard error at exit.
78.Ss Options
79The following options can change the default behavior of the utility and are
80common to some dialog.
81.Bl -tag -width Ds
82.It Fl Fl alternate-screen
83If available set alternate screen mode, see
84.Xr terminfo 5 .
85.It Fl Fl ascii-lines
86Ascii characters to draw lines.
87.It Fl Fl backtitle Ar backtitle
88Screen title.
89.It Fl Fl begin-x Ar x
90Set dialog horizontal position,
91.Dv -1
92center,
93.Dv 0
94left screen.
95.It Fl Fl begin-y Ar y
96Set dialog vertical position,
97.Dv -1
98center,
99.Dv 0
100top screen.
101.It Fl Fl bikeshed
102Random settings.
103Colors, title delimiter, button delimiter; see theme features.
104Title margin.
105Buttons always active or TAB to switch focus with other components, see
106.Fl Fl switch-buttons .
107Zero padding with time output; see
108.Fl Fl time-format .
109Zero padding with date output; see
110.Fl Fl date-format .
111User Interface date format for
112.Fl Fl datebox ;
113see
114.Fl Fl datebox-format .
115.It Fl Fl cancel-exit-code Ar retval
116Set an exit code value for the
117.Dq Cancel
118button.
119.It Fl Fl cancel-label Ar label
120Label for the
121.Dq Cancel
122button.
123.It Fl Fl clear-dialog
124Hide the dialog at exit.
125.It Fl Fl clear-screen
126Clear the screen, wait a dialog if built.
127.It Fl Fl columns-per-row Ar columns
128Try to set the number of columns for a row of text with autosizing; default
129.Dv 10 .
130.It Fl Fl cr-wrap
131Keep new line in
132.Ar text
133also if it constains a
134.Dq \en ,
135see
136.Fl Fl text-unchanged .
137.It Fl Fl datebox-format Ar format
138String to customize
139.Fl Fl datebox
140interface, possible values:
141.Dq d/m/y ,
142.Dq m/y/d ,
143.Dq y/m/d .
144.It Fl Fl date-format Ar format
145String accepted by
146.Xr strftime 3
147to customize the output of
148.Fl Fl datebox
149and
150.Fl Fl calendar .
151.It Fl Fl default-button Ar label
152Focus on the button with
153.Ar label
154on startup.
155.It Fl Fl default-item Ar name
156Focus on the item with
157.Ar name ,
158for Checklist, Menu, Radiolist and Treeview.
159.It Fl Fl default-no
160Focus on
161.Dq Cancel
162or
163.Dq \&No
164button on startup.
165.It Fl Fl disable-esc
166Disable ESC key to quit.
167.It Fl Fl error-exit-code Ar retval
168Set an exit code value for the
169.Nm
170errors.
171.It Fl Fl esc-exit-code Ar retval
172Set an exit code value for the
173.Dv ESC
174key.
175.It Fl Fl extra-button
176Add a button with
177.Dq Extra
178label.
179.It Fl Fl extra-exit-code Ar retval
180Set an exit code value for the
181.Dq Extra
182button.
183.It Fl Fl extra-label Ar label
184Set
185.Ar label
186for the
187.Dq Extra
188button.
189.It Fl Fl left1-button Ar label
190Add a button with
191.Ar label .
192.It Fl Fl left1-exit-code Ar retval
193Set an exit code for
194.Fl Fl left1-button .
195.It Fl Fl left2-button Ar label
196Add a button with
197.Ar label .
198.It Fl Fl left2-exit-code Ar retval
199Set an exit code for
200.Fl Fl left2-button .
201.It Fl Fl left3-button Ar label
202Add a button with
203.Ar label .
204.It Fl Fl left3-exit-code Ar retval
205Set an exit code for
206.Fl Fl left3-button .
207.It Fl Fl help-button
208Add a button with
209.Dq Help
210label.
211.It Fl Fl help-exit-code Ar retval
212Set an exit code value for the
213.Dq Help
214button.
215.It Fl Fl help-label Ar label
216Set
217.Ar label
218for
219.Dq Help
220button.
221.It Fl Fl help-print-items
222Print also the selected items or form values if the
223.Dq Help
224button is pressed.
225.It Fl Fl help-print-name
226Print the name of the focused item if the
227.Dq Help
228button is pressed also
229with
230.Fl Fl item-bottom-desc .
231.It Fl Fl hfile Ar filename
232Open
233.Ar filename
234in a Textbox if F1 key is pressed.
235.It Fl Fl hline Ar string
236Dialog subtitle.
237.It Fl Fl hmsg Ar string
238Open a Msgbox with
239.Ar string
240if the F1 key is pressed.
241.It Fl Fl ignore
242Do not exit with unknown options.
243.It Fl Fl insecure
244Print
245.Sq *
246to hide passwords while typing, white space otherwise.
247.It Fl Fl item-bottom-desc
248Set a help string for each item of a Checklist, Form, Menu, Mixedform,
249Passwordform, Radiolist and Treeview to display at the bottom screen side.
250.It Fl Fl item-depth
251Specify a margin for items, available for Checklist, Menu and Radiolist.
252.It Fl Fl item-prefix
253Set a string to prefix each item of a Checklist, Menu, Radiolist or Treeview.
254.It Fl Fl load-theme Ar file
255Load theme from
256.Ar file .
257.It Fl Fl max-input Ar size
258Maximum length of the input for
259.Fl Fl inputbox
260and
261.Fl Fl passwordbox ,
262default 2048.
263.It Fl Fl no-cancel
264Do not show
265.Dq Cancel
266button.
267.It Fl Fl no-descriptions
268Do not display items desciption, for Checklist, Menu, Radiolist or Treeview;
269mutually exclusive with
270.Fl Fl no-names .
271.It Fl Fl no-lines
272Do not draw borders and lines.
273.It Fl Fl no-names
274Do not display items name, for Checklist, Menu and Radiolist; mutually exclusive
275with
276.Fl Fl no-descriptions .
277.It Fl Fl no-ok
278Do not draw
279.Dq OK
280button.
281.It Fl Fl no-shadow
282No not draw the shadow of the dialog.
283.It Fl Fl ok-label Ar label
284Set
285.Ar label
286for
287.Dq OK
288button.
289.It Fl Fl ok-exit-code Ar retval
290Set an exit code value for the
291.Dq Ok
292button.
293.It Fl Fl normal-screen
294If available set normal screen mode, see
295.Xr terminfo 5 .
296.It Fl Fl output-fd Ar fd
297Print input from user interface to the specified file descriptor.
298.It Fl Fl output-separator Ar sep
299Set a sepator for the items in output, default white space.
300.It Fl Fl print-maxsize
301Screen size.
302This option can be used without a dialog.
303.It Fl Fl print-size
304Print dialog height and width at exit.
305.It Fl Fl print-version
306Print version.
307This option can be used without a dialog.
308.It Fl Fl quoted
309Quote items in output, default only when necessary.
310.It Fl Fl right1-button Ar label
311Add a button with
312.Ar label .
313.It Fl Fl right1-exit-code Ar retval
314Set an exit code for
315.Fl Fl right1-button .
316.It Fl Fl right2-button Ar label
317Add a button with
318.Ar label .
319.It Fl Fl right2-exit-code Ar retval
320Set an exit code for
321.Fl Fl right2-button .
322.It Fl Fl right3-button Ar label
323Add a button with
324.Ar label .
325.It Fl Fl right3-exit-code Ar retval
326Set an exit code for
327.Fl Fl right3-button .
328.It Fl Fl save-theme Ar file
329Save the current theme.
330This option can be used without a dialog.
331.It Fl Fl separate-output
332Print selected items separated by a new line and avoid to quote.
333.It Fl Fl shadow
334Show a shadow for the dialog, enabled by default.
335.It Fl Fl single-quoted
336Use single quote for items in output.
337.It Fl Fl sleep Ar secs
338Wait
339.Ar secs
340seconds to close the dialog.
341.It Fl Fl stderr
342Print input from user interface to standand error, default.
343.It Fl Fl stdout
344Print input from user interface to standard output.
345.It Fl Fl switch-buttons
346Enable focus switching between buttons and input components pressing TAB,
347otherwise buttons are always active and ENTER key closes the dialog.
348Suitable for:
349.Fl Fl form ,
350.Fl Fl inputbox ,
351.Fl Fl mixedform ,
352.Fl Fl passwordbox ,
353.Fl Fl passwordform ,
354.Fl Fl timebox ,
355.Fl Fl calendar
356and
357.Fl Fl datebox .
358.It Fl Fl tab-escape
359Replace
360.Dq \et
361with a tab in
362.Ar text .
363.It Fl Fl tab-len Ar spaces
364Number of spaces to print a TAB in
365.Ar text .
366.It Fl Fl text-escape
367Enable escapes in
368.Ar text :
369.Bl -column -compact
370.It Dq \eZ0
371black.
372.It Dq \eZ1
373red.
374.It Dq \eZ2
375green.
376.It Dq \eZ3
377yellow.
378.It Dq \eZ4
379blue.
380.It Dq \eZ5
381magenta.
382.It Dq \eZ6
383cyan.
384.It Dq \eZ7
385white.
386.It Dq \eZb
387bold.
388.It Dq \eZB
389disable bold.
390.It Dq \eZd
391Half bright.
392.It Dq \eZD
393disable half bright.
394.It Dq \eZk
395Blink.
396.It Dq \eZK
397disable blinking.
398.It Dq \eZr
399reverse foreground and background.
400.It Dq \eZR
401disable reverse.
402.It Dq \eZs
403Highlight.
404.It Dq \eZS
405disable highlighting.
406.It Dq \eZu
407underline.
408.It Dq \eZU
409disable underline.
410.It Dq \eZn
411disable each customization.
412.El
413.It Fl Fl text-unchanged
414Disable
415.Ar text
416modification.
417By default
418.Ar text
419is changed before to be printed in the dialog.
420If it contains at least a
421.Dq \en
422each new line and TAB is converted to a space, subsequent spaces are merged.
423Otherwise new line characters are preserved and a TAB becomes a space.
424.It Fl Fl theme Ar theme
425Set theme, possible values:
426.Dq 3d ,
427.Dq blackwhite ,
428.Dq flat .
429.It Fl Fl time-format Ar format
430String accepted by
431.Xr strftime 3
432to customize the output of
433.Fl Fl timebox .
434.It Fl Fl timeout-exit-code Ar retval
435Set an exit code value for the
436.Fl Fl pause
437timeout.
438.It Fl Fl title Ar title
439Dialog title.
440.El
441.Ss Keys
442The following keys are available at runtime:
443.Bl -tag -width Ds
444.It Ctrl-l
445Redraw the dialog.
446.It F1
447See
448.Fl Fl hfile
449and
450.Fl Fl hmsg .
451.It SPACE
452Select menu item.
453.It UP DOWN LEFT RIGHT - + HOME END PAGEUP PAGEDOWN Ctrl-p Ctrl-n TAB
454Navigate elements and set value, depending on the dialog.
455.El
456.Ss Dialogs
457The following dialogs are available:
458.Bl -tag -width Ds
459.It Fl Fl calendar Ar text Ar rows Ar cols Op Ar day Ar month Ar year
460Dialog to select a date.
461.It Fl Fl checklist Ar text Ar rows Ar cols Ar menurows Oo Ar name Ar desc \
462Ar status Oc ...
463Checklist to select some item from a list via the SPACE key.
464An item has a
465.Ar name ,
466.Ar desc
467and a default
468.Ar status
469specified by
470.Dq on
471or
472.Dq off .
473The names of the selected items are printed to standard error.
474.Ar menurows
475is the graphical height of the list, 0 for autosize.
476.It Fl Fl datebox Ar text Ar rows Ar cols Op Ar day Ar month Ar year
477Dialog to select a date.
478.It Fl Fl form Ar text Ar rows Ar cols Ar formrows Oo Ar label Ar ylabel \
479Ar xlabel Ar init Ar yfield Ar xfield Ar fieldlen Ar maxletters Oc ...
480Dialog to get a list of strings via forms.
481A form has a
482.Ar label
483at the position
484.Ar ylabel
485and
486.Ar xlabel ,
487a field to get the input at the position
488.Ar yfield
489and
490.Ar xfield .
491.Ar fieldlen
492is the field width, if negative is readonly and the width is the absolute value,
493if
494.Dv 0
495the field becomes readonly and its value is the
496.Ar init
497width.
498.Ar maxletters
499is the maximum input length, if is
500.Dv 0
501its value is
502.Ar fieldlen .
503.Ar init
504is the default value in the field.
505.Ar formrows
506is the graphical height of the list,
507.Dv 0
508for autosize.
509.It Fl Fl gauge Ar text Ar rows Ar cols Op Ar percentage
510Dialog with a bar to shows
511.Ar percentage ,
512then it waits to read
513.Dq XXX
514from the standard input, then the first string replaces percentage and the
515following strings replace
516.Ar text
517until the next
518.Dq XXX ,
519the loop ends reading
520.Dq EOF .
521.It Fl Fl infobox Ar text Ar rows Ar cols
522Dialog without buttons to display a message and to exit immediately.
523.It Fl Fl inputbox Ar text Ar rows Ar cols Op Ar init
524Dialog to get a string in input,
525.Ar init
526is the default value.
527.It Fl Fl menu Ar text Ar rows Ar cols Ar menurows Oo Ar name desc Oc ...
528Builds a menu to select an item from a list, SPACE key is equivalent to ENTER.
529An item has a
530.Ar name
531and a
532.Ar desc .
533The name of the selected item is printed to standard error.
534.Ar menurows
535is the graphical height of the list, 0 for autosize.
536.It Fl Fl mixedform Ar text Ar rows Ar cols Ar formrows Oo Ar label Ar ylabel \
537Ar xlabel Ar init Ar yfield Ar xfield Ar fieldlen Ar maxletters Ar flag Oc ...
538Dialog to get a list of strings via forms.
539A form has a
540.Ar label
541at the position
542.Ar ylabel
543and
544.Ar xlabel ,
545a field to get the input at the position
546.Ar yfield
547and
548.Ar xfield .
549.Ar fieldlen
550is the field width, if negative is readonly and the width is the absolute value,
551if
552.Dv 0
553the field becomes readonly and its value is the
554.Ar init
555width.
556.Ar maxletters
557is the maximum input length, if is
558.Dv 0
559its value is
560.Ar fieldlen .
561.Ar init
562is the default value in the field.
563.Ar flag
564can customize
565.Ar field :
566.Dv 0
567normal,
568.Dv 1
569hide typed characters,
570.Dv 2
571readonly.
572.Ar formrows
573is the graphical height of the list,
574.Dv 0
575for autosize.
576.It Fl Fl mixedgauge Ar text Ar rows Ar cols Ar mainperc Oo Ar minilabel \
577Ar miniperc Oc ...
578Dialog to show a main bar to represent
579.Ar mainperc
580from 0 to 100.
581Some mini bar with a
582.Ar minilabel
583string and a
584.Ar miniperc
585with a value from 0 and 100 or negative to print a descriptive string: -1
586.Dq Succeeded ,
587-2
588.Dq Failed ,
589-3
590.Dq Passed ,
591-4
592.Dq Completed ,
593-5
594.Dq Checked ,
595-6
596.Dq Done ,
597-7
598.Dq Skipped ,
599-8
600.Dq \&In Progress ,
601-9
602to hide
603.Fa miniperc ,
604-10
605.Dq N/A ,
606-11
607.Dq Pending ,
608otherwise
609.Dq UNKNOWN .
610.It Fl Fl msgbox Ar text Ar rows Ar cols
611Dialog to diplay a message without the
612.Dq Cancel
613button.
614.It Fl Fl passwordbox Ar text Ar rows Ar cols Op Ar init
615Dialog to get a password,
616.Ar init
617is the default value.
618.It Fl Fl passwordform Ar text Ar rows Ar cols Ar formrows Oo Ar label \
619Ar ylabel Ar xlabel Ar init Ar yfield Ar xfield  Ar fieldlen Ar maxletters \
620Oc ...
621Dialog to get a list of passwords, equivalent to
622.Fl Fl form
623except typed characters are hidden.
624.It Fl Fl pause Ar text Ar rows Ar cols Ar seconds
625Dialog runs until
626.Ar seconds
627timeout expires or a button is pressed.
628.It Fl Fl radiolist Ar text Ar rows Ar cols Ar menurows Oo Ar name Ar desc \
629Ar status Oc ...
630Radiolist to select at most an item from a list via the SPACE key.
631An item has a
632.Ar name ,
633.Ar desc
634and a default
635.Ar status
636specified by
637.Dq on
638or
639.Dq off .
640The name of the selected item is printed to standard error.
641.Ar menurows
642is the graphical height of the list, 0 for autosize.
643.It Fl Fl rangebox Ar text Ar rows Ar cols Ar min Ar max Op Ar init
644Dialog to select a value between
645.Ar min
646and
647.Ar max ,
648.Ar init
649is the default value.
650.It Fl Fl textbox Ar file Ar rows Ar cols
651Opens and prints
652.Ar file .
653TAB changes button.
654Extra keys 0, h, l, k, j are available to navigate the text.
655.Dq OK
656button is renamed
657.Dq EXIT .
658.It Fl Fl timebox Ar text Ar rows Ar cols Op Ar hour Ar min Ar sec
659Dialog to select a time.
660.It Fl Fl treeview Ar text Ar rows Ar cols Ar menurows Oo Ar depth Ar name \
661Ar desc Ar status Oc ...
662Equivalent to Radiolist with
663.Fl Fl  item-depth
664and
665.Fl Fl no-name .
666.It Fl Fl yesno Ar text Ar rows Ar cols
667.Dq Yes-No Question ,
668.Dq OK
669and
670.Dq Cancel
671buttons are renamed
672.Dq Yes
673and
674.Dq \&No .
675.El
676.Sh ENVIRONMENT
677The following environment variables take effect only on startup, other options
678can override their setting.
679.Bl -tag -width indent
680.It Ev NO_COLOR
681If present and not an empty string (regardless of its value) equivalent to
682.Fl Fl theme Ar blackwhite .
683.It Ev BSDDIALOG_ERROR , Ev BSDDIALOG_OK , Ev BSDDIALOG_CANCEL , \
684Ev BSDDIALOG_HELP , Ev BSDDIALOG_EXTRA , Ev BSDDIALOG_TIMEOUT , \
685Ev BSDDIALOG_ESC , Ev BSDDIALOG_LEFT1 , Ev BSDDIALOG_LEFT2 , \
686Ev BSDDIALOG_LEFT3 , Ev BSDDIALOG_RIGHT1 , Ev BSDDIALOG_RIGHT2 , \
687Ev BSDDIALOG_RIGHT3
688Set exit codes.
689.It Ev BSDDIALOG_THEMEFILE Ar file
690Equivalent to
691.Fl Fl load-theme Ar file .
692.El
693.Sh FILES
694The theme file
695.Pa $HOME/.bsddialog.conf
696is read on startup if exists.
697.Sh EXIT STATUS
698The
699.Nm
700utility exits 255 on unsuccessful, otherwise depending on the button or key
701pressed the following values can be returned:
702.Bl -column -compact
703.It 0
704.Dq OK ,
705.Dq Yes
706or
707.Dq Exit
708button.
709.It 1
710.Dq Cancel
711or
712.Dq \&No
713button.
714.It 2
715.Dq Help
716button.
717.It 3
718.Dq Extra
719button.
720.It 4
721Timeout.
722.It 5
723ESC key.
724.It 6
725Left1 generic button.
726.It 7
727Left2 generic button.
728.It 8
729Left3 generic button.
730.It 9
731Right1 generic button.
732.It 10
733Right2 generic button.
734.It 11
735Right2 generic button.
736.El
737.Sh EXAMPLES
738Backtitle, title and message:
739.Dl bsddialog --backtitle MESSAGE --title Msgbox --msgbox Message 0 0
740.Pp
741Yes-No Question and theme:
742.Dl bsddialog --theme blackwhite --yesno Question 10 30
743.Pp
744Save a custom theme:
745.Dl bsddialog --save-theme mytheme.txt --infobox \*qSaving theme...\*q 0 0
746.Pp
747Load a custom theme:
748.Dl bsddialog --load-theme mytheme.txt --infobox \*qCustom theme\*q 0 0
749.Pp
750Checklist:
751.Dl bsddialog --checklist Checklist 0 0 3 N1 \&D1 off N2 D2 on N3 D3 off
752.Pp
753Form:
754.Dl bsddialog --form Form 0 0 0 L1: 0 0 X 0 4 20 25 L2: 1 0 Y 1 4 20 25
755.Pp
756Multi-dialog:
757.Dl bsddialog --normal-screen --begin-y 1 --yesno Continue? 0 0  \e \
758--and-dialog --begin-y 10 --infobox Yes 0 0
759.Pp
760Bikeshed:
761.Dl bsddialog --bikeshed --inputbox Example 0 0
762.Dl bsddialog --bikeshed --datebox Example 0 0
763.Pp
764Mixedgauge:
765.Dl bsddialog --sleep 3 --mixedgauge Example 10 30 60 L1 \*q -1\*q L2 30
766.Pp
767Mixedgauge script:
768.Bd -literal -offset indent -compact
769perc=0
770while [ $perc -le 100 ]
771do
772	bsddialog --sleep 1 --title Mixedgauge          \e
773		--mixedgauge "\enExample...\en" 0 0 $perc \e
774		"Hidden"   " -9"                        \e
775		"Label 1"  " -4"                        \e
776		"Label 2"  " -4"                        \e
777		"Label 3"  $perc
778
779	perc=`expr $perc + 20`
780done
781.Ed
782.Pp
783Gauge script:
784.Bd -literal -offset indent -compact
785i=1
786for c in A B C D E F G H
787do
788	sleep 1
789	echo XXX
790	echo "$(expr $(expr $i "*" 100) "/" 8)"
791	echo "[$i/8] Char: $c"
792	echo XXX
793	if [ $i -eq 8 ]
794	then
795		sleep 1
796		echo EOF
797	fi
798	i=`expr $i + 1`
799done | bsddialog --title Gauge --gauge "Starting..." 10 70
800.Ed
801.Sh COMPATIBILITY
802Outdated options are retained for compatibility, properly equivalent options are
803used:
804.Bd -literal -offset indent -compact
805Obsolete                     Equivalent
806--and-widget                 --and-dialog
807--calendar <text> 2 <cols>   --calendar <text> 0 <cols>
808--clear                      --clear-screen
809--colors                     --text-escape
810--defaultno                  --default-no
811--exit-label                 --ok-label
812--help-status                --help-print-items
813--help-tags                  --help-print-name
814--item-help                  --item-bottom-desc
815--keep-tite                  --alternate-screen
816--no-items                   --no-descriptions
817--no-label                   --cancel-label
818--no-tags                    --no-names
819--nocancel                   --no-cancel
820--nook                       --no-ok
821--separator                  --output-separator
822--yes-label                  --ok-label
823.Ed
824.Sh SEE ALSO
825.Xr bsddialog 3 ,
826.Xr strftime 3 ,
827.Xr terminfo 5
828.Sh HISTORY
829The
830.Nm bsddialog
831utility first appeared in
832.Fx 14.0 .
833.Sh AUTHORS
834.Nm bsddialog
835was written by
836.An Alfonso Sabato Siciliano
837.Aq Mt asiciliano@FreeBSD.org .
838.Pp
839.Nm bsddialog
840provides also a subset of the functionality described in the
841.Nm dialog
842manual.
843The following features were reimplemented:
844.Pp
845Options:
846.Fl Fl and-widget ,
847.Fl Fl ascii-lines ,
848.Fl Fl backtitle ,
849.Fl Fl cancel-label ,
850.Fl Fl clear ,
851.Fl Fl colors ,
852.Fl Fl cr-wrap ,
853.Fl Fl date-format ,
854.Fl Fl defaultno ,
855.Fl Fl default-button ,
856.Fl Fl default-no ,
857.Fl Fl default-item ,
858.Fl Fl exit-label ,
859.Fl Fl extra-button ,
860.Fl Fl extra-label ,
861.Fl Fl help ,
862.Fl Fl help-button ,
863.Fl Fl help-label ,
864.Fl Fl help-status ,
865.Fl Fl help-tags ,
866.Fl Fl hfile ,
867.Fl Fl hline ,
868.Fl Fl ignore ,
869.Fl Fl insecure ,
870.Fl Fl item-help ,
871.Fl Fl keep-tite ,
872.Fl Fl max-input ,
873.Fl Fl no-cancel ,
874.Fl Fl nocancel ,
875.Fl Fl no-items ,
876.Fl Fl no-label ,
877.Fl Fl no-lines ,
878.Fl Fl no-ok ,
879.Fl Fl nook ,
880.Fl Fl no-shadow ,
881.Fl Fl no-tags ,
882.Fl Fl ok-label ,
883.Fl Fl output-fd ,
884.Fl Fl output-separator ,
885.Fl Fl print-maxsize ,
886.Fl Fl print-size ,
887.Fl Fl print-version ,
888.Fl Fl quoted ,
889.Fl Fl separate-output ,
890.Fl Fl separator ,
891.Fl Fl shadow ,
892.Fl Fl single-quoted ,
893.Fl Fl sleep ,
894.Fl Fl stderr ,
895.Fl Fl stdout ,
896.Fl Fl tab-len ,
897.Fl Fl time-format ,
898.Fl Fl title ,
899.Fl Fl version ,
900.Fl Fl yes-label .
901.Pp
902Keys: Ctrl-l, F1.
903.Pp
904Dialogs:
905.Fl Fl calendar ,
906.Fl Fl checklist ,
907.Fl Fl form ,
908.Fl Fl gauge ,
909.Fl Fl infobox ,
910.Fl Fl inputbox ,
911.Fl Fl menu ,
912.Fl Fl mixedform ,
913.Fl Fl mixedgauge ,
914.Fl Fl msgbox ,
915.Fl Fl passwordbox ,
916.Fl Fl passwordform ,
917.Fl Fl pause ,
918.Fl Fl radiolist ,
919.Fl Fl rangebox ,
920.Fl Fl textbox ,
921.Fl Fl timebox ,
922.Fl Fl treeview ,
923.Fl Fl yesno .
924.Pp
925Some feature differs in input, output, or behavior.
926Compatibility is not a priority for future development.
927.Sh THANKS TO
928.An Baptiste Daroussin
929.Aq Mt bapt@FreeBSD.org ,
930.An \&Ed Maste
931.Aq Mt emaste@FreeBSD.org ,
932.An Juraj Lutter
933.Aq Mt otis@FreeBSD.org
934and
935.An Trenton Schulz
936for suggestions, help, and testing.
937