2.9 KiB
2.9 KiB
Zenity dialogs for Golang, Windows and macOS
This repo includes both a cross-platform Go package providing
Zenity-like dialogs
(simple dialogs that interact graphically with the user),
as well as a “port” of the zenity
command to both Windows and macOS based on that library.
Implemented dialogs:
- message (error, info, question, warning)
- text entry
- list (simple)
- password
- file selection
- color selection
- calendar
- progress
- notification
Behavior on Windows, macOS and other Unixes might differ slightly. Some of that is intended (reflecting platform differences), other bits are unfortunate limitations.
Installing
The Go package:
go get github.com/ncruces/zenity
The zenity
command on macOS/WSL using Homebrew 🍺:
brew install ncruces/tap/zenity
The zenity
command on Windows using Scoop 🍨:
scoop install https://ncruces.github.io/scoop/zenity.json
The zenity
command on macOS/Windows if you have Go:
go install github.com/ncruces/zenity/cmd/zenity@latest
Or download the latest release.
Why?
There are a bunch of other dialog packages for Go.
Why reinvent this particular wheel?
Benefits:
- no
cgo
(see benefits, mostly cross-compilation) - no main loop (or any other threading or initialization requirements)
- cancelation through
context
- on Windows:
- no additional dependencies
- Explorer shell not required
- works in Server Core
- Unicode support
- High DPI (no manifest required)
- Visual Styles (no manifest required)
- WSL/Cygwin/MSYS2 support
- no additional dependencies
- on macOS:
- only dependency is
osascript
- only dependency is
- on other Unixes:
- wraps either one of
zenity
,qarma
,matedialog
- wraps either one of