Como corrijo esse comportamento estranho com o ssh, gnome terminal e tela gnu, onde as teclas de função F1 a F4 não são aceitas?

3

Aqui está o que estou tentando fazer:

  • terminal Gnome aberto
  • é iniciado com o prompt de comando
  • ssh no trabalho via VPN
  • tela de lançamento
  • crie duas janelas de tela
  • tente usar F3 e F4 como "prev" e "next" sem sorte.
  • tente usar F6 e F7 como "prev" e "next" funciona bem.

Aqui está o meu .screenrc

  hardstatus on
  hardstatus alwayslastline
  hardstatus string "%{.bW}%-w%{.rW}%n %t%{-}%+w %=%{..G} %H %{..Y} %m/%d %C%a "
  defscrollback 5000
  startup_message off

  #bind uppercas x to remove region
  bind X remove
  bind ^X lockscreen

  # Bind F3 and F4 (NOT F1 and F2) to previous and next screen window
  bindkey -k k3 prev
  bindkey -k k4 next

  # Bind F5 to switch to next focus
  bindkey -k k5 focus

  bindkey -k k6 prev
  bindkey -k k7 next

  #split window
  bindkey -k k8 split
  bindkey -k k9 remove

O que é estranho são os seguintes trabalhos:

Trabalhos 1:

  • Fazer isso por massa funciona bem

Obras 2:

  • usando exatamente o mesmo. screenrc funciona bem se eu estiver na minha máquina local

Não funciona:

  • usar o lxterminal tem o mesmo problema

Meus pensamentos são de que o ssh pode estar causando isso, mas não tenho certeza.

EDITAR:

Aqui estão as saídas de alguns comandos relacionados ao terminal:

Máquina local:

$ echo $TERM
xterm

$ infocmp -1 | grep kf.=
    kf1=\EOP,
    kf2=\EOQ,
    kf3=\EOR,
    kf4=\EOS,
    kf5=\E[15~,
    kf6=\E[17~,
    kf7=\E[18~,
    kf8=\E[19~,
    kf9=\E[20~,

Máquina de trabalho:

$ echo $TERM
xterm

$ infocmp -1 | grep kf.=
    kf1=\EOP,
    kf2=\EOQ,
    kf3=\EOR,
    kf4=\EOS,
    kf5=\E[15~,
    kf6=\E[17~,
    kf7=\E[18~,
    kf8=\E[19~,
    kf9=\E[20~,

Work Machine usando a tela:

$ echo $TERM
screen

$ infocmp -1 | grep kf.=
        kf1=\EOP,
        kf2=\EOQ,
        kf3=\EOR,
        kf4=\EOS,
        kf5=\E[15~,
        kf6=\E[17~,
        kf7=\E[18~,
        kf8=\E[19~,
        kf9=\E[20~,
    
por alexpotato 13.03.2014 / 14:15

1 resposta

2

Eu acho que sei o que é.

xterm usado para enviar sequências de escape diferentes para as teclas F1 a F4.

Da documentação de xterm :

Older versions of xterm implement different escape sequences for F1 through F4. These can be activated by setting the oldXtermFKeys resource. However, since they do not correspond to any hardware termi- nal, they have been deprecated. (The DEC VT220 reserves F1 through F5 for local functions such as Setup).

tela usada (e você tem versões bastante antigas, embora nós o culpássemos, pois os mais novos não são lançamentos oficiais) para vir com o padrão /etc/screenrc com:

termcapinfo xterm 'k1=\E[11~:k2=\E[12~:k3=\E[13~:k4=\E[14~'

É isso que diz screen que F1 - > F4 são, na verdade, o que costumavam ser nos xterms antigos. Você deve comentar essa linha no seu /etc/screenrc , de modo que screen a tire do banco de dados terminfo / termcap conforme o esperado.

    
por 13.03.2014 / 18:48