É um problema com a implementação dialog
do link .
Na inicialização, ele faz um smcup
+ rmcup
, acredito, porque a rotina de inicialização ncurses
faz com que smcup
e dialog
cancelem isso.
Então, se você fizer o seu smcup
de antemão, ele não terá efeito, porque o rmcup
irá cancelá-lo.
Uma solução é adicionar a opção --keep-tite
, que diz para não fazer isso, então dialog
fará o smcup
no início e rmcup
na saída como outros ncurses
aplicativos se o terminal suportar isso.
A partir dos seus comentários, parece que você tem outro problema: você está em um terminal que não oferece suporte a uma tela alternativa, então, faça o que fizer, não será possível usar a tela alternativa, pois ela não existe.
O que você pode fazer é usar um terminal diferente que tenha uma tela alternativa como o putty ou os Unix do Cygwin no X Server do Cygwin. Ou execute um terminal X no servidor remoto para se conectar e exibir no seu X Server. Ou execute um emulador de terminal baseado em terminal dentro do seu terminal que suporte uma tela alternativa como o GNUscreen
.