[Pardus-kullanicilari] Klavyenin multimedya tuþlarýný tanýta mýyorum?

Emre Erenoglu erenoglu at gmail.com
22 Oca 2009 Per 00:31:40 EET


2009/1/21 mehmet gürol çay <gulizgurol at gmail.com>

> bana bunun genel mantığını anlatır mısınız kısaca tam olarak kavrayamadım
> mesela favori tuşu var o tuşa bastığımda internet favori sitelerin
> açılmasını istiyorsam lineakd.conf dosyasında Favorites ksımını Favorites =
> "firefox --favorites" gibi mi olacak


Merhaba, lineak vs. ile bu isler yapilabilir, ama ben isleyis ile ilgili
genel bilgi vereyim biraz.

Uc tipten tustan bahsedebilirz:
A) Xorg tarafindan taninan ama herhangi bir is yapmayan tuslar,
B) Kernel'in tanimasina ragmen Xorg tarafindan taninmayan tuslar
C) Kernel tarafindan bile taninmayan tuslar

B ve C daha detayli calisma istiyor, bazen sonuca ulasilmayabiliyor da.
Ancak A sorunu icin soyle bir cozumden bahsedilebilir:

1) Oncelikle sorunun A sorunu olduguna emin olalim, bunun icin xev isimli
komut bize yardim edecek, bu bir tusa basildiginda Xorg algilarsa bunu
ekrana dokecek. Calistirmak icin once bir konsole acalim (ALT+F2 ile
ornegin), sonra xev komutunu verip enter'a basalim. Bu komutu
calistirdiginizda ekrana bir karecik gelecek, bu karenin aktif pencere
olmasi gerekiyor, bir de fare'ye dokunmasaniz iyi olur cunku o da tonlarca
olay yaratip ekrana dokulmesine sebep oluyor.

Simdi o pencerecik aktifken, ornegin HOME (ev isareti) tusuna basiyoruz ve
ekrana suna benzer yazilar dokuluyor:

KeyPress event, serial 34, synthetic NO, window 0x3c00001,
    root 0x1a6, subw 0x0, time 28645948, (51,-11), root:(56,690),
    state 0x10, *keycode 178* (keysym 0x1008ff2e, *XF86WWW*), same_screen
YES,
    XLookupString gives 0 bytes:
    XmbLookupString gives 0 bytes:
    XFilterEvent returns: False

KeyRelease event, serial 34, synthetic NO, window 0x3c00001,
    root 0x1a6, subw 0x0, time 28646085, (51,-11), root:(56,690),
    state 0x10, *keycode 178 *(keysym 0x1008ff2e, *XF86WWW*), same_screen
YES,
    XLookupString gives 0 bytes:
    XFilterEvent returns: False

Bu ciktida onemli olan iki nokta var:  keycode numarasi ve sembol ismi. Ev
tusu icin bunlari ben "kalin" olarak isaretledim. Ayrica her tur icin iki
blok goreceksiniz, bir tanesi "KeyPress" bir tanesi ise "KeyRelease".
Ingilizce bilenler anladi zaten, ilki "TusaBasildi", ikincisi ise
"TusBirakildi" olaylari. Ev tusu icin asagidaki kodlari goruyoruz ve not
ediyoruz:
Keycode=178
Sembol=XF86WWW

Eger bir keycode üretiliyorsa bu iyiye işaret. Ancak o tus bir ise
yaramiyorsa, muhtemelen bir "Sembol" atanmamistir, veya sembol'e bir gorev
atanmamistir. Bunlara mantigini da anlatarak sonra gelecegiz.

Ornegin Calculator yani Hesap Makinesi tusu icin soyle bir cikti uretiyor
bende:

KeyPress event, serial 34, synthetic NO, window 0x3c00001,
    root 0x1a6, subw 0x0, time 28934501, (359,-407), root:(364,294),
    state 0x10, *keycode 161* (keysym 0x1008ff1d, *XF86Calculator*),
same_screen YES,
    XLookupString gives 0 bytes:
    XmbLookupString gives 0 bytes:
    XFilterEvent returns: False

KeyRelease event, serial 34, synthetic NO, window 0x3c00001,
    root 0x1a6, subw 0x0, time 28934589, (359,-407), root:(364,294),
    state 0x10, *keycode 161* (keysym 0x1008ff1d, *XF86Calculator*),
same_screen YES,
    XLookupString gives 0 bytes:
    XFilterEvent returns: False

Burada da keycode'un 161 ve sembolün XF86Calculator olduğunu görüyoruz.  Bu
kodları veya bu tuşları istediğimiz programda veya TASMA'daki KDE klavye
ayarlarında herhangi bir yazılımı başlatmak için kullanabiliriz.

Şimdi örneğin bir tane de sembolü olmayan tuş bulalım, örneğin bendeki
klavyede 5 tane özel fonksiyon tuşu var ama şu anda bir iş yapmıyorlar.
Birine bastığımda şu üretiliyor:

KeyPress event, serial 34, synthetic NO, window 0x3c00001,
    root 0x1a6, subw 0x0, time 29052965, (367,348), root:(372,1049),
    state 0x2010,* keycode 183* (keysym 0x0, *NoSymbol*), same_screen YES,
    XLookupString gives 0 bytes:
    XmbLookupString gives 0 bytes:
    XFilterEvent returns: False

KeyRelease event, serial 34, synthetic NO, window 0x3c00001,
    root 0x1a6, subw 0x0, time 29053061, (367,348), root:(372,1049),
    state 0x2010, *keycode 183* (keysym 0x0, *NoSymbol*), same_screen YES,
    XLookupString gives 0 bytes:
    XFilterEvent returns: False

Burada keycode 183 olmasına rağmen, bir sembol olmadığını görüyoruz, *
NoSymbol*  sembol yok demek.

*Şimdi kritik nokta, sembolu olmayan bir tuşa Xorg'da veya KDE'de bir görev
atayamayız.* Önce bu keycode'a bir sembol atamalıyız. Bunun için ev
dizinimizde yaratacağımız " .Xmodmap " isimli dosya yardımcı olacak.
(başında nokta var)

Yarattığınız  .Xmodmap  dosyasının içine, yukardaki tanınmayan sembolsüz tuş
için örnek olarak şu satırları giriyorum:

*keycode 183 = XF86Launch0*

Bu satır,  keycode 183 tuşu, XF85Launch0 sembolünü üretsin anlamına geliyor.
Oturumunuzu bir sonraki açışınızda, bu tuş devreye girecek ve KDE
ayarlarında bu tuşa da bir görev atayabileceksiniz. Eğer bu ayar hemen
devreye girsin isterseniz,

xmodmap  /home/kullanıcı_adınız/.Xmodmap

komutunu verebilirsiniz. sonrasında tekrar xev çalıştırarak devreye
girdiÄŸini teyid edebilirsiniz.

Şimdi artık TASMA'daki KDE ayarlarından bu tuşa örneğin "konsole" çalıştırma
görevi atayabilirsiniz.

Emre
-------------- sonraki bölüm --------------
Bir HTML eklentisi temizlendi...
URL: http://liste.pardus.org.tr/pardus-kullanicilari/attachments/20090121/3f7a249a/attachment.htm 


Pardus-kullanicilari mesaj listesiyle ilgili daha fazla bilgi