|
|||||
Die Maus und xevMäuse werden in X11 recht einfach organisiert: Man numeriert die z.T. zahlreichen Knöpfe und Bewegungsrichtungen von Rädchen mit Button 1, 2, 3 etc.
durch. Linux sieht z.Z. bis zu 9 solcher Knöpfe vor.Was genau beim Mausklick passiert, offenbart das für Debugging sehr nützliche Tool xev .
Nach dem Aufruf aus einem Xterm erscheint ein kleines fast leeres
Fenster wie in der nebenstehenden Abbildung. Sobald der Mauszeiger in
dieses Fenster bewegt wird, gibt xev detailliert Auskunft über alle
Events, die der X-Server an seine X-Clients sendet, und zwar sowohl
Maus- als auch Tastaturereignisse.Xev ist immer nützlich, wenn die Reaktionen auf bestimmte Mausklicks oder Tasten nicht dem erwarteten Ergebnis entsprechen. So lässt sich klären, ob der X-Server die "falschen" Events sendet oder das Problem bei der Konfiguration des X-Clients liegt. Hier ein paar Beispiele: MotionNotify event, serial 21,
synthetic NO, window 0x800001,
root 0x8a, subw 0x0, time 25197998, (142,111), root:(192,161), state 0x0, is_hint 0, same_screen YES MotionNotify event, serial 21, synthetic NO, window 0x800001, root 0x8a, subw 0x0, time 25198013, (142,110), root:(192,160), state 0x0, is_hint 0, same_screen YES ButtonPress event, serial 21, synthetic NO, window 0x800001, root 0x8a, subw 0x0, time 25200685, (142,110), root:(192,160), state 0x0, button 1, same_screen YES ButtonRelease event, serial 21, synthetic NO, window 0x800001, root 0x8a, subw 0x0, time 25200906, (142,110), root:(192,160), state 0x200, button 1, same_screen YES KeyPress event, serial 21, synthetic NO, window 0x800001, root 0x8a, subw 0x0, time 25202531, (142,110), root:(192,160), state 0x0, keycode 37 (keysym 0x61, a), same_screen YES, XLookupString gives 1 bytes: (61) "a" XmbLookupString gives 1 bytes: (61) "a" XFilterEvent returns: False KeyRelease event, serial 24, synthetic NO, window 0x800001, root 0x8a, subw 0x0, time 25202593, (142,110), root:(192,160), state 0x0, keycode 37 (keysym 0x61, a), same_screen YES, XLookupString gives 1 bytes: (61) "a" XFilterEvent returns: False ButtonPress event, serial 24, synthetic NO, window 0x800001, root 0x8a, subw 0x0, time 25204140, (142,110), root:(192,160), state 0x0, button 2, same_screen YES ButtonRelease event, serial 24, synthetic NO, window 0x800001, root 0x8a, subw 0x0, time 25204321, (142,110), root:(192,160), state 0x100, button 2, same_screen YES Die oberen drei Event-Benschrichtigungen zeigen Bewegungen der Maus an. Anschließend wurde die linke Maustaste gedrückt, was mit ButtonPress und ButtonRelease des "button 1" quittiert wird. Daraufhin drücken wir zur Abwechslung eine Taste, nämlich den Buchstaben "a", worüber xev detailliert Auskunft gibt. Nun wird es spannend: Wir Drücken die mittlere Maustaste (bzw. auf das Rad bei einer typischen Wheel-Mouse). Welche Nummer hat dieser Knopf? Xev zeigt uns: button 2. Konsequenterweise hat die rechte Maustaste die Nummer 3. Da die mittlere Maustaste in X11 recht häufig benötigt wird, sind die Tasten 1 bis 3 sozusagen Minimalausstattung. Bei der 2-Tasten-Maus für Arme wird die mittlere Taste i.d.R. durch gleichzeitiges Drücken beider Maustasten emuliert. Allerdings muss der X-Server entsprechend konfiguriert sein. Ein kleines xev-Experiment verrät auch, wie X11 mit Bewegung des Maus-Rädchens umgeht. Wahrscheinlich kommt dabei heraus: Raddrehung nach "oben":Moderne X-Applikationen (besonders im Rahmen von KDE und gnome) reagieren in geeigneter Weise auf die Buttons 4 und 5 - meist mit Auf- und Abscrollen von Textbereichen o.ä. xmodmap für Linkshänder
Soviel zum Thema Maus. |
|