| 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...  .xinitrcstartx 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/fvwm2Bu 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. 
 
 
 .XresourcesX'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...
 |