Zenity dialogs for Golang, Windows, macOS Fork of https://github.com/ncruces/zenity
Find a file
2022-03-23 14:37:41 +00:00
.github/workflows Create go.yml 2021-07-28 15:00:38 +01:00
cmd/zenity Workaround #17. 2021-08-14 03:08:15 +01:00
internal/zenutil WSL test improvements. 2021-07-29 16:20:50 +01:00
.gitignore WIP: zenity command (macos). 2020-01-07 00:57:50 +00:00
color.go Canceled error. 2021-04-29 16:05:28 +01:00
color_darwin.go Canceled error. 2021-04-29 16:05:28 +01:00
color_test.go WSL test improvements. 2021-07-29 16:20:50 +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
entry.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 WSL test improvements. 2021-07-29 16:20:50 +01:00
entry_unix.go Sidestep go install issue (Linux). 2021-05-06 00:38:49 +01:00
entry_windows.go Avoid entry closure in syscall.NewCallback, #20. 2022-03-23 14:37:41 +00:00
file.go Improve test coverage. 2021-06-21 14:25:53 +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 WSL test improvements. 2021-07-29 16:20:50 +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 Unsafe rules. 2021-09-15 13:54:35 +01:00
go.mod Use NewLazySystemDLL (windows). 2021-09-10 01:32:34 +01:00
go.sum Use NewLazySystemDLL (windows). 2021-09-10 01:32:34 +01:00
LICENSE Initial commit 2019-12-10 10:51:21 +00:00
list.go Canceled error. 2021-04-29 16:05:28 +01:00
list_darwin.go Progress. 2021-05-04 12:48:19 +01:00
list_test.go WSL test improvements. 2021-07-29 16:20:50 +01:00
list_unix.go Sidestep go install issue (Linux). 2021-05-06 00:38:49 +01:00
list_windows.go Renames. 2022-03-23 13:52:52 +00:00
main_test.go WSL test improvements. 2021-07-29 16:20:50 +01:00
msg.go Canceled error. 2021-04-29 16:05:28 +01:00
msg_darwin.go Canceled error. 2021-04-29 16:05:28 +01:00
msg_test.go Avoid closures in syscall.NewCallback, #20. 2021-09-13 13:17:15 +01:00
msg_unix.go Sidestep go install issue (Linux). 2021-05-06 00:38:49 +01:00
msg_windows.go Unsafe rules. 2021-09-15 13:54:35 +01:00
notify.go Refactor. 2021-03-04 12:42:30 +00: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 Workaround #17. 2021-08-14 03:08:15 +01:00
progress.go Progress. 2021-05-04 12:48:19 +01: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 Renames. 2022-03-23 13:52:52 +00:00
pwd.go Test improvements. 2021-07-16 03:01:00 +01:00
pwd_stub.go Unsupported options. 2021-04-29 16:55:44 +01:00
pwd_test.go WSL test improvements. 2021-07-29 16:20:50 +01:00
pwd_unix.go WSL test improvements. 2021-07-29 16:20:50 +01:00
README.md Update README.md 2021-07-23 12:17:43 +01:00
util_darwin.go WIP: progress (unix). 2021-04-27 14:09:30 +01:00
util_unix.go Fix empty ListMultiple. 2021-07-08 18:56:28 +01:00
util_unix_test.go Fix empty ListMultiple. 2021-07-08 18:56:28 +01:00
util_windows.go Renames. 2022-03-23 13:52:52 +00:00
zenity.go Icon options. 2021-05-11 15:07:41 +01:00
zenity_test.go Test improvements. 2021-07-16 03:01:00 +01:00

Zenity dialogs for Golang, Windows and macOS

Go Reference Go Report Go Cover Mentioned in Awesome Go

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