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 localidade xfce
. Por exemplo, se você o iniciou, .xinitrc
tente definir o código do idioma antes de executar como LANG=ru_RU.utf8 exec startxfce4
.