Re: Xresources dizini ve X acilisi
* Volkan YAZICI <volkany@phreaker.net> [2004-01-11 15:56:07+0200]
> merhaba, Recai Hocam'in cozdugu uzre startx komutu eger xdm, gdm ya da
> kdm falan kullanmiyorsaniz /etc/X11/Xresources/ dizini altindaki
> script'leri algilamiyor. bunun icin bir cozumu olan var mi acaba?
Kisa cevap: xdm, gdm veya kdm kullanarak :-) Bu bir ozellik, yani soyle
bir mantigi var galiba. "Bu kullanici ne yaptigini biliyor. X'e girisi
`x-display-manager' uzerinden degil ve butun ilklendirmeleri
`~/.xinitrc' ile yonetiyor. O halde ona karismayalim" gibi...
`/etc/X11/Xresources'un okunmamasi esasinda `/etc/X11/Xsession.d'nin
isleme alinmamasindan kaynaklaniyor. Biraz kafa utulemek pahasina olayi
analiz edeyim:
Bak simdi, `startx' ne yapiyor? O betige bakalim. Kritik satir su:
xinit $client $clientargs -- $server $display $serverargs
Peki buradaki `$client' ve `$clientargs' nedir? Cevap ayni betigin ilk
bolumlerinde:
userclientrc=$HOME/.xinitrc
...
sysclientrc=/usr/X11R6/lib/X11/xinit/xinitrc
ve
if [ -f $userclientrc ]; then
defaultclientargs=$userclientrc
elif [ -f $sysclientrc ]; then
defaultclientargs=$sysclientrc
fi
...
if [ x"$clientargs" = x ]; then
client="$defaultclientargs"
...
Yukaridaki semanin tercumesi su: Kullanici dizininde eger bir `.xinitrc'
mevcut ise sadece onu dikkate al, `/etc/X11/xinit/xinitrc'yi *atla*. Bu
son dosyaya gelince, bak onun icinde ne mevcut:
. /etc/X11/Xsession
Bu son dosya butun `x-display-manager' acilislarinda da kullanilan
kritik oturum ilklendirmesi. Kritik cunku `/etc/X11/Xsession.d'
altindaki butun betikleri de calistiriyor ki o betiklerden birisi:
`/etc/X11/Xsession.d/30xfree86-common_xresources'nin icinde de su
satirlari okuyoruz:
if [ -d "$SYSRESOURCES" ]; then
RESOURCEFILES=$(run_parts $SYSRESOURCES)
if [ -n "$RESOURCEFILES" ]; then
for RESOURCEFILE in $RESOURCEFILES; do
xrdb -merge $RESOURCEFILE
done
fi
fi
if grep -qs ^allow-user-resources "$OPTIONFILE"; then
if [ -f "$USRRESOURCES" ]; then
xrdb -merge $USRRESOURCES
fi
fi
Yani `/etc/X11/Xresources' altini ve (eger buna izin verilmis ise)
`~/.Xresources' dosyasini isle.
Volkan'in uzun sure cozemedigimiz bir Turkceleme sorunu vardi. Onun da
musaadesiyle bilgi vereyim. Volkan, Turkce-NASIL'i defalarca kontrol
ederek uygulamasina ragmen `xterm' altinda Turkce karakterleri bir turlu
goruntuleyemiyordu. Bir aksam makinasina `ssh' yaptim ve uzun
ugraslardan sonra problemi cozduk. Baska bazi problemlerin yanisira
kritik problem kaynagi Volkan'in X'i startx ile `~/.xinitrc' kullanarak
baslatmasiydi. Bu yuzden Turkce-NASIL'da onerilen
`/etc/X11/Xresources/user-tr' dosyasi isleme alinmiyor ve biteslemli
Turkce fixed yazitipleri `xterm' tarafindan taninmiyordu. Saniyorum
bunun neden oldugu yukaridaki analizle anlasilmistir. (Turkce-NASIL'da
buna uygun bir degisiklik de yapacagim.)
> Yani X'i herhangi bir kullanicinin her acisinda yapilmasini istedigimiz
> komtulari cagirmasini nasil saglayabiliriz?
`~/.xinitrc' kullanarak `startx' ile devam edeceksen isleri kendin
yoneteceksin demektir. Yukaridaki betiklerle oynayarak istedigin sonuca
ulasabilirsin ama bence bu cirkin olur. Makul bir oneri `~/.xinitrc'
dosyasina su satirlari yazmak olabilir: (Degiskenleri uygun sekilde
atayarak)
if [ -d "$SYSRESOURCES" ]; then
RESOURCEFILES=$(run_parts $SYSRESOURCES)
if [ -n "$RESOURCEFILES" ]; then
for RESOURCEFILE in $RESOURCEFILES; do
xrdb -merge $RESOURCEFILE
done
fi
fi
Bir baska oneri de su olabilir. Madem ki `~/.xinitrc' bulunmadiginda
`/etc/X11/Xsession' calistiriliyor, bu dosyayi hic kullanma ve
ilklendirme islemlerini `/etc/X11/Xsession.d' ve `/etc/X11/Xresources'
uzerinden yurut. (Bunu denemedim, ne tur sorunlar cikar, bilemiyorum.)
--
roktas
Reply to: