Meu xterm
suporta uni-code. Por exemplo, ele exibe o sinal do Euro:
echo -e '\xe2\x82\xac'
Mas não exibe um caractere específico:
PL_BRANCH=$'\ue0a0'
echo $PL_BRANCH
Este caractere é exibido corretamente em outro terminal (terminador). Estou usando a mesma fonte nos dois terminais (Inconsolata).
Qual poderia ser o motivo e como posso corrigi-lo?
Na verdade, o caractere não está na fonte que você indicou. Você pode ver isso usando
xfd
:Isso mostra que o último codepoint é U+2423. Lendo um pouco mais adiante, verifica-se que o caractere está na área de uso privado do Unicode e (apesar do fato de que alguma fonte pode fornecê-lo) não tem significado padrão.
Desde o final de 2018 , o xterm pode carregar várias fontes TrueType, mas nenhuma das fontes disponíveis possui U+E0A0.
Se você puder identificar a fonte real que é usada, alguém poderá indicar quais versões do xterm podem lidar com isso.
Abordar um comentário sobre
terminator
(o qual eu não instalei)terminator
não usa as mesmas interfaces de biblioteca que o xterm, o que afeta a pesquisa de fontes (nenhuma delas está bem documentada). Você pode usarstrace
para ver quais arquivos de fonte ele realmente abre.Por exemplo, explorando isso um pouco com
strace
,konsole
epterm
no meu Debian/testing ambos abrem uma das fontes do OpenOffice para este personagem:(Esse é o arquivo da família "OpenSymbol").
Por outro lado, vejo que
rxvt-unicode
não exibe o caractere, apesar de ter vários padrões de fonte adicionados à sua lista de pesquisa para (tentar) contornar problemas como esse (o que acaba refletindo um problema no fontconfig). Muito provavelmente você encontraria algo semelhante (mas diferente ) nas bibliotecas que suportam konsole e pterm.O aplicativo de terminal moderno usa fontes adicionais além da padrão quando um caractere é desconhecido, mas o xterm usa exclusivamente uma única fonte (exceto nos casos especiais de caracteres de largura dupla)
O char necessário
$'\ue0a0'
,echo $'\ue0a0'
faz parte da fonte OpenSymbol, podemos usá-lo com,xterm
mas como essa fonte não inclui caracteres normais, isso a tornaria inutilizável, portanto, uma solução é usar uma fonte corrigida que inclua o caractere especial necessário e carregá-lo com o SegueTambém podemos definir o tamanho da fonte da seguinte forma
Essas configurações podem ser aplicadas ao usuário atual adicionando o seguinte
~/.Xresources
ou sistema amplamente em/etc/X11/app-defaults/XTerm
Links: 1 , 2 , 3 , 4 , 5 e 6