Não acredito que seja possível que isso funcione - da mesma maneira que essa abordagem para rolagem não funcionará em aplicativos como vim
/ nano
.
É possível que os cliques do mouse sejam passados para os aplicativos em execução em um terminal, mas essa é uma extensão do terminal que você está usando ... como você afirmou, também é possível para alguns emuladores de terminal para transmitir eventos de roda do mouse, mas o aplicativo também deve suportar tais eventos.
Não é imediatamente possível porque os aplicativos estão movendo o cursor para coordenadas absolutas no terminal e desenhando sua saída. Esta é uma extensão - terminais antigos só podem imprimir novas informações na parte inferior da tela (ou papel ... xterm
e amigos são descendentes diretos de teletipos ). Como a tecnologia progrediu, foram introduzidos recursos como mover o cursor pela tela. Agora usamos " Emuladores de Terminal " (é o que é o xterm
) em vez de " Terminais físicos".
Quando você usa Shift + PgUp / PgDn ou arraste a barra de rolagem, você está rolando de volta através do do emulador de terminal buffer de rolagem "- conte-se com sorte, existe tal coisa!
À medida que novas linhas são produzidas na parte inferior, as linhas antigas são empurradas para fora da parte superior da tela e, em seguida, são disponibilizadas pela revisão do buffer de rolagem do terminal. Isso é estático e não muda ( imutável ).
Não faz sentido tentar rever o buffer de rolagem e observar corretamente os aplicativos se redesenharem novamente.
Não esqueça que o buffer do terminal e o aplicativo são duas coisas muito diferentes!
Em tmux
você pode usar Ctrl + B e então PgUp / PgDn para revisar a rolagem de um painel buffer (lembre-se, tmux
é efetivamente um emulador de terminal rodando dentro de um emulador de terminal). Neste ponto, tmux
irá " congelar " esse painel, e você poderá rolar para cima / para baixo e pesquisar para trás / para frente usando ?
e /
(o mesmo que vim
e less
).
Pressione Retornar ou Ctrl + C para retornar à parte inferior e interagir novamente com o aplicativo / shell.