Neue Antwort schreiben 
 
Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Präsentiere: input-event-daemon v0.1.3
gandro Offline
Quälgeist

Beiträge: 8.950
Registriert seit: Jul 2008
Beitrag #1
Präsentiere: input-event-daemon v0.1.3
Guten Abend allerseits,

hiermit möchte ich meine aktuelle Zeitverschwendung der Epoche auch abschliessen. Wer sich ein bisschen mit Linux beschäftigt, der weiss, dass Sondertasten (z.B. Lautstärketasten auf Laptops) zur Zeit in der Regel nur von der Desktop-Umgebung behandelt werden.

Will man seine Lautstärketasten auch in der Konsole ohne X11 benutzen, dann ist die Alternative dazu ist dann meistens nur acpid (den ich nicht mag und der nur acpi-events kann) oder hal-basierte Lösungen wie halevt (hal mag ich nicht und es stirbt eh bald aus).

Also hab ich aus der Not eine Tugend gemacht und mir selber ein 1000-Zeiler in C geschrieben, der das auf das Linux-Input-Subsystem horcht und da Befehle bei bestimmten Tastendrücken ausführt.

"Screenshot":
Code:
[root@ThinkPad ~]# input-event-daemon --monitor
input-event-daemon: Monitoring mode started. Press CTRL+C to abort.

/dev/input/event12:
  keys     : BTN_LEFT

/dev/input/event1:
  keys     : CTRL + ALT + J

/dev/input/event7:
  keys     : PROG1

/dev/input/event7:
  switch   : RADIO:0

/dev/input/event11:
  switch   : HEADPHONE_INSERT:1

/dev/input/event7:
  keys     : SCREENLOCK

/dev/input/event1:
  keys     : SHIFT + S

Ob ihr damit nur die Lautstärketasten auf amixer mappt oder beim einstecken der Kopfhörer automatisch den MP3-Player startet ist euch überlassen. Das Tool hört auf Tastendrücke (Keyboard- und Maustasten, teilweise auch Joystick-Tasten, je nach Treiber) und Switches (Killswitches, Notebook-Lids und Kopfhörerbuchsen, je nach Treiber). Das Tool ist relativ flexibel, mit dem Parameter --monitor könnt ihr mal horchen was so alles für Input-Events genereriert werden und danach eine Config schreiben.

Ja, schaut auch die Dokumentation an, an dieser Stelle noch meinen Dank an Griggi und oreissigs fürs Korrekturlesen.

Achja, Linux 2.6 (vermutlich sogar ab 2.6.16 oder so) ist zwingend nötig. Auch müssen die Kernel-Header installiert sein (linux-api-headers bei Arch Linux, linux-kernel-headers bei Debian/Ubuntu).

Manpage der Version 0.1.0 als HTML:
input-event-daemon-0.1.0.html (17,84 KB)

Quellcode & mehr: gandro's input-event-daemon at master - GitHub
Download: http://github.com/gandro/input-event-dae...all/v0.1.3
(Dieser Beitrag wurde zuletzt bearbeitet: 20.03.2010 13:47 von gandro.)
18.03.2010 20:42
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
LukeGee Offline
Misanthrop

Beiträge: 2.021
Registriert seit: Dec 2009
Beitrag #2
Präsentiere: input-event-daemon v0.1.3
Hut ab! Also ich hab das hier mal kurz bei mir angetestet und funktioniert 1a. Werds mal morgen oder so dann auf dem Thinkpad mal confen.
18.03.2010 21:04
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
gandro Offline
Quälgeist

Beiträge: 8.950
Registriert seit: Jul 2008
Beitrag #3
Präsentiere: input-event-daemon v0.1.3
Version 0.1.1 ist draussen. Nur Rechtschreibfehler und einen Mini-Memory-Leak gefixt.
18.03.2010 23:46
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
LukeGee Offline
Misanthrop

Beiträge: 2.021
Registriert seit: Dec 2009
Beitrag #4
Präsentiere: input-event-daemon v0.1.3
Kann es btw sein, dass der daemon etwas langsamer auf z.B. Keyevents reagiert, als wenn ichs über X11/einen Windowmanager mach? Hab das Gefühl, als sei es etwas langsamer. (nur minimal, aber spürbar)
19.03.2010 09:23
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
TAL Offline
機関車

Beiträge: 6.341
Registriert seit: Jul 2008
Beitrag #5
Präsentiere: input-event-daemon v0.1.3
Jop, der ist tatsächlich einiges langsamer als X11, jedoch trozdem nen cooles ding b1


Was mir jedoch aufgefallen ist:

Zitat:y/dev/input/event4:
keys : Z

z/dev/input/event4:
keys : Y

Dass das ding afaik bei -m nur das Amilayout ausgibt (also das hinter dem Doppelpunkt), erkennen tut das ding es ja richtig wie man vor /dev/input... sehen kann.

19.03.2010 09:26
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
gandro Offline
Quälgeist

Beiträge: 8.950
Registriert seit: Jul 2008
Beitrag #6
Präsentiere: input-event-daemon v0.1.3
Keine Ahnung ob das langsamer als X11 ist. Falls ja fallen mir nur drei Theorien ein, denn ich fange die Events direkt vom Kernel ab, genau wie es auch Xorg tut.

a) Läuft der Tastaturdaemon von X11 mit einer höheren Priorität.

b) Ist mein Daemon recht langsam beim auffinden des passenden Events (lässt sich ggf. noch verbessern), dann dürfte er im Monitoring-Mode aber nicht langsamer sein als X11, weil da wird kein Event gesucht, sondern nur ausgegeben.

c) Wartet mein Daemon anders als die meisten X11-Programme auf ein Release. Der Event wird erst getriggert, wenn ihr die Taste wieder loslässt, nicht wenn ihr sie drückt.

Bezüglich Amilayout: Mein Daemon kümmert sich gar nicht um um irgendwelche Tastaturlayouts, sondern gibt exakt das aus, was hardwaremässig von der Tastatur kommt, ohne jegliches Mapping, und das ist wohl auch bei deutschen Tastaturen auf der Y-Taste dann wohl doch der Z-Keycode.
19.03.2010 10:40
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
LukeGee Offline
Misanthrop

Beiträge: 2.021
Registriert seit: Dec 2009
Beitrag #7
Präsentiere: input-event-daemon v0.1.3
gandro schrieb:  Keine Ahnung ob das langsamer als X11 ist. Falls ja fallen mir nur drei Theorien ein, denn ich fange die Events direkt vom Kernel ab, genau wie es auch Xorg tut.

a) Läuft der Tastaturdaemon von X11 mit einer höheren Priorität.

b) Ist mein Daemon recht langsam beim auffinden des passenden Events (lässt sich ggf. noch verbessern), dann dürfte er im Monitoring-Mode aber nicht langsamer sein als X11, weil da wird kein Event gesucht, sondern nur ausgegeben.

c) Wartet mein Daemon anders als die meisten X11-Programme auf ein Release. Der Event wird erst getriggert, wenn ihr die Taste wieder loslässt, nicht wenn ihr sie drückt.

Bezüglich Amilayout: Mein Daemon kümmert sich gar nicht um um irgendwelche Tastaturlayouts, sondern gibt exakt das aus, was hardwaremässig von der Tastatur kommt, ohne jegliches Mapping, und das ist wohl auch bei deutschen Tastaturen auf der Y-Taste dann wohl doch der Z-Keycode.

Mh gut möglich, dass es mir deshalb gefühlt etwas langsamer vorkommt.
19.03.2010 11:53
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
gandro Offline
Quälgeist

Beiträge: 8.950
Registriert seit: Jul 2008
Beitrag #8
Präsentiere: input-event-daemon v0.1.3
Je nach dem kann ich eine Funktion einbauen, die auch bereits beim Drücken ein Event auslöst. Aber Standardmässig möchte ich das nicht haben, nur schon weil die meisten Tastaturen ja anfangen den Tastendruck zu wiederholen und dass dann auch mehrere Events auslöst.
19.03.2010 12:00
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
gandro Offline
Quälgeist

Beiträge: 8.950
Registriert seit: Jul 2008
Beitrag #9
Präsentiere: input-event-daemon v0.1.3
AUR (en) - input-event-daemon

Paket im AUR, inkl Initscript. Versionsupdate auf 0.1.2 (paar Makefile-Korrekturen, damit es auch ein anständiges Paket gibt).
19.03.2010 19:04
Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
DosAmp Offline
Anderes Zeigegerät

Beiträge: 12.219
Registriert seit: Jul 2008
Beitrag #10
Präsentiere: input-event-daemon v0.1.3
“A deamon”? Das schreit nach Korrektur. :>

CCITTグループ4またはZIP圧縮のモノクロ300dpiで最高の再現性
19.03.2010 19:10
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden Diese Nachricht in einer Antwort zitieren
Neue Antwort schreiben 


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste