[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: