Primeiro, você não deve definir TERM=xterm-256color
no console do Linux, a maioria dos aplicativos não funcionará corretamente. Ficar com TERM=linux
.
Segundo, vamos esclarecer que alterar o valor de TERM
não altera as seqüências de escape geradas pelo pressionamento de tecla. O emulador gráfico, ou o kernel do Linux, caso você esteja usando o console, não pode ver se você altera a variável de ambiente no processo que está executando "dentro" do emulador de terminal; na verdade, pode haver vários processos em execução nesse terminal (sua entrada padrão conectada) com diferentes variáveis TERM
. A alteração de TERM
pode mudar na forma como um aplicativo reage nesses pressionamentos de tecla.
Existe alguma maneira de os terminais virtuais tty reconhecerem os mesmos atalhos e combinações de teclas que o terminal X faz?
Emuladores de terminal não reconhecem essas sequências que você está falando. Eles os emitem, e os aplicativos baseados em terminal (editores de texto, gerenciadores de arquivos, etc.) reconhecem-nos.
Execute infocmp
(ou infocmp [terminal-name]
, como, por exemplo, infocmp linux
) para listar os recursos / recursos de um terminal, incluindo as seqüências geradas pelas teclas de função. Procure por kf2
para F2 e kf14
para Shift + F2 . Geralmente Shift deve resultar em um deslocamento de 12.
Tanto quanto me lembro de alguns anos atrás, alguns dos mapas de teclado no console do Linux têm um deslocamento de 10, e essa discrepância pode causar todo tipo de mau comportamento em vários aplicativos.
Você não mencionou como (por exemplo, em qual aplicativo) está tentando capturar esses pressionamentos de tecla. Se você está configurando um software existente que requer sequências concretas, você provavelmente terá que ensinar (pelo menos) dois valores diferentes, um para xterm
e amigos, e um para linux
.
Se você estiver desenvolvendo seu próprio aplicativo e não quiser ter sequências de escape codificadas ou especificadas em um arquivo de configuração, você provavelmente deve confiar em libtinfo
para ler os recursos do terminfo ou usar um desenho de tela e um teclado de nível superior biblioteca de manipulação, como ncurses
ou slang
.