Logo Hardware.com.br
Saulo Toledo
Saulo Toledo Super Participante Registrado
767 Mensagens 3 Curtidas

Meu teclado não tem pipe, e agora?

#1 Por Saulo Toledo 06/09/2009 - 18:52
Todos sabemos que o "|" (pipe) é indispensável no Linux. E o notebook que estou usando não tem a tecla. Na verdade até tem, mas não funciona em nenhum Sistema Operacional.

Já tentei usar o setkeycode, mas não acerto esse bendito. eu gostaria de trocar uma tecla ou atalho qualquer pra imprimir o "|".


Desde já agradeço,

Saulo
Responder
helton
helton Membro Senior Registrado
142 Mensagens 10 Curtidas
#2 Por helton
07/09/2009 - 10:57
Olá Saulo.

Basicamente é descobrir qual o keycode da tecla e usar o xmodmap para mapeá-la. Para descobrir o keycode da tecla, use o xev. Aqui recebi a seguinte informação:

[code=rich]KeyPress event, serial 29, synthetic NO, window 0x3800001,
root 0x7f, subw 0x0, time 7291018, (401,600), rootfrown.png406,677),
state 0x10, keycode 94 (keysym 0x5c, backslash), same_screen YES,
XLookupString gives 1 bytes: (5c) "\"
XmbLookupString gives 1 bytes: (5c) "\"
XFilterEvent returns: False

KeyRelease event, serial 32, synthetic NO, window 0x3800001,
root 0x7f, subw 0x0, time 7291090, (401,600), rootfrown.png406,677),
state 0x10, keycode 94 (keysym 0x5c, backslash), same_screen YES,
XLookupString gives 1 bytes: (5c) "\"
XFilterEvent returns: False[/code]

Observe em negrito keycode 94. Esse é o código da tecla, que é o mesmo da contra barra.

Se estivesse desconfigurado, bastaria fazer:

$ xmodmap -e "keycode 94 = backslash bar backslash bar masculine dead_breve"

onde:
backslash = a contra barra "\"
bar = o pipe "|" (acionado com Shift)
masculine = o símbolo de masculino "º" (acionado com Alt Gr)
dead_breve = "˘" (não descobri como acionar no meu teclado.)

Depois de descobrir a combinação correta, basta colocar o comando no seu ~/.bashrc


Boa sorte.
Saulo Toledo
Saulo Toledo Super Participante Registrado
767 Mensagens 3 Curtidas
#3 Por Saulo Toledo
07/09/2009 - 21:15
Solucionou metade do meu problema, muito obrigado! Eu havia tentato mapear para terminal, e não para o x.org, e isso me soluciona para o X. Eu coloquei no lugar da tecla e menu que fica ao lado do Alt Gr, já que não uso ela mesmo. Agora tenho \ e | no X.

A outra metade do problema é que costumo usar o sistema em modo texto algumas vezes, para variadas tarefas, e ainda não tenho o | no modo texto. tens uma solução para lá?

Obrigado

Saulo
arkRed">Conheça o Apache OpenOffice.org! É prático e gratuito! Olha: www.openoffice.org
helton
helton Membro Senior Registrado
142 Mensagens 10 Curtidas
#5 Por helton
07/09/2009 - 23:37
willianpts disse:
helton, cara, muito obrigado.


De nada.
Também pode ser : xmodmap -e "keycode 129 = period"

Saulo, para o console eu encontrei o seguinte:

use o comando showkey para descobrir qual a tecla que quer mapear. No meu teclado, a tecla menu corresponde ao keycode 127.

Para mapeá-la, use o loadkeys, mas apenas como root:

# loadkeys << EOF
keycode 127 = backslash bar
EOF

Funcionando, adicione o comando em /etc/rc.local

Dica retirada daqui:

http://www.ibiblio.org/pub/Linux/docs/HOWTO/Keyboard-and-Console-HOWTO


---------

Pq não mapeou a tecla que contém o pipe no lugar da tecla de menu?
Saulo Toledo
Saulo Toledo Super Participante Registrado
767 Mensagens 3 Curtidas
#6 Por Saulo Toledo
08/09/2009 - 10:30
A tecla que contém o pipe não manda nem sinal, estranhamente. O mesmo acontece com uma tecla de ] e }.

Já tentei de tudo, o xev nem reconhece a tecla sendo pressionada.


Aqui não funciona o comando "Keycode". Em seu lugar tenho o setkeycode, que só mapeia códigos em hexa, e não consegui fazê-lo funcionar ainda.
arkRed">Conheça o Apache OpenOffice.org! É prático e gratuito! Olha: www.openoffice.org
helton
helton Membro Senior Registrado
142 Mensagens 10 Curtidas
#7 Por helton
09/09/2009 - 00:24
Saulo Toledo disse:
Aqui não funciona o comando "Keycode". Em seu lugar tenho o setkeycode, que só mapeia códigos em hexa, e não consegui fazê-lo funcionar ainda.


Comando Keycode? não tem nenhum comando keycode na dica que eu passei. Só usei dois comandos: showkey e loadkeys. No Ubuntu ambos estão no pacote kbd.

Tecle F1 para ir para o console
$ showkey
(aperte a tecla de menu, será informado o keycode da tecla)
$ sudo su
# loadkeys << EOF
keycode 127 = backslash bar
EOF
teste o pipe com Shift Menu
se funcionar, é só fazer como eu disse, adicione as três linhas no arquivo /etc/rc.local , antes de exit 0

Boa sorte.
Saulo Toledo
Saulo Toledo Super Participante Registrado
767 Mensagens 3 Curtidas
#8 Por Saulo Toledo
11/09/2009 - 19:59
Comando keycode: erro meu :P hehe

Não funciona de jeito nenhum com o loadkeys, apesar do comando executar corretamente. O comando que trocou as teclas corretamente para mim aqui foi o setkeycode, mas não estou sabendo usá-lo, já que ele faz com valores em hexa...
arkRed">Conheça o Apache OpenOffice.org! É prático e gratuito! Olha: www.openoffice.org
helton
helton Membro Senior Registrado
142 Mensagens 10 Curtidas
#9 Por helton
12/09/2009 - 01:42
Olá Saulo.

Difícil dizer porque não está funcionando. Aqui eu mapeei a tecla de menu normalmente apenas com showkey e loadkeys.

Não sei mais o que pode ser. Quando você segue o passo à passo não retorna nenhuma mensagem de erro? Você está usando console normal ou com framebuffer? Qual a distro? Se for uma debian-like, pode tentar reconfigurar o teclado com:

$ sudo dpkg-reconfigure console-setup

e escolher o modelo do teclado (brasileiro, abnt2), codificação (utf8?) o conjunto de caracteres (Latin1 e Latin15) para as teclas, entre outras opções. Será necessário reiniciar para as alterações surtirem efeito.

Estive lendo sobre o setkeycode (que no Ubuntu é setkeycodes) e ao que entendi ele serve para atribuir um keycode a uma tecla não identificada no mapa de teclas. Mas me pareceu bem confuso, quem sabe algum colega se prontifica a explicar melhor.

Aguardando.
Responder Tópico
© 1999-2024 Hardware.com.br. Todos os direitos reservados.
Imagem do Modal