Tło:
- Mam kilka znaków Unicode w moim monicie (zasadniczo znaczniki statusu git)
- Uruchamiam Urxvt pod XFCE na Arch Linux.
Używam DejaVu Sans Mono dla czcionki Powerline, określonej za pomocą wiersza .Xresources:
URxvt*font: xft:DejaVu Sans Mono for Powerline:pixelsize=14
Kiedy uruchamiam urxvt, znaki Unicode nie renderują się poprawnie.
Na przykład
● renderuje jako â
Jeśli jednak zacznę nowy urxvt
od wewnątrz pierwszego terminala, wszystko będzie renderowane poprawnie.
Wydaje się, że nie ma żadnej różnicy w środowisku między dwoma terminalami.
Jaka może być różnica między pierwszym wywołaniem a wywołaniem zagnieżdżonym? Podejrzewam, że czcionka jest niepoprawna w wystąpieniu „zewnętrznym”, ale nie jestem pewien, jak sprawdzić czcionkę działającego okna X
AKTUALIZACJA : Wygląda na to, że ustawienia regionalne nie są poprawnie skonfigurowane w programie uruchamiającym aplikacje dla xfce4, ale przypuszczalnie powłoka wewnątrz pierwszego terminala wprowadza własne ustawienia regionalne, co oznacza, że obie powłoki mają takie same ustawienia regionalne.
dodawanie
export LANG=en_GB.UTF-8
na .xinitrc przed uruchomieniem xfce4 wydaje się to naprawić. Podejrzewam, że to nie jest właściwy sposób, ale działa dla mnie wystarczająco dobrze.
zrzut ekranu pokazuje problem:
Uwaga: przeniosłem to pytanie z serverfault.com - mam nadzieję, że ta strona jest bardziej odpowiednia
LC_ALL=ru_RU.utf8 urxvt
z bieżącej sesji X. Jeśli rosyjskie znaki (i inne znaki Unicode) są poprawne, oznacza to, że twoje środowisko działało w ustawieniach regionalnych C. Sprawdź ustawienia regionalne dlaxfce
. Na przykład, jeśli zostałeś uruchomiony,.xinitrc
spróbuj ustawić ustawienia regionalne przed uruchomieniem jakLANG=ru_RU.utf8 exec startxfce4
.Odpowiedzi:
Nie jestem do końca pewien, co jest przyczyną problemu, ale poniższe kroki mogą pomóc:
Sprawdź, czy ustawienia regionalne są poprawnie skonfigurowane
Włącz żądane ustawienia narodowe w /etc/locale.gen i uruchom
locale-gen
Upewnij się, że można załadować żądaną czcionkę
źródło
URxvt.letterSpace: -10
i wszystkie znaki są wyświetlane jako polaDla mnie to był problem z glifami Powerline w urxvt. Właśnie dowiedziałem się, że ustawienie regionalne za pomocą
localectl set-locale LANG=en_AU.UTF-8
rozwiązuje problem, przynajmniej z czcionką powerline terminess (nie próbowałem innych czcionek)To nie działało
en_US.UTF-8
, jestem całkiem pewien, ponieważ mogę to odtworzyć ... to dziwne ... ale teraz działa.źródło
źródło