rxvt a znaky s nabodeníčky

Jan Pobrislo ccx na webprojekty.cz
Úterý Září 11 12:03:49 CEST 2012


In article <mailman.1032.1347268244.1133.linux na linux.cz>, Josef Štengl wrote:
> Ahoj,
>    nemáte někdo tušení jak se urxvt terminál donutí aby ukazoval i znaky
> s nabodeníčky? Nyní mi znaky sice zobrazuje, ale nabodeníčka to
> nezobrazuje a nemohu/nevim jak najít relevantní nastavení.
>
> Díky, Josef

Za prvé terminál musí být spuštěn ve stejném locale jako programy které
v něm pouštíte a toto locale musí podporovat vámi požadované znaky
(např. cs_CZ.UTF-8 nebo en_US.UTF-8). Nestačí že se locale nastaví v
inicializačním souboru pro interaktivní shell, protože samotný terminál
o vybraném kódovaní neví ikdyž program locale v něm spuštěný ho zobrazí.

V linuxu si můžete zkontrolovat správné nastavení prostředí tímto
příkazem:

for pid in $(pgrep rxvt); do
	echo -e "\n$pid:"
	tr '\0' '\n' </proc/$pid/environ | egrep '^LC|LANG'
done

Dále jsou samozřejmě potřeba fonty které obsahují dané znaky. Tady
doporučuji vyhnout se zastaralé specifikaci XLFD (mnoho položek
oddělených pomlčkami) a použít fontconfig (v urxvt se zadává pomocí
prefixu xft:). Detailní popis syntaxe najdete v man 5 fonts-conf.
Například já osobně používám písmo Fixed které většinou najdete v balíku
fonts-misc.

URxvt.font: xft:Fixed:semicondensed:pixelsize=13:lang=cs-CZ

Důležité je vybrat takový jazyk který obsahuje dané znaky, konkrétně
font Fixed existuje i variantách pro kódovaní latin-1 a další, které z
nějakých důvodů fontconfig vybere pokud jazyk nezadáte explicitně. Výběr
který fontconfig provádí si můžete nechat zobrazit pokud spustíte urxvt
s proměnnou prostředí FC_DEBUG=1. U položky charset je zobrazena bitová
mapa podpory jednotlivých code-pointů (znaků) v systému unicode.

Daný soubor s fontem (v mém případě /usr/share/fonts/misc/6x13.pcf.gz)
si můžete zobrazit například v editoru fontforge a ověřit si že má znaky
které chcete.

Pokud zadáváte více fontů, dejte pozor na to že musí být stejně velké
nebo menší než první zadaný font pokud se nejedná o fonty
proporcionální.


Další informace o konferenci Linux