Fórum Ubuntu Linux - PT

Suporte Técnico => Sistema => Tópico iniciado por: ReiDaCocada em 10 de Outubro de 2014, 13:57

Título: Tecla ESC nas teclas personalizadas
Enviado por: ReiDaCocada em 10 de Outubro de 2014, 13:57
Então, depois de beber uma xícara de café no Notebook, acabei cometendo um infeliz acidente e derramei café no teclado, por sorte, não deu nenhum problema no Note, mas a bendita tecla ESC me deixou na mão e parou de funcionar  >:(
Já procurei vários métodos pra mapear teclas, mas como sou um pouco novato no linux, não achei um que funcionasse. Então, minha última alternativa é as teclas personalizadas nas configurações do Sistema, e gostaria de saber se é possível, por exemplo, dar a mesma função da tecla ESC pra combinação Ctrl + M? ;--;
Título: Re: Tecla ESC nas teclas personalizadas
Enviado por: edjen em 30 de Outubro de 2014, 20:02
Fiz bem explicado para que sirva para quem precisar ou quiser personalizar seu teclado.

OBS: Os programas necessários acredito que venham instalados por padrão


Vamos a solução do seu problema como exemplo.

A primeira coisa a fazer é identificar o código da tecla que você está pressionando, para isto existe o programa xev. Abra o terminal e digite xev. Vai abrir um quadradinho preto e diversos códigos ficarão rolando na tela do terminal conforme você digita.

TECLA ESC

KeyRelease event, serial 37, synthetic NO, window 0x5e00001,
    root 0x7c, subw 0x0, time 128419806, (-162,384), root:(829,436),
    state 0x10, keycode 9 (keysym 0xff1b, Escape), same_screen YES,
    XLookupString gives 1 bytes: (1b) ""
    XFilterEvent returns: False

Atente para códigos com este padrão. Este código foi gerado ao pressionar a tecla ESC. Em negrito os pontos importantes.

keycode 9: Representa o código da tecla pressionada

Escape : Representa a função da tecla pressionada

...........................

TECLA CONTROL

KeyRelease event, serial 37, synthetic NO, window 0x5a00001,
    root 0x7c, subw 0x0, time 129768012, (-318,141), root:(673,193),
    state 0x14, keycode 37 (keysym 0xffe3, Control_L), same_screen YES,
    XLookupString gives 0 bytes:
    XFilterEvent returns: False

keycode 37: Representa o código da tecla pressionada

control_L : Representa a função da tecla pressionada

...................................

TECLA M

KeyRelease event, serial 37, synthetic NO, window 0x5a00001,
    root 0x7c, subw 0x0, time 129930395, (-665,74), root:(326,126),
    state 0x10, keycode 58 (keysym 0x6d, m), same_screen YES,
    XLookupString gives 1 bytes: (6d) "m"
    XFilterEvent returns: False

keycode 58: Representa o código da tecla pressionada

m : Representa a função da tecla pressionada

..........................................

Agora vem a parte simples, é só rodar o seguinte comando sem aspas:

xmodmap -e “keycode 9 = Control_L m”

Entre as aspas duplas é onde está a parte importante.


Simples assim.

É só executar este comando que já está tudo legal, só tem um problema, ao reiniciar a máquina para de funcionar. Então dentro da sua pasta home você cria um arquivo chamado .xmodmaprc, com o seguinte conteúdo:

keycode 9 = Control_L m


Ao reiniciar o Ubuntu, vai perguntar se você deseja carregar este arquivo, você diz que sim e já era, agora suas teclas estão mapeadas do jeito que você deseja.

Até mais
Título: Re: Tecla ESC nas teclas personalizadas
Enviado por: ReiDaCocada em 31 de Outubro de 2014, 14:55
Fiz bem explicado para que sirva para quem precisar ou quiser personalizar seu teclado.

OBS: Os programas necessários acredito que venham instalados por padrão


Vamos a solução do seu problema como exemplo.

A primeira coisa a fazer é identificar o código da tecla que você está pressionando, para isto existe o programa xev. Abra o terminal e digite xev. Vai abrir um quadradinho preto e diversos códigos ficarão rolando na tela do terminal conforme você digita.

TECLA ESC

KeyRelease event, serial 37, synthetic NO, window 0x5e00001,
    root 0x7c, subw 0x0, time 128419806, (-162,384), root:(829,436),
    state 0x10, keycode 9 (keysym 0xff1b, Escape), same_screen YES,
    XLookupString gives 1 bytes: (1b) ""
    XFilterEvent returns: False

Atente para códigos com este padrão. Este código foi gerado ao pressionar a tecla ESC. Em negrito os pontos importantes.

keycode 9: Representa o código da tecla pressionada

Escape : Representa a função da tecla pressionada

...........................

TECLA CONTROL

KeyRelease event, serial 37, synthetic NO, window 0x5a00001,
    root 0x7c, subw 0x0, time 129768012, (-318,141), root:(673,193),
    state 0x14, keycode 37 (keysym 0xffe3, Control_L), same_screen YES,
    XLookupString gives 0 bytes:
    XFilterEvent returns: False

keycode 37: Representa o código da tecla pressionada

control_L : Representa a função da tecla pressionada

...................................

TECLA M

KeyRelease event, serial 37, synthetic NO, window 0x5a00001,
    root 0x7c, subw 0x0, time 129930395, (-665,74), root:(326,126),
    state 0x10, keycode 58 (keysym 0x6d, m), same_screen YES,
    XLookupString gives 1 bytes: (6d) "m"
    XFilterEvent returns: False

keycode 58: Representa o código da tecla pressionada

m : Representa a função da tecla pressionada

..........................................

Agora vem a parte simples, é só rodar o seguinte comando sem aspas:

xmodmap -e “keycode 9 = Control_L m”

Entre as aspas duplas é onde está a parte importante.


Simples assim.

É só executar este comando que já está tudo legal, só tem um problema, ao reiniciar a máquina para de funcionar. Então dentro da sua pasta home você cria um arquivo chamado .xmodmaprc, com o seguinte conteúdo:

keycode 9 = Control_L m


Ao reiniciar o Ubuntu, vai perguntar se você deseja carregar este arquivo, você diz que sim e já era, agora suas teclas estão mapeadas do jeito que você deseja.

Até mais

Obrigado pela resposta, vou tentar suas instruções  ;D