O problema aconteceu depois do pós install do archlinux, depois de configurar o xorg.
Aqui no firefox, e em outros aplicativos, tudo funciona normalmente, consigo digitar todos os acentos normalmente (ãẽĩõũáéíóú).
Mas, não no terminal, nem nos terminais em GUI, como o konsole que tô usando agora, nem no ttui.
Quando eu fiz a instalação, eu acabei escrevendo errado a lingua do locale, ficou: LANG=pr_BR-UTF-8 ao invés de: LANG=pt_BR-UTF-8. Agora no pós install, eu corrigi e gerei os locales novamente, será que eu esqueci alguma coisa?
O layout de teclado tá setado direitinho nas configurações do kde.
Como você fez a correção do locale?
Roda o comando
$ locale
e verifica a saída, se está tudo corretolocale: Cannot set LC_CTYPE to default locale: No such file or directory locale: Cannot set LC_MESSAGES to default locale: No such file or directory locale: Cannot set LC_ALL to default locale: No such file or directory LANG=pt_BR LC_CTYPE="pt_BR" LC_NUMERIC="pt_BR" LC_TIME="pt_BR" LC_COLLATE="pt_BR" LC_MONETARY="pt_BR" LC_MESSAGES="pt_BR" LC_PAPER="pt_BR" LC_NAME="pt_BR" LC_ADDRESS="pt_BR" LC_TELEPHONE="pt_BR" LC_MEASUREMENT="pt_BR" LC_IDENTIFICATION="pt_BR" LC_ALL=
Esses erros aí em cima eu corrigi com:
export LC_ALL="pt_BR.UTF-8"
Agora vai sem erros:LANG=pt_BR LC_CTYPE="pt_BR.UTF-8" LC_NUMERIC="pt_BR.UTF-8" LC_TIME="pt_BR.UTF-8" LC_COLLATE="pt_BR.UTF-8" LC_MONETARY="pt_BR.UTF-8" LC_MESSAGES="pt_BR.UTF-8" LC_PAPER="pt_BR.UTF-8" LC_NAME="pt_BR.UTF-8" LC_ADDRESS="pt_BR.UTF-8" LC_TELEPHONE="pt_BR.UTF-8" LC_MEASUREMENT="pt_BR.UTF-8" LC_IDENTIFICATION="pt_BR.UTF-8" LC_ALL=pt_BR.UTF-8
Mas no próximo boot, LC_ALL não está setado
Eu corrigi o locale naquele arquivo, /etc/locale.conf, eu tinha escrito errado, e corrigi agora a pouco.
De acordo com esse passo na arch wiki:
Create the locale.conf(5) file, and set the LANG variable accordingly:
/etc/locale.conf --------------------- LANG=en_US.UTF-8
No meu tá assim:
LANG=pt_BR.UTF-8
Opa! O problema era o LC_ALL mesmo
echo "LC_ALL=pt_BR.UTF-8" | sudo tee -a /etc/environment
Isso aí resolveu, valeu!
Você não deve usar
LC_ALL
como variável de ambiente.LC_ALL
é só pra debugFaz o seguinte:
Vai em
/etc/locale.gen
e tenha certeza quept_BR.UTF-8 UTF-8
está descomentadoEntão rode
# locale-gen
Depois roda o seguinte comando:
# localectl set-locale LANG=pt_BR.UTF-8
Pra aplicar imediatamente, roda os comandos
$ unset LANG $ source /etc/profile.d/locale.sh
Imagino que com isso você conseguirá fazer funcionar direitinho
Qualquer coisa dá uma lida no Arch Wiki referente a locales
https://wiki.archlinux.org/title/locale
Edit:
O problema reside no fato de que não existe locale
pt_BR
. O correto épt_BR.UTF-8
Quando você usa o
LC_ALL
ele sobrescreve todos os outros locales. Inclusive é por isso que ele não deve ser usado fora de ambiente de debug. A questão aqui é que noLC_ALL
você colocou o locale correto, então pareceu uma solução. Mas a solução mesmo é você alterar todas as variáveis para o locale correto,pt_BR.UTF-8
, desativando oLC_ALL
Ahhhh, por isso que não funcionava no meu também. Vou poder tirar a minha gambiarra do sistema