27 de abr de 2009

Corrigindo o C acentuado no Ubuntu (gnome, gtk+)

Quem tem um teclado americano e quer usar o us_international às vezes depara-se com o c acentuado ao invés de aparecer o ç(cedilha). Isso sempre foi uma maldição para mim, mas sempre consegui resolver. Vou postar aqui uma dica que funciona comigo.

Para usar o ç (c cedilha) em aplicações GTK, e isso inclui o Gnome, você terá que alterar o arquivo /usr/lib/gtk-2.0/2.10.0/immodule-files.d/libgtk2.0-0.immodules de modo a acrescentar a lingua inglesa na lista de linguagens do módulo cedilla. Para isso, altere a linha:

"cedilla" "Cedilla" "gtk20" "/usr/share/locale" "az:ca:co:fr:gv:oc:pt:sq:tr:wa"

De modo que fique assim:
"cedilla" "Cedilla" "gtk20" "/usr/share/locale" "en:az:ca:co:fr:gv:oc:pt:sq:tr:wa"

Isso dirá a GTK que o módulo cedilla - responsável pelo reconhecimento do pressionamento '+c como ç - se aplique, também, a língua inglesa. Obviamente, isso só é necessário se você estiver usando inglês como língua em seu OS ou aplicativo. Você pode controlar esses valores por intermédio do arquivo de configuração /etc/environment. No meu caso, o arquivo está configurado, como:
JAVA_HOME=/opt/jdk1.6.0_06/jre

KDE_NO_IPV6=true
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"

LANGUAGE="en_US:en"
LANG="en_US.UTF-8"

Esse valores também podem ser controlados pelo arquivo de configuração /etc/default/locale.

Altere ele também.

Você deve forçar a GTK a carregar o módulo cedilla. Para isso, você terá que ter uma variável de ambiente chamada GTK_IM_MODULE e ela deverá ter o valor cedilla. Se essa variável não explicitar o módulo cedilla, ele não será carregado e você não terá o c cedilha, mas sim o c acentuado, mesmo que tenha acrescentado o "en" no arquivo libgtk2.0-0.immodules.
Essa variável de ambiente pode ser configurada em qualquer um de vários lugares

Se quiser, simplesmente rode:
sudo -i
echo "export GTK_IM_MODULE=cedilla" >> /etc/environment
exit

Reinicie o X (ou a máquina se quizer).

Fonte: http://www.marciowb.net/blog/2008/07/c-acentuado-vs-c-cedilha-no-firefox32