Konsolda Türkçe Yazmak
Önceki Linux Sistem Yönetimi Sonraki
Konsolda Türkçe Yazmak
(Türkçe desteği için Türkçe NASIL belgesine bakınız.)
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:
string F1 = "\033[[A"
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
# loadkeys bas.map
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.
setfont tr8x16.map
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.
LESSCHARSET=latin5
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.
Önceki Üst Ana Başlık Sonraki
Linux Dosya Sistemi Yapısı Başlangıç Belirli Zamanlarda Komut İşletilmesi
Bir Linux Kitaplığı Sayfası