Zenity dialogs for Golang, Windows, macOS
Go to file
2021-07-12 18:13:08 +01:00
cmd/zenity Fix empty ListMultiple. 2021-07-08 18:56:28 +01:00
internal/zenutil Fix empty ListMultiple. 2021-07-08 18:56:28 +01:00
.gitignore WIP: zenity command (macos). 2020-01-07 00:57:50 +00:00
color_darwin.go Canceled error. 2021-04-29 16:05:28 +01:00
color_test.go Scripted user tests. 2021-07-08 17:15:12 +01:00
color_unix.go Sidestep go install issue (Linux). 2021-05-06 00:38:49 +01:00
color_windows.go WIP: progress (windows). 2021-04-28 01:32:23 +01:00
color.go Canceled error. 2021-04-29 16:05:28 +01:00
entry_darwin.go Canceled error. 2021-04-29 16:05:28 +01:00
entry_test.go Scripted user tests. 2021-07-08 17:15:12 +01:00
entry_unix.go Sidestep go install issue (Linux). 2021-05-06 00:38:49 +01:00
entry_windows.go Progress. 2021-05-04 12:48:19 +01:00
entry.go Canceled error. 2021-04-29 16:05:28 +01:00
file_darwin.go Canceled error. 2021-04-29 16:05:28 +01:00
file_filter_test.go Scripted user tests. 2021-07-08 17:15:12 +01:00
file_test.go Improve CI testing. 2021-07-07 01:01:22 +01:00
file_unix.go Sidestep go install issue (Linux). 2021-05-06 00:38:49 +01:00
file_util_test.go Scripted user tests. 2021-07-08 17:15:12 +01:00
file_windows.go Fix filename option (windows). 2021-05-07 14:02:44 +01:00
file.go Improve test coverage. 2021-06-21 14:25:53 +01:00
go.mod macOS fat binaries. 2021-06-07 14:06:00 +01:00
go.sum macOS fat binaries. 2021-06-07 14:06:00 +01:00
LICENSE Initial commit 2019-12-10 10:51:21 +00:00
list_darwin.go Progress. 2021-05-04 12:48:19 +01:00
list_test.go Scripted user tests. 2021-07-08 17:15:12 +01:00
list_unix.go Sidestep go install issue (Linux). 2021-05-06 00:38:49 +01:00
list_windows.go Progress. 2021-05-04 12:48:19 +01:00
list.go Canceled error. 2021-04-29 16:05:28 +01:00
main_test.go Rename. 2021-07-07 01:31:09 +01:00
msg_darwin.go Canceled error. 2021-04-29 16:05:28 +01:00
msg_test.go Scripted user tests. 2021-07-12 14:27:53 +01:00
msg_unix.go Sidestep go install issue (Linux). 2021-05-06 00:38:49 +01:00
msg_windows.go Canceled error. 2021-04-29 16:05:28 +01:00
msg.go Canceled error. 2021-04-29 16:05:28 +01:00
notify_darwin.go Refactor. 2021-03-04 12:42:30 +00:00
notify_test.go Improve CI testing. 2021-07-07 01:01:22 +01:00
notify_unix.go Sidestep go install issue (Linux). 2021-05-06 00:38:49 +01:00
notify_windows.go Refactor, docs. 2021-03-10 14:49:09 +00:00
notify.go Refactor. 2021-03-04 12:42:30 +00:00
progress_darwin.go Progress. 2021-05-04 12:48:19 +01:00
progress_test.go Improve CI testing. 2021-07-07 01:01:22 +01:00
progress_unix.go Sidestep go install issue (Linux). 2021-05-06 00:38:49 +01:00
progress_windows.go Fix progress races (windows). 2021-07-12 18:13:08 +01:00
progress.go Progress. 2021-05-04 12:48:19 +01:00
pwd_stub.go Unsupported options. 2021-04-29 16:55:44 +01:00
pwd_test.go Scripted user tests. 2021-07-12 14:27:53 +01:00
pwd_unix.go Sidestep go install issue (Linux). 2021-05-06 00:38:49 +01:00
pwd.go Canceled error. 2021-04-29 16:05:28 +01:00
README.md Scripted user tests. 2021-07-12 14:27:53 +01:00
util_darwin.go WIP: progress (unix). 2021-04-27 14:09:30 +01:00
util_unix_test.go Fix empty ListMultiple. 2021-07-08 18:56:28 +01:00
util_unix.go Fix empty ListMultiple. 2021-07-08 18:56:28 +01:00
util_windows.go Progress. 2021-05-04 12:48:19 +01:00
zenity_test.go Scripted user tests. 2021-07-08 17:15:12 +01:00
zenity.go Icon options. 2021-05-11 15:07:41 +01:00

Zenity dialogs for Golang, Windows and macOS

Go Reference Go Report Go Cover

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:

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

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
  • on macOS:
    • only dependency is osascript
  • on other Unixes:
    • wraps either one of zenity, qarma, matedialog