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...
|