Capítulo 5. Combinações de teclas do Terminal

Como o Konsole usa as combinações de teclas

Introdução

O Konsole usa arquivos *.keytab para traduzir as combinações de teclas em caracteres de controle e sequências de escape que são enviadas para o shell ou para os programas interativos (normalmente os programas que usam o buffer da tela alternativa, por exemplo vim, less, screen) executados a partir da linha de comando.

Os usuários poderão personalizar a configuração das combinações de teclas no Konsole com o Editor de Atalhos de Teclado. Poderá também configurar uma combinação de teclas para enviar um controle específico ou sequência de escape para o terminal.

Você poderá abrir o Editor de Atalhos de Teclado a partir do item de menu ConfiguraçõesEditar o perfil atual e indo à página Teclado. Aqui aparecem enumerados os esquemas de Combinações de Teclas que disponibilizados por padrão no Konsole.

Combinações de Teclas e Modos

As combinações de teclas seguem o padrão:

Tecla (+|-) Modos

por exemplo:

Up+Shift+AppScreen
Down+Shift-AppScreen
Space+Ctrl

Os nomes das teclas estão definidos no arquivo qnamespace.h, com o prefixo Qt::Key_ removido. Para obter uma lista com os nomes das teclas, consulte a enumeração Qt::Key na documentação do Qt.

Um + que antecede o nome de um Modo significa que esse modo está definido; para uma tecla modificadora, indicando que está pressionada, enquanto que para os outros modos significa que esse modo em particular está em efeito (isto é, ativo). Por exemplo, o +Ctrl significa que a combinação de teclas só irá funcionar se a tecla Ctrl estiver pressionada.

Um - que antecede o nome de um Modo significa que esse modo está desativado; basicamente, este é o oposto de colocar um + antes do nome de um Modo. Assim, para uma tecla modificadora, isso significa que a tecla não está pressionada enquanto que, para todos os outros modos, significa que esse modo em particular está inativo. Por exemplo, o -Ctrl significa que a combinação de teclas só irá funcionar se a tecla Ctrl não estiver pressionada.

Nota

Se um nome de Modo não estiver presente em uma combinação de teclas, o seu estado será ignorado.

Os modos de Combinações de Teclas aparecem relacionados abaixo:

Alt, Ctrl, Shift

Um ou mais Modos como estes poderão ser usados em uma combinação de teclas. Caso algum deles esteja definido, a combinação de teclas usa essa tecla modificadora, respectivamente, ou se não estiver definido, aplica-se o modo inverso.

AnyModifier

Se este modo estiver definido, a combinação de teclas usa qualquer tecla modificadora (das acima mencionadas) e se não estiver definido, não utilizará

Ansi

Se este modo estiver definido, o Konsole irá enviar as sequências de controle e escape do ANSI

Se este modo não estiver definido, o Konsole irá enviar as sequências de controle e escape do VT52

AppScreen

Se este modo estiver definido, a combinação de teclas só irá afetar os programas interativos que usam o buffer da tela alternativa

Se este modo estiver desativado, a combinação de teclas só irá afetar o terminal quando estiver usando o buffer da tela norma

Nota

O Konsole utiliza dois buffers de tela:

  • O buffer de tela normal (padrão): permite-lhe rolar para ver as linhas de resultado anteriores. Este é o buffer padrão que normalmente usado para executar os comandos, etc.

  • O buffer de tela alternativa: o terminal muda para este buffer quando você executar um programa interativo (por exemplo, less, vim, screen, tmux... etc.)

KeyPad

Se este modo estiver ativo, a combinação de teclas usa uma tecla no teclado numérico. Este modo é útil para distinguir entre as teclas no teclado normal e as equivalentes no teclado numérico. Por exemplo, quando o Num Lock está ligado, você poderá configurar duas combinações de teclas em separado, uma que usa a tecla 1 no teclado (normalmente abaixo da tecla F1) e a outra usando a tecla 1 no teclado numérico. O mesmo conceito se aplica quando o Num Lock está desligado para as teclas End, Home, Setas direcionais, etc., no teclado numérico

AppCursorKeys

Este modo implementa o Modo das Teclas de Cursores (DECCKM) do VT100. Ele controla as sequências de escape que cada tecla de cursor (Para cima, Para baixo, Direita, Esquerda) envia, dependendo de este modo estar ativado ou desativado

Por padrão, o Konsole segue o comportamento do XTerm para tratar as teclas Home e End como teclas de cursores, no que diz respeito ao DECCKM

AppKeyPad

Se este modo estiver ativo, a combinação de teclas só irá funcionar quando o teclado numérico estiver no Modo de Aplicativo (DECKPAM)

Se este modo estiver desativado, a combinação de teclas só irá funcionar quando o teclado numérico estiver no Modo Numérico (DECKPNM)

NewLine

Se este modo estiver ativo, a tecla Return (Enter) do teclado irá enviar ambos os caracteres de controle 'Carriage Return' "\r" e 'New Line' "\n"

Se este modo estiver desativado, a tecla Return só irá enviar um 'Carriage Return' "\r"

O mesmo se aplica à tecla Enter no teclado numérico

Este modo emula o Modo LNM - Line Feed/New Line

Repare que cada combinação de teclas e modos (ativado/desativado) deverá ser única. Por exemplo, considerando as duas regras seguintes:

  • A+Shift : A

  • a : a

O Konsole não aceitará a regra da letra minúscula a e você precisará adicionar um -Shift a essa regra para que ela funcione.

O campo Saída

No campo Saída, você poderá adicionar as sequências de escape ou caracteres de controle que deseja que o Konsole envie para o terminal, quando a combinação de teclas associada for pressionada.

Você também poderá usar qualquer uma das seguintes palavras-chave, tendo cada uma delas um significado especial no Konsole:

  • scrollUpLine : sobe uma linha no buffer de rolagem do histórico do shell

  • scrollUpPage : sobe uma página no buffer de rolagem do histórico do shell

  • scrollDownLine : desce uma linha no buffer de rolagem do histórico do shell

  • scrollDownPage : desce uma página no buffer de rolagem do histórico do shell

  • scrollUpToTop : sobe até ao início do buffer de rolagem do histórico do shell

  • scrollDownToBottom : desce até o final do buffer de rolagem do histórico do shell

Você também pode usar strings com sintaxes de texto em C, com as seguintes sequências de escape:

  • \E : Escape

  • \\ : Barra invertida

  • \" : Aspas

  • \t : Tabulação

  • \r : Carriage Return

  • \n : Nova linha

  • \b : Backspace

  • \xHH : onde HH são dois dígitos hexadecimais

    Dica

    Isto poderá ser usado para enviar caracteres de controle em ASCII, por exemplo, \x00 que corresponde ao caractere NUL

Outros recursos do sistema

Existem outros recursos do sistema que poderão afetar as combinações de teclas do terminal:

  • Consulte o banco de dados do terminfo ou termcap para conhecer as sequências de escape e caracteres de controle esperados que cada combinação de teclas deve enviar.

  • É provável que o seu sistema tenha outros bancos de dados de teclado que devem estar igualmente sincronizadas (por exemplo, /etc/inputrc e readline para a linha de comando BASH), pois afetam as operações (interações) associadas às combinações de teclas.

Leitura complementar

Para mais informações sobre as sequências de escape e caracteres de controle, consulte a seguinte documentação: