Como vincular minha chave capslock a um comando fish shell e desativar sua funcionalidade de alternância-caps?

9

Recentemente, mudei para o shell de peixe e seu preenchimento automático é muito bom.

No entanto, eu me vejo querendo tabusar o recurso complete_autocomplete, ao contrário de quando é inequívoco. As teclas de avançar e terminar fazem isso, mas estão fora do alcance dos meus dedos em uma posição normal de digitação.

Eu adoraria usar a Capslockchave para isso, pois nunca uso essa chave, mas ela está em uma posição tão agradável.

Eu tentei, setxkbmap -option caps:nonemas isso parece desativar capslockcompletamente a chave. Suponho que poderia vinculá-lo à tecla forward ou end, mas também não tenho certeza de como fazer isso.

Além disso, não consigo encontrar uma ligação de chave na casca de peixe para capslock:

cowpig@gerty:~$ bind -K
b2
backspace
btab
dc
down
end
enter
f1
f2
f3
f4
f5
f6
f7
f8
f9
f10
f11
f12
f13
f14
f15
f16
f17
f18
f19
f20
home
ic
left
npage
ppage
right
sdc
send
sf
shome
sic
sleft
snext
sprevious
sr
sright
up
mavix
fonte
Eu acredito que você precisará encontrar uma ferramenta de remapeamento no nível do sistema para o Ubuntu, pois os programas de usuários geralmente não conseguem suprimir o comportamento padrão de caps-lock.
quer
Eu acho que você pode usar xbindkeys para definir o comportamento padrão do caps lock, dizer para enviar um evento diferente e manipular esse evento no fish?
XtrmJosh 28/09/16
Possivelmente relacionado: askubuntu.com/questions/82837/…
Elder Geek
Você pode escrever um daemon Python para lidar com isso. Algumas informações básicas aqui: stackoverflow.com/questions/22367358/…
Nandakumar Edamana 9/16

Respostas:

2

Primeiro, verifique o manual porque acho que o Ctrl+ Ftambém será preenchido automaticamente. Você pode vê-lo digitando helppeixe.

Se você quiser prosseguir com o mapeamento, execute xeve pressione capslockpara obter o código da tecla. O meu é 66:

enter code hereKeyRelease event, serial 37, synthetic NO, window 0x5200001,
root 0x4b7, subw 0x0, time 6149967, (918,609), root:(984,661),
state 0x10, keycode 66 (keysym 0xff57, End), same_screen YES,
XKeysymToKeycode returns keycode: 37
XLookupString gives 0 bytes: 
XFilterEvent returns: False

Agora crie um script (ou seja, ~ / xmodmap.sh) com permissão 755 e o seguinte texto:

#/bin/bash
xmodmap -e "keycode 66 = End"
xmodmap -e "clear Lock"

Execute o script e ele converterá capslocka Endchave.

Para tornar isso permanente, adicione este comando aos aplicativos de inicialização:

/bin/bash -c "sleep 7 && /home/myusername/xmodmap.sh"

Eu tentei com o shell de peixe e ele conclui automaticamente o comando.

Uso Alt Grpara mapear algumas teclas para posições mais próximas: Personalize o layout do teclado, incluindo as teclas de navegação

Katu
fonte
Isso é quase o que eu quero :)
Mavix