Como posso remapear as teclas de atalho para rolagem para baixo / para cima no terminal do gnome

6

De acordo com o uso do gnome-terminal :

You can also scroll up or down one line at a time by pressing Control+Shift+Up or Control+Shift+Down.

Neste documento mostra: Controle + Deslocamento + Acima / Abaixo pode rolar para cima ou role para baixo a linha gnome-terminal one. E sim, eles podem!

Agora, quero mapear novamente essas duas teclas de atalho, como: Alt + J / K (hábito Vimer).

Meu entendimento

Aqui, algum sinal deve ser disparado após pressionar Ctrl + Alt + Acima | Down.

A questão é: qual sinal é acionado?

Aqui estão algumas perguntas:

  • 0x115 é o sinal de rolagem do windows . e o Linux?
  • A rolagem pode ser executada por comando no gnome-terminal? (Algum comando inserido e gnome-terminal rolando para cima / baixo)

Eu baixei o código-fonte do Gnome-Terminal e tentei encontrar a resposta. Mas meu C é terrível ...

A propósito, meu Linux é Ubuntu 13.10 e gnome-terminal é 3.6:

$ gnome-terminal --version
GNOME Terminal 3.6.1
$ lsb_release -a
No LSB modules are available.
Distributor ID: Ubuntu
Description:    Ubuntu 13.10
Release:    13.10
Codename:   saucy
    
por Marslo 26.01.2014 / 15:32

3 respostas

2

[OPCIONAL]

Eu também sou um vimer e me sinto desconfortável com a posição padrão Ctrl , então eu remapeei o Meta do Window para ser uma Ctrl adicional chave. OBSERVAÇÃO: você precisará de xmodmap .

remove Control = Control_L Control_R
remove mod4 = Super_L Super_R
add Control = Control_L Super_L

[STEPS]

Para remapear Ctrl + J e Ctrl + K em Konsole , siga estes passos:

  1. Vá para Configurações - > Configurar perfil atual - > Entrada
  2. Edite a ligação de teclas do Console do Linux
  3. Adicione uma nova ligação de tecla para percorrer uma linha de cada vez: J + Ctrl - > ScrollLineDown
  4. Adicione um novo enlace de teclas para rolar uma linha por vez: K + Ctrl - > ScrollLineUp

Algumas capturas de tela

OBSERVAÇÃO: agora você poderá rolar para cima e rolar para baixo uma linha de cada vez usando os atalhos configurados.

EDIT # 1

Alt funciona !! Apenas mude Ctrl com Alt nas ligações.

    
por 26.01.2014 / 16:50
0

Acho que a resposta que você está procurando está aqui, intitulada: Atalhos de teclado . Especificamente estes:

NOTA: Você não pode sobrescrever este atalho de teclado através de gnome-terminal ! Se você pudesse, apareceria neste menu:

Para alterar um atalho de teclado:

  1. Selecione Editar ▸ Preferências ▸ Atalhos.
  2. Selecione o atalho que você deseja editar clicando nele.
  3. Quando o atalho estiver selecionado, clique na combinação de teclas de atalho para editá-lo.
  4. Digite a combinação de teclas de atalho desejada, da forma que você deseja digitá-la para usá-la. As teclas que você pode usar incluem as teclas Alt, Alt Gr, Ctrl, Shift, número e letra.

    NOTA: combinações de teclas mnemônicas, como Alt + F, não funcionarão. Se você acidentalmente definir uma dessas combinações de teclas como atalho, talvez seja necessário redefini-la antes de poder alterá-la para outra coisa.

  5. Após inserir o novo atalho, ele será salvo automaticamente e você deverá vê-lo na lista ao lado da ação correspondente.

OBSERVAÇÃO: Para desabilitar um atalho, edite-o e pressione o botão Backspace em vez do novo atalho.

Alguns atalhos não podem ser substituídos!

Se você perceber na imagem acima (um pouco difícil de ver), afirma que:

There are also some shortcuts that cannot be edited

Isso inclui a rolagem para cima / baixo, então parece que não há como fazer isso diretamente através de gnome-terminal .

    
por 26.01.2014 / 16:09
0

Uma solução usando o autokey

Você pode usar o autokey para alterar os atalhos de determinadas janelas. O Autokey permite que você filtre títulos de janelas por meio da expressão regular.

1) Basta instalar o autokey e criar um novo script.

2) Cole o seguinte código na janela do script e altere-o de acordo com as suas necessidades.:

# This code will scroll the terminal three lines up, when triggered.

import time

keyboard.send_keys("<ctrl>+<shift>+<up>")
time.sleep(0.01)
keyboard.send_keys("<ctrl>+<shift>+<up>")
time.sleep(0.01)
keyboard.send_keys("<ctrl>+<shift>+<up>")
time.sleep(0.01)

2) Então diga ao autokey para atribuir o script a uma "Hotkey" de sua escolha.

3) Por fim, defina a expressão regular para "Filtro de Janelas" como algo como ^Terminal$ , dependendo do título de suas janelas de terminal. Você pode ajustar sua expressão regular para corresponder ao seu título de janela específico. Este site é muito útil quando se está mexendo com expressões regulares.

4) Faça o mesmo para rolar para baixo.

    
por 04.07.2017 / 21:18