Rolagem com a roda do mouse dentro da tela

2

Eu uso screen com uma linha de status simples. Se eu quiser rolar, eu uso Ctrl + um ESC para entrar no modo de cópia e então posso rolar usando o teclado. Isso funciona muito bem também com vários buffers e splits.

Minha pergunta é: Como posso configurar a tela para usar a roda do mouse para rolar?

Nota 1: Usando a roda do mouse, posso rolar dentro do meu terminal, mas isso não funciona com vários buffers e divisões.

Observação 2: A termcapinfo xterm* ti@:te@ solução não ajuda, pois usa a rolagem do terminal. Isso não é compatível com a linha de status, vários buffers e splits.

A melhor solução seria IMHO:

  • Na roda do mouse no modo de cópia usada para rolagem, como as matrizes de teclado fazem.
  • Se a tela no modo normal e o evento de rolagem do mouse "rolar para cima" chegar, a tela alterna para o modo de cópia e processa o evento
  • Se a tela no modo de cópia e o evento de rolagem do mouse "rolagem para baixo" entrar, chegar na parte inferior, a tela sair do modo de cópia
  • A linha de status da tela é sempre visível e atualizada (já funciona, se a rolagem for com o teclado)
por Boris Brodski 01.07.2016 / 13:18

1 resposta

1

screen não sabe sobre a roda-mouse. Só conhece chaves (incluindo seqüências de escape) enviadas pelo terminal e seu teclado:

  • screen conhece os cliques do mouse (seu código-fonte menciona apenas "clique com o botão esquerdo do mouse"). Você pode ler o código-fonte ( display.c ) para ver que não faz mais do que isso ( isso, em particular , é o único lugar onde screen decodifica eventos de mouse).
  • O protocolo do mouse xterm enviará os botões 4 e 5 para indicar o mouse da roda. screen não sabe nada sobre isso; aplicações em execução no terminal podem lidar com isso especialmente.
  • Alguns terminais enviarão chaves de cursor para imitar a rolagem para cima / para baixo quando na tela alternativa. screen (como esperado) passa isso para o aplicativo também.
por 01.07.2016 / 14:00

Tags