func List(title, text string, items []string) (string, bool, error) {
	cmd, err := cmdPath()
	if err != nil {
		return "", false, err
	}
	opts := []string{"--list", "--title", title, "--text", text, "--column=", "--hide-header"}
	args := append(opts, items...)
	o, err := exec.Command(cmd, args...).Output()
	if err != nil {
		if exitError, ok := err.(*exec.ExitError); ok {
			ws := exitError.Sys().(syscall.WaitStatus)
			return "", ws.ExitStatus() == 0, nil
		}
	}
	out := strings.TrimSpace(string(o))
	return out, true, err
}
List displays a list dialog, returning the selected value and a bool for success.
package dlgs
import (
	"os/exec"
	"strings"
	"syscall"
)