Este comando deve funcionar:
termcapinfo * "" "ti=\EP\E[?7787l\E\\E[?1049h:te=\EP\E[?7787h\E\\E[?1049l"
(Substituir * por um nome mais específico para o seu tipo de terminal seria ainda melhor, mas eu não sei qual TERM value é definido por mintty.)
Diferenças importantes da sua versão:
-
O segundo e terceiro parâmetros do comando
termcapinfodevem conter termcap define (name=value) separados por:, não apenas uma seqüência de escape simples. -
A sequência de escape
^[Pdeve ser terminada por^[\, caso contrário, uma saída muito maior vai para o terminal diretamente sem o processamento adequado pela Tela (há alguma salvaguarda para evitar bloquear completamente a Tela se a sequência de terminação é esquecido, mas a exibição ainda será confusa). -
Você deve alterar
tiete, para que sair deless(ou qualquer outro programa em tela cheia) restaure o estado anterior corretamente.
Claro, se você invocar less com a opção -X , a roda do mouse não funcionará corretamente, porque com esta opção less não envia as sequências ti e te para o terminal. Lembre-se de que essa opção pode ser especificada não diretamente na linha de comandos less , mas também através da variável de ambiente LESS .
No entanto, se less for compilado para usar terminfo em vez de termcap , o terceiro parâmetro do comando termcapinfo não alterará o comportamento de less , pois ele influencia apenas o conteúdo da% variável de ambienteTERMCAP exportada por screen para seus subprocessos, e o conteúdo do banco de dados terminfo não pode ser alterado dinamicamente. Nesse caso, você precisará usar utilitários como infocmp e tic para criar uma entrada de origem terminfo que contenha smcup e rmcup valores com suas modificações e, em seguida, compile a entrada para o formato binário; então use term <your-entry-name> em .screenrc para usar esta entrada.