Mapeie alt ou ctrl + h, j, k, l como setas em geral | gnomo | estilo vim

1

Eu gostaria de usar ctrl + h como Seta para a esquerda e assim por diante (estilo vim) em todo o sistema operacional (todos os aplicativos). Eu uso o gnome 3.16.4.

O resultado xev para a seqüência de press-releases de ctrl + h é:

KeyPress event, serial 37, synthetic NO, window 0x3000001,
    root 0xf6, subw 0x0, time 8058713, (-860,225), root:(166,344),
    state 0x0, keycode 37 (keysym 0xffe3, Control_L), same_screen YES,
    XLookupString gives 0 bytes:
    XmbLookupString gives 0 bytes:
    XFilterEvent returns: False

KeyPress event, serial 37, synthetic NO, window 0x3000001,
    root 0xf6, subw 0x0, time 8058895, (-860,225), root:(166,344),
    state 0x4, keycode 43 (keysym 0x68, h), same_screen YES,
    XLookupString gives 1 bytes: (08) "
    XmbLookupString gives 1 bytes: (08) "
    XFilterEvent returns: False

KeyRelease event (...)

e para h uma linha é a seguinte:

XLookupString gives 1 bytes: (68) "h"

A seta para a esquerda é simples:

keycode 113 (keysym 0xff51, Left)

Actualização

Justificativa para CTRL

Primeiramente eu queria atribuir fn + h , j , k , l mas parece ser impossível de maneira de software. windows + l e windows + h também estão em uso como logout e janela mínima, respectivamente. Alt esquerdo parece a melhor opção, mas em alguns programas funciona como letras adicionais (codificação) (por exemplo, vim e gvim vêem teclas distintas quando alt é pressionado).

Eu sei que vou perder algumas funcionalidades usando ctrl , mas até agora eu nunca usei atalhos padrão ctrl + hjkl em um terminal (eu uso o modo vi) mapeamento definido em .inputrc)

xev Alt + h versão:

KeyPress event, serial 37, synthetic NO, window 0x1e00001,
    root 0xf6, subw 0x0, time 2180657, (434,71), root:(484,158),
    state 0x0, keycode 64 (keysym 0xffe9, Alt_L), same_screen YES,
    XLookupString gives 0 bytes: 
    XmbLookupString gives 0 bytes: 
    XFilterEvent returns: False

KeyPress event, serial 37, synthetic NO, window 0x1e00001,
    root 0xf6, subw 0x0, time 2180851, (434,71), root:(484,158),
    state 0x8, keycode 43 (keysym 0x68, h), same_screen YES,
    XLookupString gives 1 bytes: (68) "h"
    XmbLookupString gives 1 bytes: (68) "h"
    XFilterEvent returns: False
    
por Mesco 05.09.2016 / 00:04

1 resposta

1

Controle H , J , L já tem usos bem estabelecidos em terminais:

  • control H para apagar (exceto Linux)
  • control J é nova linha
  • control L é uma forma de alimentação equalizada com a limpeza da tela

Em bash , o controle K é por padrão ligado a kill-line .

É possível alterar essas atribuições, mas seu computador seria menos útil depois disso.

    
por 05.09.2016 / 01:14