Configurando teclado da Apple no Ubuntu

Esta semana eu vendi meu Mac Mini e voltei a usar o Ubuntu como sistema operacional para trabalhar. Continuei utilizando o teclado do Mac, e encontrei alguns problemas:

Problema de acentuação

Tive um problema para fazer o teclado do Mac funcionar no Ubuntu, para corrigir os problemas de acentuação foi só alterar o idioma do teclado (keyboard layout) para “English (US, alternative, international)” – mas isso pode mudar de acordo com o seu teclado.

Teclado numérico

Problema de acentuação resolvido, o segundo problema foi que o numlock não estava ligado – mas descobri que o botão “clear” (em cima do numpad) ativa e desativa o teclado numérico.

Teclas function sempre ativa (F1, F2, etc não funciona)

Um comportamento estranho foi que sempre qualquer tecla Fx (onde x é qualquer número) era pressionada o teclado executava a função (fn) da tecla, como aumentar volume, pausar música, etc.

Para utilizar a tecla “normal”, sem as funções de mídia eu tinha que pressionar a tecla fn.

Você pode resolver este “comportamento estranho” criando um arquivo de configuração para o teclado, se trata da opção “fnmode” do teclado. A opção fnmode pode ter 3 valores (0, 1 ou 2) e funciona da seguinte forma:

0 = Pressionar fn+F1 vai ser o mesmo que pressionar F1.

1 = Pressionar F1 vai executar a ação especial do F1. Pressionar fn+F1 vai executar a função do F1

2 = Pressionar F1 vai executar a função esperada para o F1. Pressionar fn+F1 vai executar a função especial do F1 (o comportamento esperado na maioria dos casos).

Vamos configurar, execute no terminal:

echo options hid_apple fnmode=2 | sudo tee -a /etc/modprobe.d/hid_apple.conf

Ou adicione (crie, se precisar) a configuração do fnmode=2 no /etc/modprobe.d/hid_apple.conf.

Agora é só fazer seu novo arquivo de configuração ser carregado:

sudo update-initramfs -u -k all

Problema resolvido, agora você pode usar o seu teclado do Mac no Ubuntu sem quebrar a cabeça para usar os F´s!

Se você  programa no Ubuntu, leia também:

Mais informações no Help Ubuntu (en)

Tabela de Key Codes para Javascript

Com o javascript é possível identificar as teclas pressionadas pelo usuário e com isso ativar funções: atalhos, controle de interface, jogos, etc.

Comecei um post sobre o controle da interface com teclado utilizando jQuery mas achei interessante (e útil) antes publicar a tabela com todas as Keycodes (códigos que identificam cada tecla do teclado) para javascript.

Segue a tabela com o código de cada tecla:

Key Pressed Key Code
backspace 8
tab 9
enter 13
shift 16
ctrl 17
alt 18
pause/break 19
caps lock 20
escape 27
page up 33
page down 34
end 35
home 36
left arrow 37
up arrow 38
right arrow 39
down arrow 40
insert 45
delete 46
0 48
1 49
2 50
3 51
4 52
5 53
6 54
7 55
8 56
9 57
a 65
b 66
c 67
d 68
e 69
f 70
g 71
h 72
i 73
j 74
k 75
l 76
m 77
n 78
o 79
p 80
q 81
r 82
s 83
t 84
u 85
v 86
w 87
x 88
y 89
z 90
left window key 91
right window key 92
select key 93
numpad 0 96
numpad 1 97
numpad 2 98
numpad 3 99
numpad 4 100
numpad 5 101
numpad 6 102
numpad 7 103
numpad 8 104
numpad 9 105
multiply 106
add 107
subtract 109
decimal point 110
divide 111
f1 112
f2 113
f3 114
f4 115
f5 116
f6 117
f7 118
f8 119
f9 120
f10 121
f11 122
f12 123
num lock 144
scroll lock 145
semi-colon 186
equal sign 187
comma 188
dash 189
period 190
forward slash 191
grave accent 192
open bracket 219
back slash 220
close braket 221
single quote 222

 

Para verificar qual tecla foi pressionada você pode conferir o Key Code no javascript, utilizando o código abaixo:

document.onkeyup=function(e){

   if(e.which == 17){
          //Pressionou CTRL, aqui vai a função para esta tecla.
     return false;
   }

}

Depois publico algumas utilizações dos keycodes, como por exemplo utilizar uma combinação do teclado para dar submit em um form, validar dados, etc…