Zenity

Last updated
Zenity
Original author Sun Microsystems
Developers Glynn Foster
Lucas Rocha
Stable release
4.1.90 [1]   OOjs UI icon edit-ltr-progressive.svg / 31 January 2025;10 months ago (31 January 2025)
Repository
Operating system Unix-like
License GNU Lesser General Public License
Website gitlab.gnome.org/GNOME/zenity

Zenity is a free software and cross-platform computer program that allows the execution of GTK dialog boxes in command-line and shell scripts.

Contents

Description

Like tools such as whiptail and dialog, Zenity allows easy creation of GUIs, [2] though it has fewer features than more complex GUI-creation tools. [3]

Other scripting languages such as Perl and Python can be used to construct full-scale GUI applications, but the zenity program enables a shell script to interact with a GUI user.... [The] user interface is not as refined as one that could be provided by a full-featured GUI application, but it is perfectly suitable for simple interactions.

Chris Tyler [4]

Cross-platform compatibility

As of 2012, Zenity is available for Linux, BSD and Windows. [5] A Zenity port to Mac OS X is available in MacPorts and Homebrew.

As of 2018, Zenity ports for Windows are available: zenity-windows (based on version 3.20.0) and winzenity (based on 3.8.0 / statically linked)

Zenity does not possess any built-in scripting capabilities and it must, therefore, rely on an interpreter for processing. One option is Python in combination with the PyZenity library. [6]

Examples

Python example

A Zenity infobox as displayed on GNOME 3 (Please press a button).png
fromPyZenityimportInfoMessagefromPyZenityimportQuestionfromPyZenityimportErrorMessagechoice=Question("Please press a button.")ifchoice:InfoMessage("You pressed Yes!")else:ErrorMessage("You pressed No!")

POSIX shell script example

#!/bin/shifzenity--question--text="Please press a button.";then zenity--info--text="You pressed Yes\!"else zenity--error--text="You pressed No\!"fi

Windows shell script example

@echo off zenity --question --ok-label="Yes" --cancel-label="No" --text="Please press a button."if%ERRORLEVEL%== 1 gotoerror zenity --info --text="You pressed Yes!"gotoend:error zenity --error --text="You pressed No!":end

See also

References

  1. "4.1.90 · Tags · GNOME / zenity · GitLab" . Retrieved 6 March 2025.
  2. Cartwright, Ryan (2009-01-30), "More fun with Zenity: shell script/GUI interactivity", Free Software Magazine , archived from the original on 2011-11-06, retrieved 2011-12-10
  3. Diehl, Mike (2008-05-12), "Make Your Scripts User Friendly with Zenity", LinuxJournal, archived from the original on 2011-11-26, retrieved 2011-12-10
  4. Tyler, Chris (2006), "Chapter 4. Basic System Management", Fedora Linux, O'Reilly Media, pp. 258–259, ISBN   978-0-596-52682-5, archived from the original on 2011-07-15, retrieved 2010-03-15
  5. Zenity for Windows, archived from the original on 2012-01-12, retrieved 2011-12-10
  6. Ramos, Brian (2011-04-20), PyZenity, archived from the original on 2013-10-07, retrieved 2012-11-15