Acontece que a versão do diálogo fornecido pelo meu gerenciador de pacotes estava fora da data. Compilados a partir aqui e funciona como esperado.
De acordo com a documentação aqui :
You can override or add to key bindings in dialog by adding to the configuration file. Dialog's bindkey command maps single keys to its internal coding.
bindkey widget curses_key dialog_key
The widget name can be "" (all widgets), or specific widgets such as textbox. Specific widget bindings override the "" bindings. User-defined bindings override the built-in bindings. The curses_key can be any of the names derived from curses.h, e.g., "HELP" from "KEY_HELP". Dialog also recognizes ANSI control characters such as "^A", "^?", as well as C1-controls such as "~A" and "~?". Finally, it allows any single character to be escaped with a backslash.
Dialog's internal keycode names correspond to the DLG_KEYS_ENUM type in dlg_keys.h, e.g., "HELP" from "DLGK_HELP".
Então eu fiz o seguinte:
dialog --create-rc dialogrc
export DIALOGRC=/home/MyUser/dialogrc
E então eu adicionei isso na parte inferior do meu dialogrc:
bindkey * \r ITEM_NEXT
bindkey * \w FIELD_NEXT
bindkey * \e GRID_DOWN
Eu fiz todos aqueles como não tenho certeza qual deles eu quero. Eu começo meu diálogo assim:
dialog --clear --backtitle "Test" --menu "key test" 15 50 4 Option1 "Option1" Option2 "Option2" Option3 "Option3"
Eu sei que está lendo meu arquivo de discagem enquanto as cores mudam. No entanto, as teclas w, e e r não fazem nada. Eu quero ser capaz de mover para cima e para baixo entre os itens do menu pressionando uma tecla diferente da seta para cima ou para baixo.
Como posso fazer isso?
Acontece que a versão do diálogo fornecido pelo meu gerenciador de pacotes estava fora da data. Compilados a partir aqui e funciona como esperado.