Portál AbcLinuxu, 27. dubna 2024 02:25
LC_COLLATE=CTo je dost málo. Jak bych to mohl nastavit? Ještě mě napadá další otázka: Abych měl v konzolích češtinu (mám framebuffer), musel jsem zavést takový ošklivý tlustý český font. Nešlo by vhodným nastavením těch proměnných docílit, abych žádný konzolový font použít nemusel? Jsem si 100% jist, že můj stroj má v BIOSu i české fonty. (A defaultně se přece fonty pro framebuffer natahují rovnou z ROM, jestli se nemýlím.)
export LANG="cs_CZ.iso88592" export LC_CTYPE="cs_CZ" export LC_COLLATE="C"Pořád netuším, k čemu je LC_COLLATE... Nikde v manuálových stránkách jsem se nějak nedočetl, jakých hodnot by měla taková proměnná nabývat a co se podle ní vůbec řídí. Zda je důležitá čí nikoliv, to je ve hvězdách. (I Linux má svá tajemství... ) Co se týká konzole a češtiny, při načítání příkazem v rc.sysinit se bez potíží načte správné rozložení klávesnice, font i znaková sada. Jenže během přihlašovacího procesu (tj. agetty, který spustí login) nezůstane zachováno nastavení znakové sady. Zachová se pouze rozložení klávesnice a font, což samo o sobě není k ničemu, když se přistupuje ke špatné části toho fontu. (Je to font typu drdos, který má přes 400 znaků.) Samozřejmě jsem důkladně přečetl všechny inicializační soubory pro bash ve všech profilech, ale nic závadného jsem tam nenašel. Zatím jsem to (nouzově) vyřešil tak, že jsem to z bootovacích skriptů přesunul do /etc/profile. Při každém přihlášení se pak spustí (mimo jiné):
/bin/loadkeys -q i386/qwertz/cz-us-qwertz.map.gz /usr/bin/setfont drdos8x16 -m 8859-2(Poznámka 1: Tohle je pro Arch Linux 0.7, jiné distro má třeba jinde jiné fonty...) (Poznámka 2: Kdybych totéž napsal do rc.sysinit, po přihlášení se zachová všechno kromě toho "-m 8859-2", které je pak nutné ještě jednou explicitně nastavit. Přitom ale pomocí -v (verbose) lze snadno ověřit, že se během bootu skutečně nastaví i ta znaková sada, která se pak během loginu záhadně vytratí.) Tohle ovšem není zrovna nejčistší řešení a přihlášení v některé z konzolí někdy ovlivní nastavení těch ostatních a jindy zase ne. (Nevysvětlitelné... ) Kdyby někdo věděl o lepším řešení, s nadšením bych to uvítal.
LC_ALL=cs_CZ
. Navic, pokud se prihlasujete pomoci KDM nebo GDM, tak to lze nastavit tam, jeste predtim, nez se prihlasite. Pka se vas to zeptra na ulozeni settings.
konzole pri bootu: Arch linux neznam, ale tipoval bych, ze tu konzoli po vasem nastaveni neco vyresetuje. zkoumal bych boot sekvenci.
[petr@soban ~]$ locale LANG=cs_CZ.UTF-8 LC_CTYPE="cs_CZ.UTF-8" LC_NUMERIC="cs_CZ.UTF-8" LC_TIME="cs_CZ.UTF-8" LC_COLLATE="cs_CZ.UTF-8" LC_MONETARY="cs_CZ.UTF-8" LC_MESSAGES="cs_CZ.UTF-8" LC_PAPER="cs_CZ.UTF-8" LC_NAME="cs_CZ.UTF-8" LC_ADDRESS="cs_CZ.UTF-8" LC_TELEPHONE="cs_CZ.UTF-8" LC_MEASUREMENT="cs_CZ.UTF-8" LC_IDENTIFICATION="cs_CZ.UTF-8" LC_ALL= [petr@soban ~]$
Tiskni Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.