* Nilgün Belma Bugüner <[EMAIL PROTECTED]> [2003-07-02 02:56:53+0300]
> Selam,

Selam

> Şu delete ile ne sorununuz var? Doğrusu anlamıyorum. Delete tuşu, imlecin 
> sağındaki
> karakteri, Backspace tuşu ise imlecin solundakini siler ve bu hem konsol 
> klavyesinde
> hem de xkb klavyesinde benim hazırladıklarımda sorunsuzdur. 
> Eğer bir sorun varsa bu Debian ile ilgili olmalı. Sizden başka şikayet eden 
> yok.

Once bazi konularda anlasalim:

  - Tartisma alanimiz X ortami degil, X konsolu degil, karanlik *konsol*
    ortami.

  - "Backscape" derken kursorun solundaki karakterin silinmesi eylemini
    kastediyoruz.

  - "Backspace" sozcugunu Ascii set icindeki bir kontrol karakteri olan "BS"
    ile karistirmayalim.  "BS"in ascii karsiligi "0x08"dir ve bunun da
    karsiligi ^H dir.

  - "Delete" derken kursorun uzerinde bulundugu karakterin silinmesi
    eylemini kastediyoruz.

  - "Delete" sozcugunu Ascii set icindeki bir kontrol karakteri olan
    (daha acik ifadeyle Ascii setin en son, yani 127nci karakteri) "DEL"
    ile karistirmayalim.  DEL'in ascii karsiligi "0x7f"dir ve bunun da
    karsiligi ^? dir.

  - Isleri daha da karistirmak adina ek bilgi: vt220 terminalini emule
    eden Linux *kernel* tus eslemi "Delete" eylemi icin "\e[3~" kodunu
    kullanir.

  - "Backspace" ve "Delete" *eylemlerinin* tanimlandigi sekilde
    davranmasi bircok faktore baglidir.  Linux kernel'in on tanimli tus
    haritasi, sectiginiz terminal emulasyonuna iliskin terminal
    database'i (eskiden `termcap', simdilerde `terminfo' ve `ncurses')
    ve uygulamanin kendi ozel secimleri.

Simdi de Linux camiasinda -bir yigin kaosdan sonra- yeni yeni oturmaya
baslayan standart davranisi tarif ediyorum (eski standartlarla
ilgilenmiyorum), ayrintilar icin [1] kaynagina bakilabilir:

  - "Backspace" eylemine atanan kontrol karakteri Ascii "DEL"dir.  Bakin
    bunu tekrar yaziyorum, "Backspace" eylemini gerceklemek uzere
    eslediginiz tusun uretmesi gereken kontrol karakteri Ascii "DEL"
    yani ^? dir.  (Denemek isteyecekler icin ek bilgi: uretilen kontrol
    karakterini gormenin basit yontemi Ctrl-V tus kombinasyonundan sonra
    o tusa basmaktir.)  Yani klavyede "Backspace" eylemi icin secilen
    <-- tusuna <C-v> tus kombinasyonundan sonra bastiginizda ^? kodunun
    uretilmesi gerekir.

  - "Delete" eylemine atanan kontrol karakteri "\e[3"dur.  Bu secim
    -tutarli veya tutarsiz ayri bir konu- linux cekirdeginden gelen on
    tanimli kod ile uyumluluk acisindan yapilmistir.  Yani <C-v> tus
    kombinasyonundan sonra piyasadaki PC klavyelerde uzerinde "Delete"
    yazan tusa bastiginizda "^[[3~" ("\e[3") kodunun uretilmesi gerekir.
    Eger -uzerinde konustugumuz sorunda oldugu gibi- bu tus *yanlis
    olarak* "Backspace" eylemini gerceklestiriyor ise muhtemelen ^?
    kodunu uretecektir.  Bu tip yanlislar cogunlukla yukarida
    bahsettigim karisikliktan kaynaklanir.  Yani:
    
      Hmmm, "Delete" eylemi icin Ascii set icindeki "DEL" kodunu
      ("Delete" sembolunu) atamaktan daha dogal ne olabilir....

    Ve booom! :-)

   - Bir dagitim "Delete" ve "Backspace" hadiselerine bir de Ascii "BS"i
     yani ^H yi karistiriyorsa intihar etmis demektir.  Redhat zamaninda
     boyle bir intihar girisiminde bulundu (evet, Turkce klavyeden degil
     kendi US klavyelerinden bahsediyorum :-).  Debian ilk surumlerinden
     itibaren ("Hamm"den sonra) bu hatayi gidermistir.  Iste kaynak
     [1]'den alinti:

        It's ridiculous that only Debian has done something about this issue.
        Where's Redhat with their "Product Of The Year 1998"? Linux for the
        masses? They can't even get the keys right! 
 
   - "Backspace/Delete" sorununu cozmenin on sarti "<--" tusuna ^?
     kodunu, "Delete" tusuna da "^[[3~" kodunu eslemektir.  Hersey bir
     yana standartlar umurumda degil diyenler icin dahi en azindan bu
     iki tusun farkli kodlar uretmesi mantiksal on sarttir.  Eger bu
     standart eslemeler veya farkli eslemeler yapilirsa en azindan
     konsol'da dogru "Backspace/Delete" eylemleri "bash"in "readline"
     yapilandirma dosyasi olan "/etc/inputrc"de yapilacak oynamalarla
     elde edilebilir.  (Bir dagitimin dogru eylemler icin boyle bir ayar
     gerektirmesi utandiricidir.  Redhat *bir zamanlar* maalesef boyle
     bir hataya ducar olmustur.)

Simdi bizim klavyelere geliyorum...

Dosya: (Nam-i diger Layout 1)

  tr_q-latin5.kmap.gz

Problem:

  keycode 14: "<--" (Backspace) tusuna "Backspace" sembolu ("BS" kontrol
  karakteri) atanmis.  Bu tus ^H uretiyor.  Neyse ki vt220'de ^H geriye
  dogru sildiginden sorun yok gibi gozukuyor.
  
  Tanriya sukur keycode 111: "Delete" tusuna hicbir sey atanmamis ve
  bu tus icin tanimli kernel tus eslemi overwrite edilmemis.
  Dolayisiyla dagitim -baska bir ayarla- ekstra bir giciklik yapmaz ise
  bu tus dogru calisiyor.

  Imdaat! :-) keycode 16: q icin altgr-q tanimsiz.  "@" karakterini
  basamiyor.  Bu sorunun cozumu icin e-mail dahi atmayacaksiniz :-))

  Diger kivir zivir problemler...

Dosya: (Nam-i diger Layout 2)

  trq.kmap.gz

Problem:

  keycode 14:  "<--" (Backspace), keycode 111: "Delete" tuslarina
  "Delete" sembolleri (Ascii "DEL") atanmis.  her ikisi de ayni kodu: ^?
  uretiyor ve ayni eylemi ("Backspace eylemini) gerceklestiriyor.  Yani
  cozum icin gerekli asgari on sarti (iki tusun farkli kodlar uretmesi
  sartini) dahi saglamiyor.


Dosya: (Sizin hazirladiginiz trq.kmap eslemi)
       http://www.belgeler.org/howto/turkish-howto_trq.html

Problem:

  keycode 14: "<--" (Backspace) tusuna "Delete" sembolu ("BS" kontrol
  karakteri) atanmis.  ^? uretiyor, yani dogru calisiyor.

  keycode 111: "Delete" tusuna da "Delete" sembolu atanmis.  Yani bu tus
  da ayni ^? kodunu uretiyor.  Her iki tus ayni kodu urettiginden cozum
  icin gerekli asgari sart yok! Sizin tuseslemini Debian'da denedim,
  diger dagitimlarda deneme firsatim olmadi.  Fakat amacim mumkun oldugu
  nispette dagitimdan bagimsiz sekilde bu problem icin cozum uretmek
  oldugundan sadece Debian ornegi yeterlidir diye dusunuyorum.

Bu sorunu tek benim yasadigimi, kimsenin dillendirmedigini
soylemissiniz.  Kullandiginiz dagitim otomatik olarak bu basit problemi
spotlayip bir ilklendirme betiginde duzeltiyor olabilir (zor birsey
degil bunu yapmak).  Fakat kendi dilinize ait klavyenin
"Backspace/Delete" islerinde dogru calismasi kullandiginiz dagitimin
mudahalesine kalmis ise vay halimize!  Su ana kadar Turkce klavyede
"Backspace/Delete"i adam gibi calisan bir dagitima rastlamadim.
Bilemiyorum biraz da dinozor oldugumdan yeni dagitimlarda ne olup
bittigini takip edemiyor da olabilirim.  En son bu sorunlari FM'den
Kivilcim ile konusmus idik,  o da Klaus Knopper'a duzeltilmis bir trq
eslemi gonderdi.  Eger Knoppix'de bu meseleyle karsilasmayanlar var ise
sagolsun Kivilcim'in sayesindedir.

Cevabiniz uzerine Redhat'i esas alan Mandrake 9.1'de deneme yaptim.
Problem ayniyla vaki...  Listedeki arkadaslar bu anlattiklarim isiginda
Debian ve diger dagitimlar uzerinde deneme yapip sonuclari
raporlayabilir mi acaba?

[1] http://igloo.its.unimelb.edu.au/Webmail/tips/msg00238.html

-- 
roktas

Cevap