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