kde konsole i LANG
Adam Gorzkiewicz
adgor w isn.pl
Czw, 13 Mar 2003, 20:31:08 CET
Na fali niedawnych dywagacji nt. spójnosci środowiska kde, czytania przez
kdm pliku ~/.bash_profile, polskich literek w programie "konsole" itp. -
postanowiłem usystematyzować poszczególne zagadnienia i sprowokować
zainteresowanych do przemysleń.
Na dzień dzisiejszy rzecz przedstawia sie nastepująco:
KDE w przeciwieństwie do GNOME/GNOME2 nie uzywa zmiennej LANG - aplikacje
tego srodowiska korzystają z odpowiednich wpisów w
~/.kde/share/config/kdeglobals (generowanych via kcontrol). Dotyczy to
również programu "konsole" - tzn - jego otoczki, czyli menu, okien
dialogowych itp. Sam terminal natomiast rzadzi się tymi samymi prawami co
xterm, eterm wtf. (zmienną LANG dziedziczy po srodowisku, w jakim jest
uruchomiony i na tej podstawie jest zlokalizowany lub nie)
W przypadku uruchamiania srodowisk via kdm - kluczowa role odgrywa tutaj
skrypt /etc/X11/kdm/Xsession. Obecnie (poprawki z przed kilku godzin)
czyta on najpierw ~/.profile a jeśli ~/.profile nie istnieje a powłoką
uzytkownika jest bash - probuje przeczytać ~/.bash_profile.
Co się jednak dzieje gdy pliki ~/.{profile,bash_profile} nie istnieją lub
nie zawierają informacji o LANG a w dodatku (a moze przede wszystkim) w
/etc/sysconfig/i18n LANG=C ?
- konsole, xterm, eterm wtf nie wyswietlaja polskich literek (user sie
pyta - "co jest grane, przeciez całe kde mam po polsku?! - czy ja jakichś
fontów nie mam, czy co?!" )
Możliwe rozwiazania dotyczace programu "konsole", to:
1)
konsole domyslnie parsuje ~/.kde/share/config/kdeglobals i uruchamia sie z
parametrem LANG ustawionym na podstawie tegoż pliku.
ZALETY:
- konsole zachowuje sie jednakowo - niezaleznie od środowiska (user się
cieszy)
- nie trzeba ustawiać żadnych "dziwnych" :) zmiennych w ~/.profile
~/.bash_profile wtf
WADY:
- tak nie powinno być - konsole imo powinien się zachowywać tak jak inne
terminale - tzn - reagować na zmienną LANG ustawioną w standaerdowym
configu a nie jakims tam kcontrol
- realizacja tego wymaga czasu i wysiłku
2)
konsole zachowuje się jw. jedynie wówczas, gdy zostanie odpalony z
parametrem z linii komend - np. $ konsole --localized (nazwa opcji to
szczegół).
ZALETY:
- w konsole.desktop dajemy domyślnie "Exec=konsole --ls --localized" i po
kłopocie (user klikając na ikonkę ma frajde)
- zawsze istnieje mozliwość uruchomienia konsole w trybie "normalnym" (bez
owej opcji)
WADY:
- gdy odpalimy konsole inaczej niż z konsole.desktop (np. z menu twm w
którym nieswiadom zagadnienia user dokona wpisu '"Terminal KDE" f.exec
"exec konsole &"') - wówczas nie będzie pliterek (user się zastanawia "co
jest grane? - przecież działało?!")
- realizacja tego wymaga ..... jw
3)
Zmienna LANG jest ustawiana przez startkde, który
parsuje~/.kde/share/config/kdeglobals.
ZALETY:
- wszystkie terminale w środowisku kde maja pliterki.
- realizacja tego jest stosunkowo prosta
WADY:
- konsole poza srodowiskiem kde nie wyswietla polskich literek
- ... no właśnie - czy skrypt typu startkde powinien nam ustawiac zmienne
srodowiskowe? (mam mieszane uczucia)
Zapraszam zainteresowanych do komentarzy - podstawowe pytanie brzmi: "W
którym to powinno pójść kierunku?"
--
Adam Gorzkiewicz
adgor w isn.pl
Więcej informacji o liście dyskusyjnej pld-devel-pl