__________________________________________________________________ [5]http://invisible-island.net/ Copyright © 1999-2015,2016 by Thomas E. Dickey __________________________________________________________________ DIALOG – Script-driven curses widgets * [6](top) * [7]Synopsis * [8]History + [9]Early History + [10]My Involvement... + [11]Dialog's ChangeLog * [12]Compatibility + [13]Older versions of dialog + [14]Xdialog + [15]whiptail + [16]gdialog + [17]zenity + [18]kdialog * [19]Documentation * [20]Download * [21]Screenshot * [22]Related Links + [23]Packages + [24]Programs + [25]Other * [26]Bugs Synopsis Though similar in style to [27]CDK, it is different, being a script-interpreter which provides a set of curses widgets. Widgets are objects whose appearance and behavior can be customized. There is a much-reduced variation of dialog, called lxdialog, which is used in Linux kernel configuration. History Early History Dialog was written by Savio Lam and modified by several people: CAPTION: Early Dialog History Date Version Developer Features 1993/12/17 0.1 Savio Lam The options in the initial release of dialog were --inputbox, --msgbox, and --yesno. 1994/01/03 0.2 Savio Lam Several options were added: --checklist, --clear, --infobox, --menu, --textbox, and --title. 1994/01/13 0.3 Savio Lam This added simple color support, along with the --create-rc option to configure it at runtime. 1994/06/11 0.4 Stuart Herbert This improved the color support, providing the 3-dimensional appearance by using shadows. It also added the --backtitle and --radiolist options. 1994/10/08 0.4 fork FreeBSD developers Andrey A Chernov imported dialog 0.4 into the FreeBSD source tree, splitting it into program- and library-sections. * Andrey A Chernov added a prgbox function to allow running a program via a pipe to a dialog box. * Anatoly A Orehovsky added a widget for displaying file-trees, e.g., as produced by the find program as well as more general uses. * Marc van Kempen added a file-selector, as well as a different gauge widget. The main use of this version of dialog was reportedly [28]sysinstall. That was replaced by this version of dialog for FreeBSD 9.0 by Nathan Whitehorn and others. I made improvements to dialog to help with this starting [29]early in 2011, adding these options: --hfile, --hline, --prgbox, and --programbox. 1994/11/07 0.5 Marc Ewing This added the --gauge and --separate-output options. It modified the --inputbox option to provide for an (optional) initial value. The dialog.pl file was added as an example. 1995/01/28 0.6 Marc Ewing Only bug-fixes were made. 1995/09/12 0.6c Florian La Roche Added mouse support by Rubini, dated 1994. This also adapted changes from 0.5 or 0.6, adding the gauge widget (but misspelled). The misspelling propagated into cdialog. 1995/08/17 0.6z John Gatewood Ham This added no new features. It modified the usage message to show only those features that were compiled-in. 1996/01/15 0.9a Pasquale De Marco "Pako" This is cdialog, based on 0.6c. It added many new options: --and-widget, --aspect, --beep, --beep-after, --begin, --cr-wrap, --no-kill, --print-maxsize, --print-size, --print-version, --size-err, --sleep, --tab-correct, --tab-len, --tailbox, and --tailboxbg. 1996/01/16 0.69 Allesandro Rubini This is a fork of 0.6z, not used by later development. 1997/01/09 0.6z John Gatewood Ham In my copy, the samples and docs were updated about a year later. 2001/02/06 0.61a Thomas Regner This added a file-selector dialog option --file. The README states that it was distributed as a patch to 0.6z, however my copy was fully-patched (probably a copy of the tar-ball from which the patch was made). Vincent Stemen incorporated this work in the patches which he sent to me. That became the --fselect widget. Later, [30]in 2004 I later added a different option named --file. 2001/03/16 [31]0.7 Vincent Stemen This is based on 0.61a, intentionally between 0.6z and 0.9a-20010115. Vincent sent patches to me [32]in 2001 to add his changes to my ongoing snapshots, so that this fork's changes were not lost. My Involvement I became involved with dialog for the same reason as [33]Cdk: they were the most well-known applications using [34]ncurses, and I realized that they were not being maintained well enough to reflect ncurses' capabilities. Initially, I made fixes and reviewed the code to ensure that problems reported were not related to [35]ncurses. After that, I resumed development, adding new widget types. See the [36]changelog for details. [37]At the end of 2005, I relicensed dialog as LGPL. It was GPL before, which made it (the dialog library in particular) unusable by developers of non-GPL programs. After several requests, I discussed this with Santiago Vila (the Debian package maintainer), indicating my intention to audit the code, and remove as needed any fragments predating my work. I reviewed the code (studying the changes using [38]diffstat and [39]tkdiff) and found that over the course of development and improvements, I had replaced all of the original program. After accounting for the license notice itself, blank lines and curly braces, there was no trace of the 0.9a+Debian version. Because I had replaced the original program with my own work, that made me an "original author" of dialog, and allowed me to relicense it. __________________________________________________________________ Dialog's ChangeLog * [40]the changelog in html form * [41]CHANGES (flat-text changelog) dialog has (at the end of 2012) 99 options shown in its usage message. Of those, 29 set a box (widget) type. CAPTION: Dialog widget-options Name Version --buildlist [42]1.2 2012/12/30 --calendar [43]0.9b 2001/04/15 --checklist 0.2 --dselect [44]1.1 2007/02/27 --editbox [45]1.1 2007/02/27 --form [46]1.0 2003/08/18 --fselect [47]1.1 2007/02/27 --gauge 0.5 --infobox 0.2 --inputbox 0.1 --inputmenu [48]1.0 2003/01/30 --menu 0.2 --mixedform [49]1.1 2007/02/27 --mixedgauge [50]1.1 2007/02/27 --msgbox 0.1 --passwordbox [51]0.9a 1999/12/25 --passwordform [52]1.0 2005/12/07 --pause [53]1.0 2004/12/19 --prgbox [54]1.1 2011/03/02 --programbox [55]1.1 2011/03/02 --progressbox [56]1.1 2006/01/19 --radiolist 0.4 --rangebox [57]1.2 2012/12/30 --tailbox 0.9a --tailboxbg 0.9a --textbox 0.2 --timebox [58]0.9b 2001/04/15 --treeview [59]1.2 2012/12/30 --yesno 0.1 The other visible options set common variables used by the widgets: CAPTION: Dialog common options Name Version --ascii-lines [60]1.1 2007/02/27 --and-widget 0.9a --aspect 0.9a --backtitle 0.4 --beep-after 0.9a --beep 0.9a --begin 0.9a --cancel-label [61]0.9a 2001/12/02 --clear 0.2 --colors [62]0.9b 2002/08/14 --column-separator [63]1.1 2008/07/27 --cr-wrap 0.9a --create-rc 0.4 --date-format [64]1.1 2010/01/19 --default-button [65]1.1 2012/07/03 --default-item [66]0.9a 2000/02/22 --defaultno [67]0.9a 1999/12/25 --exit-label [68]0.9b 2002/05/19 --extra-button [69]0.9b 2002/06/22 --extra-label [70]0.9b 2002/06/22 --help-button [71]0.9b 2002/03/09 --help-label [72]0.9b 2002/03/09 --help-status [73]0.9b 2003/11/26 --hfile [74]1.1 2011/06/30 --hline [75]1.1 2011/06/30 --ignore [76]0.9b 2001/10/14 --input-fd [77]0.9b 2003/11/26 --insecure [78]0.9b 2003/11/26 --item-help [79]0.9b 2000/10/08 --keep-tite [80]1.1 2007/02/27 --keep-window [81]0.9b 2003/11/26 --max-input [82]0.9a 2002/03/09 --no-cancel [83]0.9b 2000/12/12 --no-collapse [84]0.9b 2002/05/19 --no-items [85]1.2 20121230 --no-kill 0.9a --no-label [86]0.9a 2001/12/02 --no-lines [87]1.1 2007/02/27 --no-mouse [88]1.1 2011/01/18 --no-nl-expand [89]1.1 2011/06/30 --no-ok [90]1.1 2007/09/30 --no-shadow 0.9a --no-tags [91]1.2 20121230 --no-items [92]1.2 20121230 --nook [93]1.1 2007/09/30 --notags [94]1.2 20121230 --ok-label [95]0.9a 2001/12/02 --output-fd [96]0.9b 2002/08/14 --output-separator [97]1.1 2008/07/27 --print-maxsize 0.9a --print-size 0.9a --print-version 0.9a --quoted [98]1.1 2008/07/27 --scrollbar [99]1.1 2010/01/19 --separate-output 0.5 --separate-widget 0.9a --shadow 0.9a --single-quoted [100]0.9b 2004/06/06 --size-err 0.9a --sleep 0.9a --stderr [101]0.9a 2000/07/02 --stdout [102]0.9a 2000/07/02 --tab-correct 0.9a --tab-len 0.9a --time-format [103]1.1 2010/01/19 --timeout [104]0.9a 2002/03/09 --title 0.2 --trace [105]1.1 2007/02/27 --trim [106]0.9a 2001/10/14 --version [107]0.9a 2000/07/30 --visit-items [108]0.9b 2004/06/06 --yes-label [109]0.9b 2003/11/26 dialog maps some options into its own set. Some are dialog options which have been imitated in other programs; some are the reverse. CAPTION: Options mapped by dialog into its own names Name Version Mapped to Version --cancel-button [110]1.2 20121230 --cancel-label [111]0.9b 2001/12/02 --guage 0.6c --gauge [112]0.9a 2000/01/16 --no-button [113]1.2 20121230 --no-label [114]0.9b 2003/11/26 --nocancel [115]0.9a 2000/02/22 --no-cancel [116]0.9a 2000/12/12 --noitem [117]1.2 20121230 --no-items [118]1.2 2012/12/30 --notags [119]1.2 20121230 --no-tags [120]1.2 2012/12/30 --ok-button [121]1.2 20121230 --ok-label [122]0.9b 2001/12/02 --scrolltext [123]1.2 20121230 --scrollbar [124]1.1 2010/01/19 --separator [125]0.9b 2003/08/18 --output-separator [126]1.1 2008/07/27 --yes-button [127]1.2 20121230 --yes-label [128]0.9b 2003/11/26 Some of the hidden options are simply ignored: Name Version --allow-close [129]0.9a 2001/05/27 --auto-placement [130]0.9a 2001/05/27 --fb [131]0.9a 2000/02/22 --fixed-font [132]0.9a 2001/05/27 --fullbutton [133]0.9a 2000/02/22 --icon [134]0.9a 2001/05/27 --keep-colors [135]0.9a 2001/05/27 --no-close [136]0.9a 2001/05/27 --no-cr-wrap [137]0.9a 2001/05/27 --screen-center [138]0.9a 2001/05/27 --smooth [139]0.9a 2001/05/27 --topleft [140]1.2 2012/12/30 --under-mouse [141]0.9a 2001/05/27 --wmclass [142]0.9a 2001/05/27 dialog can be built in a variety of configurations, reducing its size. CAPTION: Dialog 1.2 program size by configuration Configure options Size Size with libraries --disable-extras 90801 2298513 --disable-extras --enable-whiptail 91217 2298929 --disable-extras --enable-whiptail --enable-nls --enable-widec --with-ncursesw 96257 2465100 default (all widgets) 171075 2378787 --enable-nls --enable-widec --with-ncursesw 175883 2544726 As I note in the manpage, the total program size should count the required libraries. This is particularly true in restricted environments such as an install disk. Here are installed sizes from Debian 5.0 (32-bit) and 6.0 (64-bit). I included both releases to provide a comparison with Xdialog. It is apparent that the installed size counting required libraries is always lowest for dialog, even when it has more than twice the functionality of the next smallest (whiptail). CAPTION: Sizes of related programs Program Size Size with libraries dialog 1.1-20080316-1 140552 1917378 dialog 1.1-20100428-1 164408 2407723 whiptail 0.52.2-11.3-lenny1 20816 2287319 whiptail 0.52.11-1 25032 3048481 xdialog 2.31-2 86976 4465172 zenity 2.22.1-2 59536 13164249 zenity 2.30.0-1 74400 14216563 kdialog (kdebase-bin) 4:3.5.9.dfsg.1-6+lenny1 77220 22675849 kdialog (kdebase-bin) 4:4.4.5-2 89944 37593148 Compatibility Debian (and derived distributions such as Ubuntu) are a special case for compatibility concerns because their installer uses terminal-based scripts extensively and there is some attempt to use either dialog or whiptail. Interestingly, the [143]popularity contest (in which I do not participate) seems to show dialog due to installation bias of Debian has half the popularity of whiptail. The two are not installed on an equal basis because dialog is "optional" while whiptail is "important". Here is an extract of the relevant information as I am documenting dialog 1.2: #Format # # is the package name; # is the number of people who installed this package; # is the number of people who use this package regularly; # is the number of people who installed, but don't use this package # regularly; # is the number of people who upgraded this package recently; # is the number of people whose entry didn't contain enough # information (atime and ctime were 0). #rank name inst vote old recent no-files (maintain er) 1791 kdebase-bin 11587 1878 6407 268 3034 (Debian Qt/kd e Maintainers) 12634 whiptail 129722 52877 68792 8017 36 (Alastair Mc kinstry) 16056 zenity 58831 15952 36121 6737 21 (Debian Gnome Maintainers) 24528 dialog 20677 3198 16421 1052 6 (Santiago Vil a) 129051 xdialog 305 40 265 0 0 (Not in sid) There is no separate package for kdialog (it is part of the kdebase-bin package). There are usable figures for the other programs. The count for zenity can be explained in part because that program is not really compatible with either dialog or whiptail. Thus, it is likely that there are scripts which cannot be used by other programs (reviewing the package dependencies makes this apparent: only one depends on either dialog or zenity). Older versions of dialog The issue of compatibility comes up occasionally. I do not intend to break old scripts. You may note in the change-log fixes for regressions. When merging Victor Stemens' changes, I spent time ironing out issues in text justification. A bigger issue is cross-compatibility with similar programs. Xdialog Xdialog's author paid attention to compatibility, making a good attempt at working with scripts that dialog would work with. He added many widgets, some of which are viable in a terminal enviroment. I have adapted the most useful of those. These threads give some insight on why Xdialog is no longer in Debian (because it was a victim of the successive incompatibilities of the GNOME libraries): * [144]Why no more Xdialog on squeeze? (Debian User Forums) * [145][SOLVED] Where is Xdialog? (Ubuntu Forums) As noted in the forums, the alternative is [146]zenity, but that is largely incompatible. whiptail One of the challenging aspects about making scripts compatible with whiptail is its documentation. Whiptail is a part of the newt package, which has the same problem. I have a collection of releases, which helps. Newt was initially released (0.25) in May 1998. It had a short tutorial on using the package, no detailed documentation. The source code is the documentation. Successive releases for the next couple of years added [147]undated items to its change-log, with version numbers increasing more rapidly than the package version. For instance, newt 0.50.8's changelog mentions 0.55 as the most recent version. There was no fixed maintainer for the package by Red Hat. However, comments in the newt.spec give some clues as to who was modifying it. It was imported into [148]git in 2006, from which detailed history can be gleaned. For instance: * development on newt started in early 1996. * whiptail's first commit was 1997-03-18 * newt's first public release was the following year, 1998-05-05. * before release, whiptail was named ndialog The situation in the Debian package is not much better. There has been a fixed set of maintainers, but their source history is ad hoc, unsystematic. Here are some dates and data for the Red Hat releases. The ".spec" file serves in place of a change-log. However, it lacks most of the information which I would expect to find in a package of this type. In particular, there is no summary of features added or changed for each release. CAPTION: Early Newt/Whiptail History Date Version Developer SLOC 1998-05-05 0.25 Erik Troan 6431 1998-08-19 0.30 Bill Nottingham 6410 2000-02-25 0.50.8 Bill Nottingham et al 8265 2000-08-22 0.50.17 Erik Troan 8567 2003-02-05 0.51.4 Matt Wilson 9418 2003-08-19 0.51.6 Michael K Johnson 9419 2003-01-04 0.52.0 Adrian Havill 9397 2003-10-13 0.52.4 Miroslav Lichvar 10377 2007-01-31 0.52.5 Miroslav Lichvar 10431 2007-03-02 0.52.6 Miroslav Lichvar 10490 2007-06-15 0.52.7 Miroslav Lichvar 10584 2008-01-23 0.52.8 Miroslav Lichvar 10603 2009-09-24 0.52.11 Miroslav Lichvar 10706 2011-12-02 0.52.14 Miroslav Lichvar 10972 The point in reviewing whiptail's history is to see when features were added which affect compatibility with dialog. Here is a table showing whiptail's command-line options, together with the corresponding dialog option, dates and related bug reports which motivate their respective changes. The dates for whiptail are from its git repository for commits; they are not release dates (and you may notice that Debian's updates were not rapidly applied upstream). CAPTION: Overview of Whiptail options Name Whiptail date Dialog date Same as Original date Whiptail changes Dialog changes --backtitle 1997/03/18 1994/06/11 --cancel-button 2007/01/31 2012/12/30 --cancel-label [149]2001/12/02 [150]Redhat #126768 / [151]Debian #242851 1.2 review --checklist 1997/03/18 1994/01/03 --clear 1997/03/18 1994/01/03 * --default-item 2006/08/25 2000/02/22 [152]Redhat #117473 / [153]Debian #49352 [154]Debian #49796 --defaultno 1997/04/14 1999/10/07 --fb 1997/03/18 2000/02/22 ignored maintainer hint --gauge 1997/03/18 1995/01/28 --infobox 1998/01/03 1994/01/03 --inputbox 1997/03/18 1993/12/17 --menu 1997/03/18 1994/01/03 --msgbox 1997/03/18 1993/12/17 --no-button 2007/01/31 2012/12/30 --no-label [155]2003/11/26 [156]Redhat #126768 / [157]Debian #242851 1.2 review --nocancel 1997/03/18 2000/02/22 maintainer hint --noitem 1997/03/18 2012/12/30 1.2 review --notags 2004/04/07 2012/12/30 [158]Redhat #117468 / [159]Debian #47597 1.2 review --ok-button 2007/01/31 2012/12/30 --ok-label [160]2001/12/02 [161]Redhat #126768 / [162]Debian #242851 1.2 review * --output-fd 2004/04/07 2002/08/14 [163]Redhat #117469 [164]Debian #153984 * --passwordbox 2006/08/25 1999/12/25 [165]Debian #45961 [166]Debian #45964 --radiolist 1997/03/18 1994/06/11 --scrolltext 1997/03/18 2012/12/30 --scrollbar [167]2010/01/19 1.2 review --separate-output 1997/03/18 1995/01/28 --textbox 2004/04/14 1994/01/03 [168]Redhat #117472 / Debian patch --title 1997/03/18 1994/01/03 --topleft 2006/10/12 2012/12/30 --begin 0 0 patch from Debian? 1.2 review --yes-button 2007/01/31 2012/12/30 --yes-label [169]2003/11/26 [170]Redhat #126768 / [171]Debian #242851 1.2 review --yesno 1997/03/18 1994/01/03 Early on, there was some discussion of making dialog compatible with the options recognized by whiptail. Santiago Vila (the Debian package maintainer for dialog) mentioned this, and I made improvements, e.g., in [172]2000/02/22. Joey Hess made a point of providing similar changes (such as the --passwordbox option) to improve both programs. At the time, I overlooked --noitem (perhaps because there was no documentation), and omitted --scrolltext because it was cosmetic only (there was no mouse support in newt). If there had been a bug report regarding those or other features of whiptail, I would have addressed it. However, there was none. Although whiptail is given a higher priority (important) in Debian than dialog (optional), some packagers either expressed a preference for dialog's additional functionality, or used the features which work with both. In Debian 6 for instance, I see these counts from /var/lib/dpkg/available: CAPTION: Debian package usage Depends Recommends Suggests whiptail 9 4 3 dialog 16 7 5 There appear to be two distinct uses of whiptail and newt: * Red Hat uses the newt shared library from python scripts. * Debian uses the whiptail command-line program in installers. Reflecting that difference, Debian has long maintained a large set of patches for whiptail. Compare the patch sizes listed below with the size of the newt package listed above. The Debian package's change-log states that it started a year before newt's first release, with newt 0.10; however it was first released with Debian 2.0 (after newt's 0.25 release). Here are some numbers (obtained by inspecting packages from archive.debian.org). By the way, the packages for Debian 4.0 and 5.0 were updated after the official release: CAPTION: Size of Debian diffs by release Release Date Version Diffstat Files Added Deleted Debian 2.0 1998-06-18 0.21-8 28 859 74 Debian 2.1 1998-12-11 0.25-3 25 883 47 Debian 2.2 2000-04-23 0.50-7 20 1106 39 Debian 3.0 2002-04-03 0.50-17 38 2117 165 Debian 3.1 2005-04-30 0.51.6 54 9037 0 Debian 4.0 2007-01-22 0.52-10 51 13605 0 Debian 5.0 2009-09-24 0.52.11.3 54 13721 0 Debian 6.0 2010-06-21 0.52.11-1 34 4185 0 The drop in size for Debian 6.0 is due to a resync with the Red Hat upstream in 2006. It takes a while for a change to propagate through Debian. The Debian 6.0 package has "only" 8 patches, the largest of which is 2160 lines added for bidi support. While whiptail had a --textbox option "early on", it was removed before version 0.25, in 1997-08-18. Debian's patches added that back. It was not until the 0.52.0 sync in 2006-09-19 that upstream whiptail had this option. That feature, by the way, never appeared in a bug report. Another feature which came into Red Hat's git without a bug report was the --topleft option (2006-10-12). In other cases, the Debian package maintainer sent changes to Red Hat as part of a bug report. * [173]Bug 117466 – Patch to provide documentation This provides a manpage. Upstream had none; Debian added this in early 1998, addressing Debian #16857. Debian continued adding features adapted from ongoing work in dialog or from Joey Hess's patches for both programs. * For instance, the patch submitted in this report includes these options: --default-item (see [174]0.9a 2000/02/22) --output-fd (see [175]0.9b 2002/08/14) --passwordbox (see [176]0.9a 1999/12/25) --separate-output (a feature from dialog 0.5 which was adapted by Debian in newt 0.21-4, 12 Feb 1998). Two of those (--output-fd and --passwordbox) are clearly the work of Joey Hess. One was adapted from my work. In each case, the manpage description is (except for changing "dialog" to "whiptail") identical. The two options implemented by Joey Hess provided manpage updates. The other two were copied from dialog. The early Debian package for newt noted above adapted a manpage from dialog. It describes the --gauge option. That text was copied from the manpage for dialog 0.6, but (noting that Marc Ewing's name was not in the manpage, rather it was in the README file) the Debian maintainers did not provide attribution for him either. The disclaimer at the end "based on" is too generous (to the Debian maintainer), since the work involved consisted of no more than removing the description of --create-rc and changing "dialog" to "whiptail" throughout. The whiptail manpage does not state this; it cites the Debian package maintainers as the developers and references dialog 0.3 as the starting point of the manpage. I reported the manpage issues as [177]Debian bug #406278 early in 2007. Debian's maintainer has ignored it for five years. Requests without a patch never made it, or get odd treatment: * [178]Bug 126766 – whiptail: please add timeout option (lost) * [179]Bug 126767 – whiptail: Please add the dialog 'form' box option (rejected) * [180]Bug 126768 – please allow way to change the text of the cancel button Implemented by the upstream maintainer a couple of years later, this provides the same functionality as the 2001/2003 changes in dialog—but using different option names. Some longstanding bugs were fixed upstream without any apparent help from the Debian maintainer: * [181]Bug 620083 – whiptail --gauge does not work as advertised I did not notice any of this until I started reviewing my 1.2 changes for compatibility with whiptail. After all, there were no relevant bug reports. My 1.2 changes were prompted by having done a set of fixes toward a new update, and happening to think about a list I had made in 2006 of interesting widgets from Xdialog and FreeBSD's fork to implement in dialog. Since I had implemented most of the FreeBSD parts, I realized that if I implemented the comparable parts of the Xdialog list I would be at my goal for 1.2. So I did that, and in studying the Xdialog documentation noticed the --notags option. That led me back to compare with whiptail, and finding the extra (and in the case of Red Hat #126768) redundant options to deal with. Incidentally, I was reminded while collecting this information of the reason why whiptail is the program used rather than dialog: It dates back to the ncurses licensing dispute in [182]May 1997. In a [183]connected thread on the Debian mailing list, Bruce Perens demonstrated his support for Eric Raymond by stating that Any new work I do will use slang rather than ncurses. In context, "new work" referred to the installer group. By the time I started maintaining dialog a year later, the matter had already been decided. That was not the last issue from that group; over the next few years (until sometime in 2000, probably after Raymond's final interaction with ncurses), they continued to demonstrate their support by misattributing my work to Eric Raymond (and others, depending on the work). Of course there were also people (and still are) who are fans of slang and newt, and will emphasize its advantages. Notwithstanding the fact that after a few years I did get John Davis to tone down the rhetoric and stick to measurable facts, his fans are unpersuaded. The (over-zealous) remarks from someone in the same group in 2006 prompted me to investigate just how much larger dialog was than whiptail. I was surprised to find that when counting the required libraries, whiptail was actually larger than dialog. Of course, I documented my findings in dialog's manpage. Some people do read [184]the manual, as noted in [185]Ubuntu #347913. I noticed this report during my 1.2 review, prompting me to update the whiptail compatibility options. The result of my 1.2 review is that scripts accepted by whiptail will also be accepted by dialog. Because the two programs differ in their support for word-wrapping and handling of escapes, there will be inevitably some differences in appearance. gdialog Zenity's documentation refers to gdialog. That was a fork of dialog 0.6c which was part of the gnome-utils package in 2002 (e.g., 2.0.2 2002/09/03), modified to use Gtk. Some parts did not work, e.g., --gauge. Its documentation was minimal (see [186]this). After a while, it was [187]dropped. zenity Zenity was first released early in 2003 (see [188]git). It was influenced by my work on dialog, as illustrated by its list of options. Those use the "interesting" options from Xdialog (calendar, file-selection). Comparing with the list of newer dialog options, you will see some borrowing. -h --about --auto-close --auto-kill --calendar --cancel-label --checklist --class --column --confirm-overwrite --date-format --day --directory --display --editable --entry --entry-text --error --file-filter --file-selection --filename --g-fatal-warnings --gtk-module --height --help --help-all --help-calendar --help-entry --help-error --help-file-selection --help-general --help-gtk --help-info --help-list --help-misc --help-notification --help-progress --help-question --help-scale --help-text-info --help-warning --hide-column --hide-header --hide-text --hide-value --info --list --listen --max-value --min-value --month --multiple --name --no-wrap --notification --ok-label --percentage --print-column --print-partial --progress --pulsate --question --radiolist --save --scale --screen --separator --step --sync --text --text-info --timeout --title --value --version --warning --width --window-icon --year However, there is no script provided with zenity to handle scripts which are newer than dialog 0.6c. kdialog Kdialog is less compatible with dialog than zenity. To illustrate the problem, here is the corresponding list of options: -- --attach --author --calendar --checklist --combobox --default --dontagain --error --getcolor --getexistingdirectory --geticon --getopenfilename --getopenurl --getsavefilename --getsaveurl --help --help-all --help-kde --help-qt --inputbox --license --menu --msgbox --multiple --passivepopup --password --print-winid --progressbar --radiolist --separate-output --slider --sorry --textbox --textinputbox --title --warningcontinuecancel --warningyesno --warningyesnocancel --yesno --yesnocancel -v, However (see [189]git) it is an inactive project. Documentation * [190]dialog program ([191]pdf) ([192]postscript) ([193]plain text) * [194]dialog library ([195]pdf) ([196]postscript) ([197]plain text) __________________________________________________________________ Download * [198]The source (ftp) * [199]The source (http) Screenshot An example using UTF-8: [200]An example using UTF-8 [201]This page has more examples. Related Links Packages * [202]OSWatershed.org * RPM finder: [203]dialog * [204]Debian * [205]FreeBSD ports Programs * [206]Xdialog * [207]dialog 0.7 * FreeBSD fork of dialog 0.4 + [208](program) + [209](library) * [210]Zenity (maintenance page) Other * Perl + [211]UI-Dialog + [212]User Interfaces in Perl San Diego Perl Mongers * Ruby + [213]Ruby Dialog Interface * Python + [214]Python Dialog Website * Bug reports + [215]Current and archived Debian bug reports for dialog + [216]Current and archived Debian bug reports for whiptail + [217]Current and archived Debian bug reports for zenity * Tutorials + [218]Dialog: An Introductory Tutorial by Jeff Tranter (Sep 01, 1994) + [219]Designing Simple front ends with dialog/Xdialog LG #101 by Sunil Thomas Thonikuzhiyil (April 2004) + [220]Shell Scripting with KDE Dialogs Bugs You should report bugs either to [221]me. or to the ncurses mailing list [222]bug-ncurses@gnu.org.