Fundo:
- Eu tenho alguns caracteres unicode no meu prompt (marcadores de status git essencialmente)
- Estou executando o urxvt no xfce no arch linux.
Estou usando a fonte DejaVu Sans Mono for Powerline, especificada na linha .Xresources:
URxvt*font: xft:DejaVu Sans Mono for Powerline:pixelsize=14
Quando inicio o urxvt, os caracteres unicode não são renderizados corretamente.
Por exemplo
● é processado como
No entanto, se eu iniciar um novo a urxvt
partir do primeiro terminal, tudo será processado corretamente.
Não parece haver nenhuma diferença no ambiente entre os dois terminais.
Qual poderia ser a diferença entre a primeira chamada e a chamada aninhada? Suspeito que a fonte não esteja correta na instância 'externa', mas não sei como verificar a fonte de uma janela X em execução
ATUALIZAÇÃO : Parece que o código do idioma não está configurado corretamente no iniciador de aplicativos para o xfce4, mas presumivelmente o shell dentro do primeiro terminal possui seu próprio código de idioma, o que significa que os dois shells têm o mesmo código de idioma.
adicionando
export LANG=en_GB.UTF-8
para .xinitrc antes que o xfce4 seja iniciado parece corrigi-lo. Eu suspeito que essa não seja a maneira correta , mas funciona bem o suficiente para mim.
captura de tela demonstra o problema:
Nota: mudei esta pergunta de serverfault.com - espero que este site seja mais apropriado
LC_ALL=ru_RU.utf8 urxvt
partir da sessão X atual. Se os caracteres russos (e outros Unicode) ficarem corretos, você estará no caso em que seu ambiente estiver sendo executado no código C. Portanto, verifique as configurações de localidadexfce
. Por exemplo, se você o iniciou,.xinitrc
tente definir o código do idioma antes de executar comoLANG=ru_RU.utf8 exec startxfce4
.Respostas:
Não sei ao certo qual é a causa do problema, mas as etapas abaixo podem ajudar:
Confirme se o código do idioma está configurado corretamente
Habilite os locais desejados em /etc/locale.gen e execute
locale-gen
Verifique se a fonte desejada pode ser carregada
fonte
URxvt.letterSpace: -10
e todos os caracteres exibidos como caixasPara mim, foi um problema com os glifos de linha de força no urxvt. Acabei de descobrir que definir o código do idioma
localectl set-locale LANG=en_AU.UTF-8
corrige o problema para mim, pelo menos com a fonte powerline terminess (não tentei outras fontes)Não estava funcionando
en_US.UTF-8
, tenho certeza, porque posso reproduzi-lo ... agora isso é estranho ... mas funciona agora.fonte
fonte