Como vincular setas Ctrl + às teclas Home e End? xmodmap não funciona


15

No Windows, eu costumava ligar Ctrl+ Lefta Homee Ctrl+ Direito a Endvia ahk.

Agora estou lutando para conseguir esse comportamento no Ubuntu. Eu tentei editar /etc/inputrc:

"\e[1;5C": end-of-line
"\e[1;5D": beginning-of-line

Funciona, mas apenas na janela do terminal. Eu também tentei o xmodmap:

xmodmap -e "keycode 113=Left NoSymbol Home"

mas não funciona.
O estranho aqui é que, se eu ligar ao Shift+ Leftno xmodmap, ele funciona:

xmodmap -e "keycode 113=Left Home"

Meu palpite aqui é que o comportamento padrão de Ctrl+ Left(pular palavras) de alguma forma tem prioridade sobre as ligações xmodmap.

Onde posso encontrar onde as ligações padrão estão localizadas e como removê-las? Ou talvez eu pudesse ligar o comportamento necessário lá?

Estou no Ubuntu 12.04


Você obtém xevsaída para as chaves que deseja alterar?
Seth

Eu faço. Eu tenho keycode 113 = Esquerda da saída xev.
acid009

Você pode adicionar toda a xevsaída, por favor?
Seth

state 0x0, keycode 113 (keysym 0xff51, Esquerda)
acid009

e 0x4 estado, código de acesso 113 (keysym 0xff51, à esquerda) se pressionada com Ctrl - o estado é alterado para 0x4 como esperado
acid009

Respostas:


11

O AutoKey pode fazer ligações como essa, mas requer a execução de um serviço em segundo plano (como ahk, mas diferente do xmodmap).

Configure uma "frase" onde está o texto <home>, o método de colar Keyboarde a tecla de atalho é <ctrl>-<left>:

GUI do AutoKey


Agradável. Isso também pode ser uma boa opção como uma resposta aqui também askubuntu.com/questions/254424/...
Kevin Bowen

11
Uma versão expandida e mais genérica: askubuntu.com/a/304834/194 Isso faz desta pergunta uma duplicata?
Cscarney 6/06/2013

Provavelmente sim, mas você ainda deve receber a recompensa. ;-)
Kevin Bowen

esse método não funciona.
acid009

11
@JeffDror são <page_up> e <page_down> ( code.google.com/p/autokey/wiki/SpecialKeys )
cscarney

1

Estou usando o teclado de alumínio Apple na estação de trabalho Ubuntu e os seguintes comandos xmodmap fizeram isso por mim:

# remap Ctrl_L to ModeSwitch, then use it to map arrow keys so that
# they act like on the MacBook keyboard with Fn key pressed 
xmodmap -e "keycode 37=Mode_switch"
xmodmap -e "keycode 113 = Left NoSymbol Home"
xmodmap -e "keycode 114 = Right NoSymbol End"
xmodmap -e "keycode 111 = Up NoSymbol Prior"
xmodmap -e "keycode 116 = Down NoSymbol Next"

Isso funciona perfeitamente porque minha Caps Locktecla é remapeada para a função Control usando as preferências do teclado Ubuntu, portanto, a tecla Control esquerda não é necessária. Como está localizada onde a tecla Fn é encontrada no teclado do MacBook, a alternância entre os teclados de mesa e do MacBook não afeta a memória muscular.


0

Autokey trabalhou para mim. O comportamento padrão da Autokey seria: mapear right ctrl+ arrowe left ctrl+ arrow. E eu só queria right ctrl, porque costumava left ctrlnavegar pelas palavras.

Aqui está o script que usei no Autokey:

output = system.exec_command('xinput query-state "AT Translated Set 2 keyboard" | grep down', getOutput=True)
# 105 is right ctrl
if 'key[105]=down' in output:
    keyboard.send_keys('<end>')
else:
    keyboard.send_keys('<ctrl>+<right>')

Nota: você pode ter um nome de teclado diferente. Tente todos eles. Eu tinha 3 dispositivos, mas apenas um funcionou

xinput list --name-only | grep -i keyb
Virtual core keyboard
Virtual core XTEST keyboard
AT Translated Set 2 keyboard

PS: Instalei o Autokey no GitHub, porque o pacote no Ubuntu Software está quebrado.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.