code: func GetSelection(ctx context.Context, prompt, usage string, choices []string) (string, int) {
  	if tw := os.Getenv("GOPASS_CUI_TERMWIZ"); tw != "" || runtime.GOOS == "openbsd" {
  		return termwiz.GetSelection(ctx, prompt, usage, choices)
  	}
  	if ctxutil.IsAlwaysYes(ctx) || !ctxutil.IsInteractive(ctx) {
  		return "impossible", 0
  	}
  	g, err := gocui.NewGui(gocui.OutputNormal)
  	if err != nil {
  		panic(err)
  	}
  	defer g.Close()
  
  	g.InputEsc = true
  	g.Mouse = false
  	g.Cursor = false
  	if runtime.GOOS == "windows" {
  		g.ASCII = true
  	}
  
  	s := selection{
  		prompt:    prompt,
  		usage:     usage,
  		choices:   choices,
  		action:    "",
  		selection: 0,
  	}
  
  	g.SetManagerFunc(s.layout)
  
  	if err := s.keybindings(g); err != nil {
  		panic(err)
  	}
  
  	if err := g.MainLoop(); err != nil {
  		if err != gocui.ErrQuit {
  			return "aborted", s.selection
  		}
  	}
  	return s.action, s.selection
  }
docs: // GetSelection show a navigateable multiple-choice list to the user
  // and returns the selected entry along with the action