Açık sistemlerin kullanıcıya sunduğu en büyük özelliklerinden biri olan X Window, Linux'un doğduğu andan itibaren destek görmeye başladı. İnternet üzerinde bedava dağıtılmasıyla Linux dağıtımı altında bir standart olarak kendine yer edindi. Daha önce bir UNIX sistem üzerinde X Window kullandıysanız bu bölümü kavramak gayet kolay olacaktır.
X Window'un Linux altındaki son sürümü Nisan 1994'te çıkan X11R6'dır. Aradan uzunca bir süre geçmesine rağmen bu sürümde kayda değer bir değişiklik olmadı. Bunun yanında X Window'da kullanılan pencere yöneticisi (window manager) çeşidi neredeyse 20'ye yaklaştı. Pencere denetleyicilerin herbirinin farklı zevkten kullanıcılar için farklı özellikleri vardır. Bunlar, X Window'a açılan ve uygulama programları ile kullanıcı arasındaki bilgi alış-verişini sağlayan arabirimdir.
X Window (veya kısaca X) istemci-sunucu modeline göre çalışır. Ana makina üzerinde çalışan X sunucusu, grafik donanımı üzerindeki tüm giriş-çıkış yetkilere sahiptir. Bir X istemcisi, sunucuya bağlanarak istediği işlemleri sunucuya yaptırır. İstemcinin görevi emir vermek, sunucunun ise verilen emri görünür hale getirmektir.
Aslında bilinmesi gereken en önemli kavram, X'in ağ tabanlı bir yapıya sahip olmasıdır. Bir istemci ve sunucunun olduğu her yerde ağdan da söz edebiliriz. X, ister konsol üzerinde (yerel makinada) isterse ağ üzerinde (uzak makinada) çalışabilir. Başka bir makina üzerindeymiş gibi o makinanın X Window uygulama ve kaynaklarından yararlanabilirsiniz.
Yukarıda kısaca bahsedilen pencere yöneticisi, ekrandaki pencerelerin denetiminde söz sahibi olan tek programdır. Her pencerenin nasıl görüneceğini, ne kadar büyük olduğunu bilir; kullanıcı tarafından verilen küçültme, pencere kapatma gibi komutları işler.
X Window' un 386 ve yukarı tabanlı makinalar için geliştirdiği sisteme Xfree86 adı verilir. Linux da Xfree86'yı Slackware dağıtımına ekleyerek kullanıcıların hizmetine sunmuştur. Xfree86 sürüm 3.1'in desteklediği kartlara ait çipsetler kitabın başında verilmiştir. Bu çipsetler, PCI ve VLB dahil, her tür veri yoluna sahip anakartlar üzerinde sorunsuz çalışır.
Linux ile uyumlu çalışabilen yeralan çipsetlerin hepsi 256 renk (8 bit) desteklerler. Eğer kart üzerinde yeteri kadar RAM var ise (en az 2MB), ekranınızı 16 bit (65536 renk) açma imkanınız olur. Özellikle S3 kartları Linux Xfree86 altında sorun çıkartmadan 65536 rengi kolayca gösterebilirler.
X Window üzerinde rahatça çalışabilmek için en az 486 tabanlı bir bilgisayara ihtiyacınız var. Bana sorarsanız rahat bir çalışma için 16 MB RAM ve Pentium 100 bilgisayar işinizi görecektir. Renk sorunu yaşamamak için ise 2MB görüntü hafızası olan bir grafik kartı kullanın. X Window, sistemi fazlaca yüklediğinden takas alanı için fazla söz söylemeye gerek yok sanırım. Unutmayın ki, X'e yatırım yapmak istiyorsanız paranızı hafıza için ayırın.
Xfree86, Slackware tarafından dağıtılan paketlerin X bölümünde yeralıyor. Herhangi bir nedenden dolayı sistemde X yoksa 'pkgtool' yardımıyla sisteminize kurun. Gerekli kütüphaneleri eklemeyi unutmayın.
X Window kurulumu basit olmasına rağmen konfigürasyonu biraz başınızı
ağrıtabilir. Slackware 2.2 dağıtımı ile gelen konfigürasyon
programları, kullanıcının hata yapmasını affetmiyordu. Yanlışlıkla
basılan bir tuş yüzünden baştan başlamak zorunda kalınabiliyordu.
Slackware 3.3 altında, grafik arabirimini kullanan XF86Setup
programı
ile bir fare yardımıyla rahatlıkla ve kısa sürede X konfigürasyonu
tamamlanabiliyor. Ücretli sürümlerden bir tanesi elinizin altında ise
işler daha da kolaylaşıyor, neredeyse donanım hakkında hiç bir şey
bilmeden X kurulabiliyor.
Konfigürasyon işlemlerinden önce hazırlık aşamasında XF86Config(1)
ve
Xfree86(1)
man sayfalarını okuyun. Bu dosyalarda X Window için
oluşturulacak olan /etc/XF86Config
dosyasının hakkında detaylı bilgi
vardır. XF86Config dosyası X açılırken okunur ve fare, ekran
çözünürlüğü, renk sayısı gibi özellikler belirlenir. Ekranınızın
kalitesine göre açmak istediğiniz çözünürlük hakkında bir miktar fikir
sahibi olmalısınız. Bazı eski ekranlar 1024x768 çözünürlüğü
desteklemezler, bu yüzden 800x600 gibi düşük bir çözünürlük ile işe
başlayın. Daha ayrıntılı bilgi için XFree86-HOWTO dökümanlarına göz
atabilirsiniz.
Linux'un Slackware 3.3 sürümü, kullanıcıya X konfigürasyonu için iki program sunar. Birincisi, yukarıda da belirtilen ve zayıf bir arabirimi olan xf86config, diğeri de XF86Setup. İkincisini kullanmanız, her bakımdan avantaj olarak göze çarpıyor. Program, bazı ayarlamaları kullanıcıya bırakmadan (örneğin çipsetin seçimi) kendisi hallediyor. Burada yeralan soruları doğru bir şekilde cevapladıktan sonra X açmaya hazırsınız demektir.
Aşağıda XF86Config dosya formatı hakkında biraz bilgi verilmiştir. X Window'u kurduktan sonra kendi zevkiniz doğrultusunda bu dosya üzerinde değişiklik yapabilirsiniz.
Dosya, pekçok bölümden (section) oluşur ve her bölüm, Section "bölüm-ismi" ve Endsection kelimeleri arasında yeralır. Ekran yazıtiplerinin ve kullanılacak renklerin patikasını belirleyen bölüm dosya altında şu şekilde görünecektir :
Section "Files" RgbPath "/usr/X11R6/lib/X11/rgb" FontPath "/usr/X11R6/lib/X11/fonts/misc" FontPath "/usr/X11R6/lib/X11/fonts/75dpi" EndSection
İstediğimiz kadar yazıtipi girişi yapabiliriz. Üç tanım satırının arasına, örneğin X altında kullanacağımız Türkçe yazıtiplerini yerleştirelim. Bu yazıtiplerini daha önce kurmuş ve gerekli konfigürasyon işlemlerini yapmış olmanız gereklidir. X için Türkçe yazıtiplerini ftp.metu.edu.tr adresinde bulabilirsiniz. Adreste yazıtiplerinin nasıl kurulacağına ilişkin gerekli dökümanlar da bulunmaktadır.
Section "Files" RgbPath "/usr/X11R6/lib/X11/rgb" FontPath "/usr/X11R6/lib/X11/fonts/misc" FontPath "/usr/X11R6/lib/X11/fonts/75dpi" FontPath "/usr/X11R6/lib/X11/fonts/turkce/75dpi" EndSection
Klavye ve farenin tanımlandığı bölümler, ``Keyboard'' ve ``Pointer'' adı altındadır. Açıklama satırlarının başında ``#'' karakteri yeralır. Örnek dosyanın yeraldığı makinada farenin kullandığı protokol, ``MouseSystems'' olup hemen her standart fare için bu protokol önerilir. Diğer protokoller arasında Busmouse, Logitech, Microsoft, MMSeries, Mouseman, MouseSystems, PS2, MMHitTab/ vardır. X açıldığı zaman herşey yolunda gitmesine rağmen farenin ikonu hareket etmiyor veya ekranda deli gibi oradan buraya koşuşturuyorsa farenin kullandığı protokolü değiştirin. Bazı farelerin altındaki küçük anahtarın bulunduğu konumu değiştirmeniz de işe yarayabilir.
Section "Keyboard" Protocol "Standard" Autorepeat 500 5 ServerNumLock EndSection Section "Pointer" Protocol "MouseSystems" Device "/dev/mouse" Emulate3buttons # iki tuslu microsoft farede 3. tusun, # iki tusla basilmasini saglamak icin... ChordMiddle # 3 tuslu Logitech fareler icin EndSection
Farenin kullandığı seri port /dev/mouse 'dur. Bu dosya, genellikle uygun olan bir seri arabirime (örneğin /dev/ttyS0) bağlıdır.
XF86Config
dosyasının en önemli bölümü monitörle ilgili bilgilerin
yeraldığı kısımdır. Bu bölümde monitörün yatay (Horizontal Sync) ,düşey
frekansları (VertRefresh) ve frekans aralıklarıyla sürücü saat frekansı
(dot-clock frequency) belirtilir. Kullandığınız monitörle ilgi
konfigürasyon sırasında girilen bilgiler bu bölümde yeralır.
Section "Monitor" Identifier "CTX 5468 NI" HorizSync 30-38, 47-50 VertRefresh 50-90 # Modes : Name Dotclock horiz vert Modeline "640x480" 25 640 664 760 800 480 491 ... ... EndSection
``Identifier'', kullanılan monitörün tipini verir. X bunu kullanmaz, istediğiniz herhangi bir kelimeyi yazabilirsiniz. HorizSync, monitörün yatay frekansını kHz cinsinden belirtir. VertRefresh ise monitörün tazeleme frekansı olup Hz cinsindendir. Her iki değer, frekans aralığı veya tek sayı olarak verilebilir.
``Modeline'' kelimesi ile başlayan satırda belirli bir çözünürlük için gerekli ``Dotclock'' (sürücü saat frekansı) ile yatay ve düşey tarama frekansları MHZ cinsinden yazılıdır. Bu tanımlar ile ilgili daha geniş bilgiyi /usr/X11/lib/X11/doc dizini içinde bulabilirsiniz. Yukarıda yeralan bilgileri kendiniz için kullanmamanız, monitörünüzün sağlığı açısından tavsiye edilir.
Monitör bilgilerinin yeraldığı bölümden sonra ekran ve alt bölümü olan görüntü bölümü gelir.
Section "Screen" ... Depth 8 Modes "1024x768" "800x600" ViewPort 0 0 Virtual 1024 768 EndSubsection EndSection
Driver kısmında kullanılacak olan X sunucusunun tipi (SVGA, hızlandırılmış, vb.) girilir. S3, Weitek, ATI gibi hızlandırılmış bir görüntü kartı kullanılıyorsa ``Accel'', normal (generic) bir kart ve kaliteli bir monitör varsa ``SVGA'' ve siyah beyaz VGA bir monitörle birlikte tek renk (monochrome) destekleyen kart kullanılıyorsa ``VGA2'' yazılıdır.
``Indentifier'' ve ``Monitor'' bölümlerinde yazılanlar gözardı edilebilir.
``Display'' alt bölümünde, görüntü özellikleri yeralır. ``Depth'' kelimesinin karşısında yeralan rakam, piksel başına kaç bitin, başka bir deyişle kaç rengin kullanılacağını belirtir. Monitörün belirli bir çözünürlükte kaç renk birden gösterebileceğini bulmak için bu sayıyı 2'nin kuvveti olarak yazın ve hesaplayın. Günümüz XFree86 sunucuları genellikle 256 (8 bit), 65536 (16 bit) ve 16.7 milyon (24 bit) renge kadar çıkabilirler.
``Modes'' karşısında yeralan ekran çözünürlük listesi, Linux'un X altında çalışırken görüntüleyebileceği çözünürlükleri belirtir. X altında burada yazılı çözünürlükler arasında geçiş yapabilmek için Control-Alt-Nümerik + veya Control-Alt-Nümerik - tuşlarını kullanabilirsiniz. ``Modes'' ile başlayan satırdaki ilk çözünürlük, X Window açıldığı zaman kullanılacak olan çözünürlüktür (yukarıdaki örnekte 1024x768).
``Virtual'' karşısında yeralan x ve y sayıları sırayla ekranın genişliğini ve yüksekliğini belirtir. X açıldıktan sonra ekran genişliği yetmediği durumlarda kullanılabilir. Bu iki sayıyı, görüntü kartı hafızası yetene kadar artırın. Örnek olarak 1024x768 ekran çözünürlüğünde 1152 ve 900 sayılarını yerleştirin. X Window açıldığı zaman fare ile ekranın sağ alt köşesine gidin. Ekranın kaydığını göreceksiniz. Gerçek ekran boyutunu ``Virtual'' parametreleri belirler.
``Virtual'' girdilerinin ardından verilen ``ViewPort'' parametresi de ekranın sol üst köşesinin hangi koordinatlara tekabül edeceğini tanımlar. Yukarıdaki örnekte sözkonusu noktayı (0, 0) olarak belirttik.
Konfigürasyon işlemini bitirdiğimize göre sırada X Window'u denemek
var. Aşağıdaki komutu yazmadan önce PATH değişkeninin içinde
/usr/X11/bin
olduğundan emin olun.
$ startx
Ekranda X sunucunun dosyadan okuduğu satırlar ile ilgili bilgileri sırayla göreceksiniz. Ardından ekran kararacak ve X açılacaktır. Hevesinizi aldıktan sonra Control-Alt-Backspace (Delete değil! :) tuşlarına basın ve X sunucusunu öldürerek başladığınız vt100 terminaline geri dönün.
Diyelim ki ekran karardı ama X açılmadı. Konfigürasyonda hatalar olabilir. Ekranda çıkan hata mesajlarını kaydedip incelemeniz gerekir. Çok yapılan konfigürasyon hatalarının başında çipsetin ve ekran kartı bilgilerinin yanlış girilmesi, ``Virtual'' parametrelerinin hatalı olması ve görüntü kartı hafızasının ekranı açmaya yetmemesi vardır. Bu sefer hata mesajlarını ayıklayıp bir dosyanın içine atarak sunucuyu tekrar çalıştırın. Sonra da dosyayı inceleyip sorunun nerede olduğunu bulabilirsiniz.
$ startx > /tmp/hatalar 2>&1
Ekrana çıkması gereken tüm satırlar /tmp/hatalar
dosyasına
yönlendirilecektir. Çipseti doğru olarak seçmek için SuperProbe
programını kullanabilirsiniz. Bu komutu kullandıktan sonra ekrandaki
çıktıdan aldığınız bilgileri konfigürasyon sırasında programa girin.
X sunucuyu başlatmaya yarayan startx
komutu, ev dizini içindeki
.xinitrc
dosyasını arar. Bulamazsa sistemde
/usr/X11/lib/X11/xinit/
dizini içinde yeralan xinitrc
dosyasını okur. Bu dosyanın içine X açıldığı zaman başlayacak olan
programları koyabilir, ekranın renk düzenlemesini yapabilirsiniz. Örnek
bir .xinitrc
dosyası aşağıdaki gibidir :
#!/bin/bash # #start xterms # xterm -geometry 80x25+10+10 -bg black -fg white & xterm -geometry 80x25 -bg darkgray -fg white & xclock & xload & xbiff & xsetroot -solid darkblue & # startx wm exec fvwm #
.xinitrc
dosyası gayet kolay ve anlaşılır bir dile sahiptir. Sadece
hangi X programlarını çalıştırmak istediğinizi buraya yazın ve
arkaplanda bırakın (bunu unutursanız X'ten çıkıncaya kadar sadece ilk
program çalışır). İlk iki satırda xterm çalıştırılıyor. Hemen hemen tüm
X programlarının ortak özelliği, kullanıcının bu programları ekranda
hangi koordinatlara yerleştirileceklerini belirleyebilmesidir. İlk
xterm programı 80x25 karakter boyutlarında olup sol üst köşeden
itibaren 10 piksel sola, 10 piksel sağa yerleştirilecektir. Xterm'ün
arkaplan ve yazıtipi rengi sırayla -bg ve -fg parametreleriyle belirtilir.
Renkler ingilizce isimleriyle verilir. Bunlar hakkında daha fazla bilgi
için /usr/X11/lib/X11
dizini altındaki rgb.txt
dosyasına göz
gezdirin.
Ardından sırasıyla xclock (X altında çalışan saat programı), xload (sisteme ne kadar yük bindiğini gösterir) ve xbiff (e-posta gelince haber verir) çalıştırılıyor. Aslında boş vaktinizde bakmanızı bekleyen, X Window ile birlikte gelen onlarca uygulama programı vardır. Bunları da arkaplanda çalıştırın.
Sondan bir önceki komut olan xsetroot
, bazı hoş özellikleri olan bir
programdır. Bu satırdaki görevi, X Window arkaplan rengini koyu mavi
yapmaktır. Unutmayın, .xinitrc
dosyasının içine X açılırken başlatmak
istediğiniz her programı koyabilirsiniz.
Dananın kuyruğunun koptuğu son satırda ise X sunucusu, pencere yöneticisini çalıştırıyor. Daha önce de belirtildiği gibi wm, kullanıcı ile X arasındaki idareyi sağlıyor. Eğer yeterli RAM'ınız varsa ve hızlı bir bilgisayara sahipseniz bu sayfadaki AfterStep ve Enlightenment pencere denetleyicilerini deneyebilirsiniz.
Fvwm, Linux için özel olarak geliştirilmiş bir wm'dir. Diğer wm'lere karşı belirli üstünlükleri olan fvwm'in rahatça konfigüre edilebilir bir rc dosyası, renkli ikon desteği, ``pager'' (birden fazla ekranı aynı anda kontrol etme yeteneği), farenin tuşlarına basıldığı zaman ekrana gelen ``popup'' menüleri ve Motif desteği vardır.
``Pager'', fvwm'i üstün kılan ve kullanıcının "olsa da kullansak" beklentilerine tam anlamıyla cevap veren bir özelliktir. Ekranın bir köşesine yerleştirilen bir pencere ile farenin tuşlarına basarak istediğiniz başka bir ekrana geçmek mümkün olur.
Fvwm çalıştırıldığı zaman ev dizininde yeralan .fvwmrc
dosyasını
okumaya çalışır, bu dosyayı bulamazsa sistemdeki örnek fvwmrc dosyasını
(/usr/X11/lib/X11/fvwm/system.fvwmrc
) açılış konfigürasyon
dosyası olarak kabul eder. Eğer Slackware 3.0'dan daha yeni bir dağıtım
kullanıyorsanız, sistemde X açarken öntanımlı olarak fvwm95 kullanıyor
olacaksınız. fvwm95 pencere yöneticisinin örnek konfigürasyon
dosyalarını /usr/X11/lib/X11/fvwm95-2
dizininde bulabilirsiniz.
Beğeninize hitap eden pencere denetleyicisine uygun olarak
sistemde yeralan örnek dosyayı kopyalayıp zevkinize göre istediğiniz
değişiklikleri yapabilirsiniz. Burada fvwm'in birkaç özelliğine değinip
örnek bir konfigürasyon dosyasındaki bazı satırları inceleyeceğiz.
#set up colors StdForeColor white StdBackColor midnightblue HiForeColor white HiBackColor red Font -adobe-helvetica-meduum-r-normal-*-*-120-* WindowFont -adobe-helvetica-bold-r-normal-*-*-120-* #
Farenin üzerinde kalan pencerelerin rengini (ki bu sırada pencereye klavyeden bilgi girişi yapılabilir) diğerlerinden ayırmak mümkündür. Böylece kullanıcı hangi pencerenin aktif olduğuna dair tereddüte düşmez. HiForeColor ve HiBackColor değerlerinin gösterdiği renk, aktif pencerenin rengidir. ForeColor, pencerede yeralan metnin rengi, BackColor ise pencere arkaplan rengini temsil eder.
Aktif olmayan pencereler için StdForeColor ve StdBackColor komutları geçerlidir. Font ve WindowFont parametreleri de sırayla pencerenin ismini gösteren yazıtipi ve pencere içinde kullanılan yazıtipini belirler.
Sıkça kullanılan bir başka parametre de ``Style'' dır. Style yardımıyla ekrandaki bir pencerenin diğer pencerelerle olan hiyerarşik düzenini ayarlayabilirsiniz.
Style "xclock" NoBorder Style "xbiff" StaysOnTop Style "xterm" Sticky
İlk sırada yeralan komut ile xclock saat programı, fvwm tarafından penceresiz olarak ekrana konuyor. İkinci komut ile xbiff uygulama programı, üzerine hangi pencere gelirse gelsin üstte kalıyor. Sticky ise Pager yardımıyla pencere değiştirdiğiniz zaman istediğiniz programın ekranda eski yerini almasını sağlıyor.
Farenin sağ tuşuna bastığınız zaman ekrana gelen menüye "popup" ismi verilir. Bu menülere de .fvwmrc dosyası yardımıyla kolayca ekleme yapılabilir, üzerinde değişiklik uygulabilir. Menü, konfigürasyon dosyası içinde, "Popup" ve "EndPopup" satırları arasında tanımlanır ve bir isim verilir:
Popup "Menu ismi" Title "XClients" Exec "Mosaic" exec Mosaic & Exec "xterm" exec xterm & Exec "emacs" exec emacs & Nop "" Exec "rlogin" exec xterm -e rlogin orca & Exec "telnet" exec xterm -e telnet & Nop "" Exec "xcalc" exec xcalc & Exec "xman" exec xman & EndPopup
Farenin tuşuna basılınca ekrana, exec kelimesinin sağında yeralan ve iki tırnak içine alınan menü başlıkları gelir. Her menü başlığının karşısında, o program seçildiği zaman çalışacak olan program yeralır. ``Nop'', menü üzerinde yatay bir çizgi çeker.
X altında kullanılabilecek yazıtipi sayısı neredeyse sınırsız denilebilecek kadar çoktur. Bu yazıtiplerini kullanmak için iki yolunuz var. X Window açılırken çalıştırılan xterm'e standart parametre olarak girilir, veya doğrudan komut satırı üzerinde kullanmak istediğiniz yazıtipi seçebilirsiniz. Halihazırda kullanılabilecek olan yazıtiplerini görebilmek için şu komutu kullanın :
$ xlsfonts
Ekran büyük bir hızla kayacak ve xinitrc dosyasının FontPath parametresinin gösterdiği dizin altındaki dosyaları temsil eden yazıtipleri ekrana gelecektir. Her satır, bir yazıtipi ismine tekabül eder. Görüldüğü gibi X altında kullanılan yazıtipleri isimleri gayet uzun olup toplam 14 parametreden oluşur. Bu satırlardan uygun olan birini seçip (örneğin kalın yazıtipini)
$ xlsfonts | grep bold
veya belirli bir sırayı izlemek için
$ xlsfonts -fn -*-*-bold-*-*-*-*-*-*-70-iso8859-9
komut satırı üzerinden diğer xterm'ü açabilirsiniz.
$ xterm -fn -misc-fixed-bold-r-normal--13-100-100-100-c-70-iso8859-9
iso8859-9, içinde Türkçe yazıyüzlerinin bulunduğu standartı gösterir.
Kullandığınız her işletim sisteminde Türkçe karakterlerin gösterimi ve
Türkçe klavye uyarlaması sıkıntısı çekiyor olmalısınız. Linux'ta Türkçe
yazıtipleri xterm
altında -fn
parametresi ile rahatlıkla
görülebilir, böylelikle Türkçe okuyabilirsiniz.
ftp.metu.edu.tr
adresinden temin edeceğiniz Turkcebdf.tgz paketinin içinden çıkan
küçük program, Türkçe klavye dağılımını ayarlıyor. Bu program
çalıştırıldıktan sonra Alt tuşu yardımıyla Türkçe karakterlerin
basılmasını sağlanabilir. Örnek olarak Alt-u ile ü, Alt-i ile
ı karakterleri görüntülenebilir.
Türkçe karakterlerinin görüntüleyebilmek için önceden Türkçe yazıtiplerini sisteminize kurmuş olmalısınız.
Bu çözümlerin çalışması için X konfigürasyonu sırasında XKB isteyip istemediğiniz sorusuna hayır, Alt keys -> Meta keys dönüşümü isteyip istemediğiniz sorusuna evet yanıtı vermelisiniz.
Ayrıca bazı yazılımlarda Türkçe harfleri kullanabilmeniz için iso8859-9
karakter setini seçmeniz gerekir. Örneğin pine
'ın Setup->Config
menüsünde ya da .pinerc
dosyasında bulunan character-set değişkenine
iso8859-9 değerini vermelisiniz. elm
için de benzer şekilde .elmrc
dosyasında ayarlama yapılmalıdır.