Zenity dialogs for Golang, Windows, macOS
Fork of https://github.com/ncruces/zenity
.github/workflows | ||
cmd/zenity | ||
internal/zenutil | ||
scripts | ||
.gitignore | ||
color.go | ||
color_darwin.go | ||
color_test.go | ||
color_unix.go | ||
color_windows.go | ||
const_windows.go | ||
date.go | ||
date_darwin.go | ||
date_test.go | ||
date_unix.go | ||
date_windows.go | ||
entry.go | ||
entry_darwin.go | ||
entry_test.go | ||
entry_unix.go | ||
entry_windows.go | ||
file.go | ||
file_darwin.go | ||
file_filter_test.go | ||
file_test.go | ||
file_unix.go | ||
file_util_test.go | ||
file_windows.go | ||
go.mod | ||
go.sum | ||
LICENSE | ||
list.go | ||
list_darwin.go | ||
list_test.go | ||
list_unix.go | ||
list_windows.go | ||
main_test.go | ||
msg.go | ||
msg_darwin.go | ||
msg_test.go | ||
msg_unix.go | ||
msg_windows.go | ||
notify.go | ||
notify_darwin.go | ||
notify_test.go | ||
notify_unix.go | ||
notify_windows.go | ||
progress.go | ||
progress_darwin.go | ||
progress_test.go | ||
progress_unix.go | ||
progress_windows.go | ||
pwd.go | ||
pwd_stub.go | ||
pwd_test.go | ||
pwd_unix.go | ||
README.md | ||
util_darwin.go | ||
util_unix.go | ||
util_unix_test.go | ||
util_windows.go | ||
zenity.go | ||
zenity_test.go |
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