Estou tentando usar htop
no tty1. No entanto, algumas das teclas de função não parecem funcionar normalmente. F1e F2não faça nada, e F3parece acionar a instalação (que normalmente deve ser acionada por F2). Além disso, F4e F5não funciona. Além disso, quando tento pressionar Escpara sair dessas telas, preciso pressioná-lo duas vezes.
Em um terminal normal ( terminator
), as teclas de função funcionam bem. No entanto, eu tenho que pressionar Escduas vezes aqui também, então talvez seja um arenque vermelho.
Como posso usar essas teclas de função em tty1?
EDITAR
Em tty1, se eu pressionar Ctrl+ ventão F1para F5, etc., recebo a seguinte saída:
^[[[A
^[[[B
^[[[C
^[[[D
^[[[E
Em terminator
, eu recebo
^[OP
^[OQ
^[OR
^[OS
^[[15~
As teclas de função acima disso são equivalentes (por exemplo, ^[[17~
para F6).
EDIT 2
Em resposta ao comentário de Stéphane Chazelas .
$TERM
é o mesmo em tty1 e no meu terminal de trabalho "normal". Éxterm-256color
.- Não estou usando screen ou tmux.
- Estou usando a
htop
1.0.3, embora minha primeira edição pareça apontar para um problema a montantehtop
.
"Corresponde ao
infocmp -L1 | grep key_f
que essas chaves enviam para você?
Não sei ao certo o que você quer dizer com "corresponder ao que essas chaves enviam para você", mas executei esse comando no meu terminal normal e no tty1, e a saída foi idêntica, como abaixo.
key_f1=\EOP,
key_f10=\E[21~,
key_f11=\E[23~,
key_f12=\E[24~,
key_f13=\E[1;2P,
key_f14=\E[1;2Q,
key_f15=\E[1;2R,
key_f16=\E[1;2S,
key_f17=\E[15;2~,
key_f18=\E[17;2~,
key_f19=\E[18;2~,
key_f2=\EOQ,
key_f20=\E[19;2~,
key_f21=\E[20;2~,
key_f22=\E[21;2~,
key_f23=\E[23;2~,
key_f24=\E[24;2~,
key_f25=\E[1;5P,
key_f26=\E[1;5Q,
key_f27=\E[1;5R,
key_f28=\E[1;5S,
key_f29=\E[15;5~,
key_f3=\EOR,
key_f30=\E[17;5~,
key_f31=\E[18;5~,
key_f32=\E[19;5~,
key_f33=\E[20;5~,
key_f34=\E[21;5~,
key_f35=\E[23;5~,
key_f36=\E[24;5~,
key_f37=\E[1;6P,
key_f38=\E[1;6Q,
key_f39=\E[1;6R,
key_f4=\EOS,
key_f40=\E[1;6S,
key_f41=\E[15;6~,
key_f42=\E[17;6~,
key_f43=\E[18;6~,
key_f44=\E[19;6~,
key_f45=\E[20;6~,
key_f46=\E[21;6~,
key_f47=\E[23;6~,
key_f48=\E[24;6~,
key_f49=\E[1;3P,
key_f5=\E[15~,
key_f50=\E[1;3Q,
key_f51=\E[1;3R,
key_f52=\E[1;3S,
key_f53=\E[15;3~,
key_f54=\E[17;3~,
key_f55=\E[18;3~,
key_f56=\E[19;3~,
key_f57=\E[20;3~,
key_f58=\E[21;3~,
key_f59=\E[23;3~,
key_f6=\E[17~,
key_f60=\E[24;3~,
key_f61=\E[1;4P,
key_f62=\E[1;4Q,
key_f63=\E[1;4R,
key_f7=\E[18~,
key_f8=\E[19~,
key_f9=\E[20~,
Ctrl+V
entãoF1
, e ver o que é inserido. Repita o procedimento paraF2
,F3
,F4
eF5
, em seguida, fazer o mesmo em terminator. Diga-nos o que vê.$TERM
lá? Você está usando screen ou tmux? Qual versão do htop? Corresponde aoinfocmp -L1 | grep key_f
que essas chaves enviam para você?Respostas:
Definindo:
você está dizendo
htop
(e todos os outros aplicativos de terminal visual que usam o banco de dados termcap ou terminfo) que seu terminal é um xterm de 256 cores e não um console virtual do Linux.htop
irá consultar o banco de dados terminfo para saber qual sequência de caracteres é enviada F1, F2... mas obterá essas paraxterm
.xterm
envia sequências diferentes do console virtual do Linux para as chaves que você pode verificar consultando o banco de dados terminfo manualmente,infocmp
por exemplo:Portanto
htop
, não reconhecerá\E[[A
como um F1, ele espera\EOP
por isso.Aqui, você não deseja atribuir valores a
$TERM
in~/.bashrc
.$TERM
deve ser definido pelos próprios emuladores de terminal (xterm
,terminator
) e pelosgetty
consoles virtuais do Linux (devemlinux
existir).Se você não estiver satisfeito com o valor que um emulador de terminal específico escolhe
$TERM
, essa é a configuração desses emuladores de terminal que você deve atualizar.fonte
xterm-256color
.$TERM
paraxterm-256color
, mas foi criada para usoESC[n~
teclas de função. Alterei as teclas de função para usarXTerm R6
nas configurações e está tudo funcionando agora.