Atalhos de tecla de função em PuTTY / MinTTY e Tmux / Byobu

18

Como espreitador de longa data no Stack Exchange, encontrei respostas para a maioria dos meus problemas sem precisar nem mesmo fazer uma conta. Mas hoje estou completamente perplexo com esse problema, então estou buscando ajuda.

Eu descobri recentemente o Byobu, um front-end para o Tmux que usa as teclas Fn para tarefas comuns. É uma verdadeira bênção para multitarefa através do SSH para um servidor Linux remoto a partir do PC com Windows que eu tenho que usar no trabalho.

Atualmente, estou usando o gnome-terminal através de um túnel SSH porque o PuTTY e o MinTTY (o terminal padrão do Cygwin) parecem enviar os códigos de tecla incorretos para as teclas de função.

Fiquei me perguntando se havia uma maneira de re-mapear certos códigos de escape para que pelo menos um dos meus terminais baseados em Windows funcione corretamente com o Tmux. (Eu acho que eu poderia aprender as combinações de teclas Ctrl + b / Ctrl + a, mas executar uma combinação de teclas seguida por outra tecla não me parece realmente ergonômica.)

No PuTTY, configurar Terminal> Teclado> "As teclas de função e teclado" em "XtermR6" parece enviar normalmente as seqüências de escape corretas para as teclas Fn, mas os modificadores Shift e Ctrl estão quebrados. Posso usar o vim para descobrir quais códigos estão sendo enviados por cada terminal. Enquanto isso, acho que devo ter procurado a combinação que o tmux está procurando no código-fonte , mas não tenho certeza:

Key              Tmux Expects    Gnome-Terminal   PuTTY    MinTTY
Normal F3:                       ^[0R             ^[0R     ^[0R
Ctrl+F3          "\033[13^"      ^[01;5R          ^[0R     ^[[1;5R
Shift+F3         "\033[13$"      ^[01;2R          ^[[25~   ^[[1;2R
Ctrl+Shift+F3    "\033[13@"      ^[01;6R          ^[[25~   ^[[1;6R

Até agora, o MinTTY parece o melhor candidato, mas isso me dá um problema completamente diferente, no qual o byobu ignora 95% das teclas pressionadas Fn, passando-as diretamente para o aplicativo cliente. Eu posso executar cat -v e enviar spam à tecla F2 (nova janela), e ela imprimirá "^ [0Q" quatro ou cinco vezes antes de aparecer uma nova janela de repente.

Se alguém tiver um conselho, seria bem-vindo. A maioria das coisas que encontrei na internet dizia alterar o tipo de terminal, mas tentei literalmente todas as combinações que cada um dos dois programas oferece.

Obrigado!

Karl Johnson
fonte
3
As sequências que você lista para o tmux são apenas as sequências de chaves modificadas no estilo rxvt que ele reconhece. O tmux também reconhece a sequência (não modificada) especificada pela entrada terminfo do TERM (por exemplo, kf3de qualquer TERM que você esteja usando ao conectar ao tmux ), bem como as seqüências de teclas modificadas no estilo xtermxterm-keys.c . Portanto, as seqüências que você relata do Gnome-Terminal e MinTTY (embora os escape + zeros em suas sequências devam ser escape + letter-ohs (também conhecido como SS3) devem ser reconhecidas pelo tmux , mas só serão transmitidas se você tiver o xterm-keysopção ativada
Chris Johnsen

Respostas:

1

Eu tive um problema semelhante com o PuTTY e a tela (não consegui usar o Ctrlmodificador). A solução que encontrei foi o KiTTY - o fork do PuTTY, que é melhor mantido (última atualização a partir de 02/06/2015 às 22:02). Meu problema com a Ctrlchave se foi.

Por padrão, o Kitty usa as teclas Fn para seus próprios atalhos, mas você pode configurá-lo de outra maneira , para que as teclas Fn sejam enviadas ao seu aplicativo.

hooke
fonte
0

Eu mesmo uso BYOBU da mesma maneira. Atualmente, uso o cygwin atualmente, pois F2,3,4 e F6 funcionam para mim e esses são os únicos que realmente me preocupam. No entanto, quando eu estava usando massa de vidraceiro, obtive mais sucesso com a configuração 'Teclas de função e teclado' configurada para emular o VT100 +

smokes2345
fonte