domingo, 3 de abril de 2011

Configuração de teclado: udev + UPower

Final de semana fui atualizar meu Gentoo, e uma das atualizações disponíveis era a do gnome. Finalizada a instalação percebo que existem algumas diferenças no funcionamento do teclado e do mouse.

Antes, o teclado e mouse funcionavam com o HAL, e agora utilza udev. Devido a isso, meu teclado, que é padrão Americano Internacional, não estava mais acentuando.

Após muita pesquisa, verifiquei que o HAL é considerado obsoleto, e que no lugar dele, usa-se o udev e UPower.

A dificuldade foi que, com o HAL, era possível desativar a inserção automática de dispositivos e configurá-los através do arquivo /etc/X11/xorg.conf. Com o udev/UPower, isso não foi possível. Mas quando o udev carregava a configuração do teclado, ele definia o layout como us, e não como us_intl.

Era possível verificar tudo isso através do log do servidor X (/var/log/Xorg.0.log) que exibia uma mensagem como a abaixo:

[  3955.251] (II) XINPUT: Adding extended input device "Power Button" (type: KEYBOARD)
[  3955.251] (**) Option "xkb_rules" "evdev"
[  3955.251] (**) Option "xkb_model" "evdev"
[  3955.251] (**) Option "xkb_layout" "us"



Verificado isso, comecei nova pesquisa, e nesta wiki do ArchLinux, a solução foi encontrada. Para configurar o teclado agora, é preciso editar o arquivo /etc/X11/xorg.d/10-evdev.conf, que tem uma sintaxe muito parecida com o xorg.conf.

No meu caso, precisei criar o diretório xorg.conf.d dentro de /etc/X11, e copiar um arquivo base de /usr/share/X11/xorg.conf.d.

Feito isso somente inseri algumas linhas na área definida para o teclado, ficando como o abaixo:

Section "InputClass"
        Identifier "evdev pointer catchall"
        MatchIsPointer "on"
        MatchDevicePath "/dev/input/event*"
        Driver "evdev"
EndSection

Section "InputClass"
        Identifier "evdev keyboard catchall"
        MatchIsKeyboard "on"
        MatchDevicePath "/dev/input/event*"
        Driver "evdev"
    Option "XkbLayout" "us_intl,br"
    Option "XkbOptions" "grp:menu_toggle,grp_led:scroll"


EndSection

Section "InputClass"
        Identifier "evdev touchpad catchall"
        MatchIsTouchpad "on"
        MatchDevicePath "/dev/input/event*"
        Driver "evdev"
EndSection

Section "InputClass"
        Identifier "evdev tablet catchall"
        MatchIsTablet "on"
        MatchDevicePath "/dev/input/event*"
        Driver "evdev"
EndSection

Section "InputClass"
        Identifier "evdev touchscreen catchall"
        MatchIsTouchscreen "on"
        MatchDevicePath "/dev/input/event*"
        Driver "evdev"
EndSection

As linhas adicionadas são as em negrito.

Aproveitei a oportunidade e pesquisei também como fazer para definir mais de um layout de teclado para o caso de eu querer ligar um teclado abnt2. Como pode-se ver, a linha Option "XkbLayout" "us_intl,br" define dois layouts, o us_intl e o br. A linha seguinte Option "XkbOptions" "grp:menu_toggle,grp_led:scroll" diz que, se pressionar o botão de "menu de contexto" do teclado, haverá a troca de layout, e o led de scroll lock irá indicar esta troca.


A tecla de "menu de contexto" foi uma escolha pessoal, visto que é uma tecla que eu não utilizava para nada. Outras opções podem ser vistas nesta wiki do Gentoo.

Nenhum comentário:

Postar um comentário