Linux sanal terminallerinde bir tuşa basıldığı zaman bilgisayarın
ekranda herhangi bir dildeki alfabeye ait harfi göstermesi kolayca
sağlanabilir. Bunun yanında 12 fonksiyon tuşunun herbirine belirli bir
dizisel değer atanabilir ve bu sayede bu tuşlara basıldığında bir komutun
veya programın çalışması mümkün olur.
Aslında bunları yapabilmek için önümüzdeki iki temel sorunu aşmamız
gerekiyor. Birincisi standart olmayan karakterlerin (örneğin Türkçe)
ekranda görüntülenebilmesi, ikincisi de bilgisayara standart dışı bir
klavye olduğunun belirtilmesidir.
Dünya üzerindeki belli başlı dillerin hepsi yıllar önce bir standart
geliştirilmesi amacıyla sınıflandırıldı. Avrupa'da Slav dilleri
hariç hemen tüm dillerin karakterleri ISO (Uluslararası Standartlar
Organizasyonu) tarafından tek bir sınıfa yerleştirildi ve buna ISO8859-1
(latin 1) dendi. O vakit izlenen yanlış politikalar nedeniyle Türkçe bu
sınıfa dahil edilmedi ve sadece Türkçe için ISO8859-9 (latin 5) isminde
ayrı bir sınıf açıldı.
Türkçe yazabilme sorununu hemen her işletim sisteminde hissediyor
olmalısınız. Linux altında Türkçe desteğini sağlamak için birkaç işlem
yapılmalıdır. Bu işlemlerin başında Linux'a Türkçe destekli klavye ve
font tanıtmak geliyor.
/usr/lib/kbd/keytables dizini altında yeralan dosyalar, çeşitli ülke
dillerine ait klavye dağılımını içeriyor. Buradaki bilgileri kullanarak
klavye üzerinde yeralan tuşlara basılması halinde yazılı tuş dışında
bir karakterin ekranda gösterimi sağlanabilir.
Sistem açıldığı zaman -eğer kurulum aşamasında bir font beğenip
sürekli onu kullanmıyorsanız- defkeymap.map dosyasında yeralan klavye
dağılımını kullanacaktır. Farklı bir klavye düzeni kullanmak için .map
dosyalarını yüzeysel olarak anlamanız gerekiyor. /usr/lib/kbd/keytables
dizini altındaki herhangi bir dosyada 300'den fazla satır ve üç ana
tanımlamayla karşılaşacaksınız. Birinci grup, "keycode", "alt", "control"
gibi bir satırla, ikinci grup "string" ile, üçüncü grup ise "compose"
kelimesiyle başlar.
Dosyanın yapısını daha iyi kavrayabilmek için üzerinde bir örnekle
açıklamaya çalışalım. Control-Alt-Del tuşlarına basılınca bilgisayar
kendini "reset"ler. Eğer yanlışlıkla bu üç tuşa basmışsanız, klavyeden
girilecek bir shutdown -c komutunu yazmak ve sistemi kapanmaktan
kurtarmak için sadece 3-4 saniyeniz vardır. Fakat shutdown -c komutunu
bir fonksiyon tuşuna bağlar ve bu tuşa basarsanız sistem eski haline
dönecektir. Örnek olarak Control-F1 tuşunu bu işe ayıralım.
Öncelikle /usr/lib/kbd/keytables dosyasında yeralan defkeymap.map
dosyasındaki F1 fonksiyon tuşunun hangi tuş tanımına denk geldiğini
bulmalıyız. Dosyadaki F1 ile ilgili satırlar şunlardır:
keycode 59 = F1 F13 Console_13
control keycode 59 = F25
shift control keycode 59 = F37
alt keycode 59 = Console_1
control alt keycode 59 = Console_1
Linux, her satıra bir numara atar. Yukarıdaki satırda, F1 tuşunun
numarasının 59 olduğu kolayca görülüyor. 59 numaralı tuşa basılınca,
F1 ile tanımlanan dizi ekrana yazılacaktır. Benzer şekilde F1'e control
ile birlikte basılması halinde ise F25 dizisini ekrana basar. Önceden
tanımlanan değerlerden Console_1, 1 numaralı sanal konsolun ekranda
gösterilmesini işaret eder. Tüm bu dizilerin içeriğini görebiliriz. Aynı
dosyanın sonlarında şu satır yeralıyor:
Bunun anlamı, F1'e basınca ESC[[A dizisini ekrana gönder demektir.
sayısı, Escape tuşunun oktal (sekizli) sistemde gösterimidir.
Bu satırı veya F1'den itibaren seçeceğimiz bir fonksiyon tuşu ismini
istediğimiz şekilde değiştirebiliriz. Yanlız dikkat etmemiz gereken
bir husus, bu tuşun başka uygulamalar tarafından kullanılabiliyor
olmasıdır. Örnek olarak F61 ve karşılık gelen dizi değeri dosyada
yeralmıyor. Dosyaya küçük bir ekleme yapalım:
string F61 = "shutdown -c\n"
Dosyayı farklı bir isimde (örneğin bas.map) kaydedip
çıkın. Yeni klavye dağılımını denemek için
komutunu kullanın. Artık yeni klavye standardı sisteme
yerleşmiştir. Sistemin çalıştığına emin olmak için Shift-Control-F1
tuşuna basın. shutdown -c komutu işletilmelidir.
Artık Türkçe yazabilmeye geldik. Bunun için standart dışı klavyeden gelen bir
Türkçe karakteri ekranda gösterebilmek amacıyla bir font dosyası oluşturmamız
gerekecek. Linux altında bu dosyalar /usr/lib/kbd/consolefonts
dizini altında yeralıyor.
Linux'ta standart dışı bir font yüklemek için
setfont komutu
kullanılır. Türkçe fontları,
Linux Kullanıcıları Grubu ftp arşivinden temin edebilir veya iso09 ön adlı herhangi bir
fontu kullanabilirsiniz. Aşağıdaki komut, 8 piksel eni, 16 piksel boyu
olan Türkçe font yükleyecektir.
Türkce klavye düzenlerini içeren dosyaları ftp ile yine aynı
adresten alabilirsiniz. Burada tr.map ve trq.map adlı iki dosya
bulacaksınız. Bunlardan tr.map, normal klavye düzeninin yanında `alt'
tuşları ile "c, g, i, s, o, u" tuşlarına basıldığında karşılık gelen
özel Türkçe karakterler görüntülenir. trq.map yaygın olarak kullanılmakta
olan Q-Türkçe klavye düzenini içerir.
Bash kabuğu altında Türkçe yazabilmek için aşağıdaki üç komutu .inputrc
dosyanıza eklemeniz gerekir.
set meta-flag on
set output-meta on
set convert-meta off
less komutununu Türkçe karakterleri göstermesi için de
aşağıdaki gibi LESSCHARSET değişkenini latin5 yapmak gerekiyor.
loadkeys ve setfont komutlarını sistem
açılırken aktif olmaları için
bunları /etc/rc.d/rc.local dosyasına yerleştirebilirsiniz. Fontu ve
klavye düzenini ayarladıktan sonra sistemde çıkın ve tekrar girin.
Artık Türkçe yazabilirsiniz.