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

acid009
fonte
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

cscarney
fonte
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.

Peter Kvitek
fonte
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.

wibotwi
fonte