Home Index Search Links About Us
[LinuxFocus Image]
[Navegation Bar]
  Duyumlar   Belgelikler   Kuruluşlar  Öğütler  

X Biçimlendirimi:

Nedir o tüm noktalı dosyalar?

Yazar: Joel McCarty

Çeviri: Engin Kavas


Giriş

.xinitrc

.Xclients

.Xresources

Giriş

Özelleştirilmiş X oturumları oluşturarak, kendileri ve kullanıcıları için en iyi esnekliği yaratmanın nasıl olduğunu merak eden yeni sistem yöneticileri ve ayrık kullanıcılar için bu yazıda bazi bilgiler bulunmaktadır.

İlk olarak, bu yazıda X Windows sisteminin yıklı olduğu ve startx komutuyla başlatılacağı varsayıldığını belirtelim ( Çok kullanıcılı XDM için X biçimlendiriminin daha sonraki bir yazının konusu olacağını umuyorum). Şimdi, üzerinde çalışacağımız dosyaların yapılarına ve islevlerine bakalım.

xinitrc
xinitrc, startx komutuyla xinit'e aktarılan bir kabuk programıdır (script). Bu yazım genellikle bazı bütüneyaygın kaynakları biçimler (ekran koruyucu ayarlamalar, klavye tanımları vb.). Bu dosya X açılış işlemiyle beraber yürür.

Xclients
Bu dosya, xinitrc tarafından çağrılan istemcilerin aksine kullanıcıya özgü istemcileri başlatan users home dizini altındaki bir noktalı dosyadır.

Xresources 
Program benimsenmiş değerleri üzerine bindirme yapan widget tanımlamalarının bulunduğu dosyadır. Bu dosya genellikle font büyüklüklerinin, renklerinin ve genel görünümün belirlenmesinde ve ayrıca bazı hoş grafiksel efektlerin oluşturulmasında kullanılır

Bu ana kadar ilgili temel dosyaları gördük, şimdi bu dosyaların biçimlendiriminin nasıl olacağına girelim...

.xinitrc

startx komutunu verdikten sonra, xinit (ki bu komut X'in başlatılması işleminden sorumludur) ya /etc/X11/xinit/xinitrc (bütüneyaygın) ya da varsa ~/.xinitrc (yerel) dosyalarından birini devreye sokar. Eğer bu dosyalardan hiçbiri yoksa biçimlemdirim seçimi xinit işlemine bırakılır (ama bu iyi bir yol değildir). xinitrc dosyası (yerel olanı bütüneyaygın olanından önceliklidir), belirlenen şekilde çesitli X istemcilerini başlatan ve daha sonra exec kullanarak belirlenen pencere işletmenini başlatan bir kabuk programıdır.

xinitrc dosyası en basit yapısıyla aşağıdaki gibidir...

        # /etc/X11/xinit/xinitrc
        #!/bin/sh
                
        exec /usr/X11R6/bin/fvwm2
Bu haliyle dosya F(eeble) Virtual Window Menager  2 (Zayıf Sanal Pencere İşletmeni 2) çalıştırmaktan başka hiç birşey yapmamaktadır. Çok yararlı olmamakla beraber, yeni bir pencere işletmeni kurulumuna el atmak istiyorsanız kötü sayılmaz. Bazı kurulumlar eklediğimizde ve her X başlatıldığında bazı ek istemcilerini devreye sokmak istediğimizde işler biraz daha ilginçleşmeye başlıyor...
        #/etc/X11/xinit/xinitrc
        #!/bin/sh

        # backspace sorununun çözümlenmesi    
        xmodmap -e "keycode 22=BackSpace"

        # arka fonun ayarlanması
        xsetroot -solid LightSlateGrey

        # beş dakika sonra ekran koruyucunun başlatılması
        xset s 300

        # Genel bir dizilişle X istemcilerinin başlatİlması
        xterm -g 80x20+150+8 &        # bir terminal penceresi başlatır
        xterm -g 80x20+150+325 &      # ilkinin altında bir ikincisini baslatır
        xload -g +4+0 &               # bir cpu yükleme ölçümü başlatır
        xclock -g +815+0 -digital &   # parmaksayısal bir saati başlatır

        # Pencere Yöneticisinin Başlatılması
        exec fvwm2

Bu biçimlendirimi kullanan X oturumundan bir anlık görüntü

Şimdi her X açıldığında,  backspace sorununu gideren (birçok durumda), numlock'u kuran, insanı sinir eden arka fonu defeden ve birkaç programı başlatan bir dosyamız var.

Burada anımsanacak birkaç şey, eğer varsa users home dizini altındaki yerel bir dosyanın öncelikli olarak kullanılacağıdır (bütünüyle sistem geneli bir kurulum gozardı edilerek). Ayrica birçok komutla beraber kullanılan -g seçeneğine dikkat edin, bu bir çok X programında kullanılabilen geometri seçeneğidir. Geometri seçeneği, kullanıldıgında programın boyutunu ve yerleşimi şöyle belirler...

Length x Width+ X coordinate+ Y coordinate

Burada izlenmesi gereken xterm'in (ve diğer birçok terminal programının) karakter genişlikleri ve boyları çerçevesinde uzunluğu ve genişliğinin belirlenmesidir, diğer birçok program bu değerlerin belirlenmesinde piksel ölçüsünü kullanır (bundan dolayı eğer pek dikkatli değilseniz hoş minik pencereleriniz olur!). Son olarak, pencere işletmeninin kendisinden başka her komutun sonuna bir ampersand atandığına dikkat edin. Bu ampersand programa arka planda çalışmasını söyler (aksi takdirde bir sonraki komut, çalışan komut sona ertelenmeden başlamaz, bu da pek hoş olmaz). Bundan dolayı sadece Pencere işletmeni ön planda çalışır ve xinitrc ile başlatılan tüm işlemleri X'den çıkıldığında devir alır.

Artık elimizde bütüneyaygın olarak kullanılabilecek veya users home altına konularak belirlenen kullanıcılara göre istemcileri özelleştirebilecek oldukça işlevsel bir programımız bulunmaktadır (örnegin her bölüme özel bir program yazabiliriz, böylece mühendislik bölümündeki bir kullanıcının, muhasebe bölümündeki bir kullanıcıdan farklı X açılışı olur). Burada uygulayabildiğimiz yetenekler olası bir çok ilginç seçeneğin küçük bir kesimidir. Bunun bir kabuk programı olduğuna dikkat edilirse kullandığımız bir çok komutu burada da kullanabileceğimiz anlaşılabilir. Son olarak, sistem geneli bir xinitrc dosyası ile kullanıcıların kişisel kurulumlarını birleştirmek için xmodmap ve xrdb dosyalarını kullanarak bizi özelleştirilmiş seçeneklere gereksinimleri olan bu kullanıcıların home dizinlerindeki bir xinitrc dosyasını karıştırmak zahmetinden kurtaran bir örnege bir göz atalım (aşağıdaki bölümde ele alınan Xclients ve Xresources kullanımlarına dikkat edilmelidir):

        #/etc/X11/xinit/xinitrc
        #!/bin/sh

        # bütüneyaygın ve yerel kaynaklar için yer tanımlanıyor
        userclients=$HOME/.Xclients
        userresources=$HOME/.Xresources
        usermodmap=$HOME/.Xmodmap
        sysresources=/usr/X11R6/lib/X11/xinit/.Xresources
        sysmodmap=/usr/X11R6/lib/X11/xinit/.Xmodmap

        # sistem ve kullanıcı Xdefaults ve klavye tanımlamaları birleştiriliyor
                if [ -f $sysresources ];  then xrdb -merge $sysresources; fi
                if [ -f $sysmodmap ];     then xmodmap $sysmodmap; fi
                if [ -f $userresources ]; then xrdb -merge $userresources; fi
                if [ -f $usermodmap ];    then xmodmap $usermodmap; fi

        # backspace sorununun çözümlenmesi     
        xmodmap -e "keycode 22=BackSpace"

       # arka fonun ayarlanması
        xsetroot -solid LightSlateGrey

        # beş dakika sonra ekran koruyucunun başlatılması
        xset s 300


        # ~/.Xclients kontrolu ve diğer çalıştırılabilir sistemlerin çalıştırılması 
        # benimsenmiş istemciler (yerel ve bütüneyaygın birleştirilmiyor)
                if [ -f $userclients ]; then 
                        exec $userclients
                else
                
                # bazı benimsenmiş istemcilerin başlatılması                
                xterm -g 80x20+150+8 &
                xterm -g 80x20+150+325 &
                xload -g +4+0 &             
                xclock -g +815+0 -digital &                 
                # pencere işletmeninin başlatılması
                fvwm2
                
                fi
 

Bu biçimlendirimi kullanan X oturumunun bir anlık görüntüsü

Şimdi, burada, tuüm sistem klavye haritalarünü ve program benimsenmiş değerlerini (.Xmodmap ve .Xresources içinde tanımlanan) ilk kez yüklemiş olduk ve daha sonra da tüm kullanıcıya özel kurulumları (home dizinlerinde yer alan) yükledik. Sonra home ayarlamalarında veya sistemde yer almasalar da bazı ek kurulumları ekliyoruz (örnegin backspace düzeltimi ve numlock durumu gibi). Şimdi kullanıcıların kendi home dizinlerinde tanımlanmış XClients olup olmadığını kontrol ediyoruz (ve eğer varsa yüklüyoruz) daha başka bazı sistem geneli kurulumları başlatıyoruz (dikkat edilmelidir ki, bu iki satırdan önceki benimsenmiş değerler ve kaynaklarda olduğu gibi birlestirilmiyorlar). Burada belirtilmesi gereken bir nokta, eğer kullanıcının tanımlanmış herhangi bir Xclients dosyası yoksa X başlangıcı yukarıdakinin tersine orijinal ekran görüntüsünde olacak olmasıdır; bundan dolayı aynı xinitrc dosyasından hem sistem geneli görünüş hem de oldukça özelleştirilmiş ortamlar oluşturabiliriz. Son olarak yeğlediğimiz pencere işletmeninin veya işletmenlerinin olup olmadığına bakıyoruz, aksi takdirde yedekleme için fvwm2'ye güvenmek durumundayız (eğer bu yüklenemiyorsa sistem son çare olarak twm'i yükler). Artık tekrar tekrar script dosyamızla oynamamıza gerek bırakmayan bazı yerel dosyaları kurarak veya sistem geneli dosyaları bicimlendirerek kullanıcılarımıza geniş ölçüde özelleştirme sağlayan bir kuruluma sahibiz.

 Daha önceki örneklerde kullandıgımız bazı dosyalara bir bakalım...

.Xclients

~/.Xclients dosyası bir X oturumunun başlangıcında bazı okunacak ve çalıştırılacak kullanıcıya ozgü istemcileri bulundurur. Bu dosyanın sözdizimi (syntax) xinitrc dosyasındaki deyimlere uyar. Aşağıda önceki  ekran görüntüsünde kullanılan xinitrc tarafından yüklenen ~/.Xclients dosyası vardır. 

  

        xv -rmode -noresetroot -quit /usr/local/backgrounds/slate.xpm &
        kfm &
        kcontrol -init &
        kbgndwm &
        krootwm &
        kpanel &
        kvt &
        kwm
Önceki ekran görüntüsünde görebileceğiniz gibi, Xclients, merkezi bir xinitrc dosyası tutularak, özelleştirilmiş ortamlar geliştirmek için kullanılır. Burada belirtilmesi gereken bir şey de, yukarıdaki .xinitrc içinde, eger ~/.Xclients yoksa, hiçbir istemcinin bu dosyadan elde edilememesidir. Bu kurulumu her kullanıcının kendi beğendiği pencere işletmeninin Xclients aracılığıyla başlatabilmesi için kullandım. Eğer sisteme ozgü, sistem geneli istemciye gereksinim duyarsanız, onları bir kullanıcılar Xclients dosyası çalıştırmadan yükleyin (eğer ~/.Xclients bir pencere yöneticisi çağırımına sahipse). Son örnekte kullanılan benzer masaüstü biçimlendirimi için  KDE's konut sayfası'e bir göz atın. 3.0 Beta sürümü yeni çıktı ve de hoş bir çok GUI biçimlendirim elaygıtı içermekte. 
 
 

.Xresources

X'teki kaynaklar yerel (~/.Xresources) veya bütüneyaygın (/usr/X11R6/lib/X11/xinit/.Xresources) program ayarları tanımlar. X programları widget yapılarından oluşturulmuşlardır. Widget yapıları kontrol ögeleridir bundan dolayı font türleri, kayma çubuklari (scroll bars) ve arkafon ayarları için widget bulunmaktadır. Bir X programındaki hemen hemen hersey bir widget yapısıdır (bu nedenle özelleştirilebilir).

Widget yapıları genellikle silsilesel (hierarchic) bir yapı içersindedirler, örneğin bir menü çerçevesi (frame) içindeki widget içinde birkaç düğme widget yapısı olabilir.  İstenilen bir widget yapısındaki değişiklikleri bütünüyle özelleştirmek amacıyla her bir bileşen için erişimyolu (path) olarak ifade edilmelidir, bu erişimyolu silsilesel yapıdaki widget adlarıdır. Örnek olarak, aşağıda tüm terminal pencerelerimi standartlaştıran  ~/.Xdefaults dosyamdan alınmış satırlar verilmektedir.  

XTerm*Font:             -misc-fixed-bold-r-normal-15-140-75-75-c-90-iso8859-1
XTerm*Background:       black
XTerm*Foreground:       cyan
XTerm*scrollBar:        true
XTerm*saveLines:        500
Xterm*VT100.geometry:   80x24
Bu dosyada yaban kartlarının kullanımına izin verildiğine dikkat edin böylece...

*Foreground: cyan
*Background: black

deyimleri kesin Xdefaults ayarları olamayan programlar için standart bir göünüm tanımlar. Eğer siz de benim gibi yaban kartların izin verdiğinden daha fazla esneklik istiyorsanız ama yaşamınızı kurtaracak widget silsilesini anımsayamıyorsanız... editres'i deneyin! editres bir .Xdefaults dosyası yazmaya zorunlu kılmaksızın inanılmaz özel kurulumlar üretmeye olanak tanıyan GUI tabanlı bir biçimlendirme elaygıtıdır.   editres'in genel bir görünümüne   göz atın! Zannediyorum ki Xdefaults dosyasının genel bir görünüm ve özelleştirilmiş istemcilerin oluşturulmasında size büyük fırsatlar sağladığını farketmeye başladınız. xcalc'a bir göz atın. editres'in özelliklerini adım adım tümüyle anlatan kaynak için  Isolation'ın X öğütler sanal yöresini ziyaret edin.

Bu aylık da bu kadar. Ümit ediyorum ki her yeni kullanıcıya bir script yazarak saatlerinizi tüketmeksizin X 'in nasıl standartlaştırılacağını ve özelleştirilebileceğini görmüs oldunuz. Gelecek yazıda ( Miguel A. Sepulveda) X görüntüleme işletmeni (X Display Manager) kullanarak aynı iş istasyonu üzerinde nasıl çoklu X bağlantısı yapılabileceğine göz atacağız. Eğer bana herhangi bir sorunuz veya yorumunuz varsa  bana yazmaktan  çekinmeyin. Gelecek yazıya kadar...
 


Daha Çok Bilgi İçin:
  • xinit ve X. elyordam sayfalarını okuyun.


© 1998 Joel McCarty
Bu sanal yörenin bakımı Miguel A Sepulveda tarafından yapılmaktadır..