"Christmas - the time to fix the computers of your loved ones" « Lord Wyrm

HOWTO: Maustaste mit Tastenkombination belegen

that 27.08.2009 - 20:56 1740 0 Thread rating
Posts

that

Hoffnungsloser Optimist
Avatar
Registered: Mar 2000
Location: MeidLing
Posts: 11326
Situation: Ich habe eine Maus mit 7 Tasten. Damit kann ich im Browser mit Mittelklick auf einen Link ein neues Tab aufmachen. Um das Tab wieder zu schließen, muss ich aber die Maus auf das Tab bzw. auf "Close" bewegen. Viel einfacher und schneller gehts, eine Maustaste mit der Tastenkombination Ctrl+W zu belegen - das macht in vielen Programmen, und eben auch im Browser, das aktuelle Window oder Tab zu.

Nachdem meine alte Lösung mit imwheel seit dem Upgrade auf Xorg-Server 1.6.3 nicht mehr funktioniert hat (Modifier bleiben "hängen" und X spinnt komplett), habe ich mich nach einer anderen Lösung umgeschaut und folgendes gefunden:

Benötigte Software:

  • halbwegs aktuelles Xorg mit evdev-Treiber für die Maus
  • xte aus xautomation
  • xbindkeys
  • evtl. xev, um die Button-Nummern rauszufinden

Bei meinem Gentoo/Funtoo gibts xte in x11-misc/xautomation, xbindkeys in x11-misc/xbindkeys und xev in x11-apps/xev - bei anderen Distributionen weiß ichs nicht. :)

Falls die Nummer der gewünschten Maustaste noch nicht bekannt ist, startet man erstmal xev aus einem xterm heraus und klickt in das kleine Window mit dem schwarzen Quadrat drin mit der besagten Maustaste. Neben vielen MotionNotify-Events (nach dem Klick stillhalten!) gibts beim Klicken dann ButtonPress und ButtonRelease-Events, z.B.:

Code:
ButtonRelease event, serial 36, synthetic NO, window 0x4200002
    root 0x32b, subw 0x0, time 97130043, (74,119), root:(601,1071),
    state 0x10, button 10, same_screen YES

Die Button-Nummer (hier 10) gut merken. :)

xbindkeys hat eine Manpage (man xbindkeys), das die Optionen erklärt. Mit xbindkeys -d kann man sich ein Configfile für den Start generieren lassen, wo ein paar Beispiele und Erklärungen drinstehen. Das ist nicht unbedingt notwendig, für Ctrl+W auf einer Maustaste reichen folgende 2 Zeilen in ~/.xbindkeysrc:

Code:
"xte 'keydown Control_L' 'key W' 'keyup Control_L'"
   b:10

Die Zahl hinter "b:" ist die oben ermittelte Button-Nummer. Die Zeile darüber startet xte, das bei Aktivierung dann dle linke Ctrl-Taste niederdrückt (bzw. dem X-Server das vortäuscht), dann W tippt und dann Ctrl wieder loslässt.

(für die Leute mit deutscher Tastatur: da steht "Strg" drauf, auf der Ctrl-Taste, es ist aber trotzdem "Control" und nicht "Strangulieren" ;))

Das wars dann schon fast - xbindkeys muss noch gestartet werden (am besten automatisch durch euer jeweiliges Desktop-Environment), fertig. Happy Browsing!
Kontakt | Unser Forum | Über overclockers.at | Impressum | Datenschutz