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