Configure o Caps Lock como AltGr e Arrows como no vim

6

1. Como faço para mapear globalmente Caps Lock para AltGr ?

Eu não preciso de CapsLock e gostaria de ter um acesso fácil AltGr Key lá

2. Quero mapear todas as chaves de movimento para vim -like positions

  • AltGr + F = Retrocesso
  • AltGr + H = LeftArr
  • AltGr + J = DownArr
  • AltGr + L = RightArr
  • AltGr + K = UpArr
  • AltGr + U = PgUp
  • AltGr + D = PgDown
  • AltGr + S = Introduzir
  • AltGr + 3 = Pos1
  • AltGr + $ = Fim
  • AltGr + X = Del

Para que eu possa percorrer facilmente o meu código sem mover a mão da posição de 10 dedos (como no editor vim )

Eu encontrei esta resposta: Como faço o remapeamento da tecla caps lock para a tecla backspace?
sugerindo usar

xmodmap -e "keycode [code] = [new key]"

veja: link

Mas não consigo descobrir como adicionar isso a uma combinação de, por exemplo, AltGr + J

Outro começo seria definir a "Chave de caractere alternativa" em unity-control-center - > Teclado- > Atalhos- > Digitação como Caps Lock

Atualização: encontrei algumas soluções (veja abaixo), mas todas elas não funcionam em todos os aplicativos, eu acho que é uma configuração global chamada "XFree 4" usada por alguns aplicativos .

Como defino as combinações de teclas do XFree 4 também?

    
por rubo77 12.10.2015 / 09:49

3 respostas

2

Você precisa editar /usr/share/X11/xkb/symbols/de (onde /de é o seu idioma) e adicionar esta seção no primeiro bloco que você usa no seu idioma:

            # replace Caps with AltGr
            key <CAPS> { [ ISO_Level3_Shift            ] };
            # Add vim cursor keys to be accessed with AltGr
            key <AB02> { [ x, X, Delete, Delete        ] };
            key <AC02> { [ s, S, KP_Enter, KP_Enter    ] };
            key <AC03> { [ d, D, Next, Next            ] };
            key <AC04> { [ f, F, BackSpace, BackSpace  ] };
            key <AC06> { [ h, H , Left, Left           ] };
            key <AC07> { [ j, J, Down, Down            ] };
            key <AC08> { [ k, K, Up, Up                ] };
            key <AC09> { [ l, L, Right, Right          ] };
            key <AD07> { [ u, U, Prior, Prior          ] };
            key <AE03> { [ 3, section, Home, Home      ] };
            key <AE04> { [ 4, dollar, End, End         ] };

efetue logout e novamente, assim estará disponível. Apenas alguns aplicativos não aceitam as configurações, por exemplo: yakuake , que pode ser substituído por guake , e sublime , que pode ser substituído por atom .

EDIT: Descobri que em yakuake as associações de teclas estão definidas como "XFree 4", se você definir isso como Liux ou Solaris, as configurações de XKB também funcionarão lá:

    
por rubo77 30.03.2017 / 14:01
1

Para remapear o CapsLock para o AltGr, use

xmodmap -e "keycode 66 = ISO_Level3_Shift"

(fonte: link )

Para mapear as teclas de seta para AltGr + h, j, k e l, use xmodmap -pke para encontrar as configurações corretas:

xmodmap -pke|egrep "f F|j J|k K|h H|l L|o O|u U|d D|dollar|BackSpace"

e altere o valor quinto para as novas chaves e adicione tudo isso em um script bash:

# xrandr needs the desktop to be fully loaded. add a delay, to be able to add it to Startup Applications:
sleep 15
# change BackSpace into AltGr
xmodmap -e "keycode 66 = ISO_Level3_Shift"
# set BackSpace on AltGr + F
xmodmap -e "keycode 41 = f F f F BackSpace BackSpace dstroke ordfeminine f F dstroke ordfeminine"
# create arrow keys at h,j,k,l
xmodmap -e "keycode  43 = h H h H Left Left"
xmodmap -e "keycode  44 = j J j J Down Down"
xmodmap -e "keycode  45 = k K k K Up Up"
xmodmap -e "keycode  46 = l L l L Right Right"
xmodmap -e "keycode  30 = u U u U Prior Prior"
xmodmap -e "keycode  40 = d D d D Next Next"
xmodmap -e "keycode  12 = 3 section 3 numbersign Home Home"
xmodmap -e "keycode  13 = 4 dollar 4 dollar End End"
xmodmap -e "keycode  53 = x X x X Delete Delete"

(fonte: link )

Coloque o script bash no seu Startup Applications ( Chooe Dash > Aplicativos de inicialização > Adicione e adicione o comando.)

Nota: estranhamente em gnome-terminal isto funciona bem, mas em yakuake funciona para BackSpace em AltGr + F, mas define AltGr + h, j, kel para D, B, A e C a menos que você defina a ligação de chaves para "Linux" em vez de "(padrão) XFree 4", e em sublime-text não funciona de todo

    
por rubo77 28.03.2017 / 22:55
0

para obter AltGr + h , j , k , l ou qualquer outra chave sem qualquer aplicação como Autokey para executar você pode personalizar o layout do seu teclado em / usr / share / X11 / xkb / symbols / . No momento eu uso o layout alemão "de". Então, primeiro de tudo eu gostaria:

1- copie o layout padrão

cp /usr/share/X11/xkb/symbols/de /usr/share/X11/xkb/symbols/de.bak

2- abra seu layout com seu editor de texto de preferência (aqui: gedit)

sudo gedit /usr/share/X11/xkb/symbols/de 

lá você verá algo como:

key <AD03>  { [         e,          E,     EuroSign,     EuroSign ] };
key <AD06>  { [         z,          Z,    leftarrow,          yen ] };
key <AD11>  { [udiaeresis, Udiaeresis, dead_diaeresis, dead_abovering ] };
....
....
key <AD12>  { [      plus,   asterisk,   dead_tilde,  macron ]  };
key <AC02>  { [               s,               S,          ssharp,          U017F ] }; 
key <AC06>  { [               h,               H,            Left,             Left ]   }; 
key <AC07>  { [               j,               J,            Down,             Down ]   }; 
key <AC08>  { [               k,               K,              Up,               Up ]   }; 
key <AC09>  { [               l,               L,           Right,            Right ]   }; 
....
....
key <AB10>  { [     minus, underscore,               endash,     emdash ] };
key <LSGT>  { [     less,     greater,                  bar,     NoSymbol   ] };

Como você pode ver, AB, AC, AD, AE representa a linha e o número representa sua posição no teclado (existem algumas teclas especiais, como a chave menor / maior, que podem ser remapeadas para outras teclas como bem ..

Lá você não encontrará todo o teclado, apenas os que são diferentes do layout no qual o teclado é baseado. O alemão é baseado em "latin (type4)" como você pode ver no início do arquivo:

include "latin(type4)"

Então você só precisa mudar de acordo com suas necessidades. Funciona como:

Tecla

Tecla {[ , Tecla + Deslocamento , Tecla + AltGr , tecla + Shift + AltGr ]};

(também é possível adicionar os modificadores de 5º nível, ou mais)

se você quiser verificar as alterações sem reiniciar; (alterando "de" para o seu layout ... aqui está uma lista com possíveis layouts )

 setxkbmap -layout de

As setas são rotuladas como "Left, Right, Down, Up", como expeceted. Aqui está uma boa lista de possíveis valores.

aqui é um exemplo do meu layout personalizado. (mas não em uso no momento)

Então, você precisaria remapear Capslock e AltGr, ou já funcionava após a pergunta que você postou?

Se você também quiser manter um layout alemão "normal", poderá fazer as alterações em outro layout que normalmente não usa (ou altere o "alemão sem chaves inativas", que você pode encontrar mais abaixo no mesmo "arquivo ...)

Fonte: link para uma explicação muito abrangente sobre xbk e layouts personalizados
link para uma pergunta semelhante com uma boa resposta.

    
por Marcelo Avila 13.10.2015 / 01:16