Wie sollte man eine Tastatur/Maus/Touchscreen abfragen ...
-
- Beiträge: 298
- Registriert: 16.01.2006 17:44:21
- Lizenz eigener Beiträge: GNU General Public License
Wie sollte man eine Tastatur/Maus/Touchscreen abfragen ...
Hi Mädels ... Jungs ...
Für eine Benutzer KI Schnittstelle baue ich gerade so was ähnliches wie eine Linux-Shell nur soll die mit Hardware beschleunigter 3D-Grafik arbeiten können. Damit die KI Illustrationen besser anzeigen kann und die CPU vom Grafischen Output entlastet wird. Dazu benutze ich Mesa und OpenGL ES 2.0 (die Hardware kann keine neuere Version) und C++. Die Buchstaben Bitmaps generiert mir FreeType. Soweit was es tun soll und auch schon tut. Ich will möglichst nicht viele Abhängigkeiten zu anderen Paketen haben aber auch nicht alles neu erfinden. Deshalb kommt auch Freetype zum Einsatz. Laufen soll das Programm dann wie eine virtuelle Shell die beim init automatisch gestartet wird.
Was mir noch fehlt ist die Abfrage der Tastatur/Maus/Touchscreen. Man findet dazu viel im Internet aber zum Teil eignen sich diese nicht oder sind veraltet.
Tastatur und Sprach Unterstützung ist jetzt nicht das wo ich mich besonders gut auskenne. Meine Linuxe sind alle so konfiguriert das sie UTF-8 benutzen. Gefunden habe ich mehrere Sachen: std::cin oder std::wcin die geben aber schon eine bestimmte Funktionsweise vor. Das ganze wollte ich so nicht. Was ich auch noch entdeckt habe ist die Event Schnittstelle des Linux Kernels. Macht dann der Kernel auch die Umsetzung für z.B. Deutsche oder Englische Tastatur oder muss ich das dann selber Programmieren?
Oder kennt Ihr noch was besseres?
Viele Grüße
Alexander
Für eine Benutzer KI Schnittstelle baue ich gerade so was ähnliches wie eine Linux-Shell nur soll die mit Hardware beschleunigter 3D-Grafik arbeiten können. Damit die KI Illustrationen besser anzeigen kann und die CPU vom Grafischen Output entlastet wird. Dazu benutze ich Mesa und OpenGL ES 2.0 (die Hardware kann keine neuere Version) und C++. Die Buchstaben Bitmaps generiert mir FreeType. Soweit was es tun soll und auch schon tut. Ich will möglichst nicht viele Abhängigkeiten zu anderen Paketen haben aber auch nicht alles neu erfinden. Deshalb kommt auch Freetype zum Einsatz. Laufen soll das Programm dann wie eine virtuelle Shell die beim init automatisch gestartet wird.
Was mir noch fehlt ist die Abfrage der Tastatur/Maus/Touchscreen. Man findet dazu viel im Internet aber zum Teil eignen sich diese nicht oder sind veraltet.
Tastatur und Sprach Unterstützung ist jetzt nicht das wo ich mich besonders gut auskenne. Meine Linuxe sind alle so konfiguriert das sie UTF-8 benutzen. Gefunden habe ich mehrere Sachen: std::cin oder std::wcin die geben aber schon eine bestimmte Funktionsweise vor. Das ganze wollte ich so nicht. Was ich auch noch entdeckt habe ist die Event Schnittstelle des Linux Kernels. Macht dann der Kernel auch die Umsetzung für z.B. Deutsche oder Englische Tastatur oder muss ich das dann selber Programmieren?
Oder kennt Ihr noch was besseres?
Viele Grüße
Alexander
Re: Wie sollte man eine Tastatur/Maus/Touchscreen abfragen .
Auch wenns Deinem "möglichst wenige Abhängigkeiten"-Kriterium nicht ganz entspricht, schau Dir doch mal an was man mit Qt alles machen kann,
z.B. "Touchkeyboard" https://youtu.be/yIsQHinTw00
z.B. "Touchkeyboard" https://youtu.be/yIsQHinTw00
-
- Beiträge: 298
- Registriert: 16.01.2006 17:44:21
- Lizenz eigener Beiträge: GNU General Public License
Re: Wie sollte man eine Tastatur/Maus/Touchscreen abfragen .
Hübsch keine Frage. Aber kann man Qt verwenden wenn man keinen normalen Desktop (KDE, Gnome, Xfce) installiert hat?
Re: Wie sollte man eine Tastatur/Maus/Touchscreen abfragen .
Ja und noch viel mehr. Qt ist plattformübergreifend, Anwendungen, die mit Qt unter Linux entwickelt worden sind, laufen durch neukompilieren sogar unter MacOSX und Windows, wo es auch kein Gnome, KDE etc gibt.alexander_ro hat geschrieben:Aber kann man Qt verwenden wenn man keinen normalen Desktop (KDE, Gnome, Xfce) installiert hat?
-
- Beiträge: 298
- Registriert: 16.01.2006 17:44:21
- Lizenz eigener Beiträge: GNU General Public License
Re: Wie sollte man eine Tastatur/Maus/Touchscreen abfragen .
Schon aber bei Mac und Windows gibt es einen Desktop bei mir nicht nur EGL Mesa was man hat so braucht um OpenGL zum laufen zu bekommen. Kennst Du da vielleicht ein Beispiel irgendwo dazu? Ich habe nur welche gefunden die unter den bekannten Desktop Systemen laufen.
Re: Wie sollte man eine Tastatur/Maus/Touchscreen abfragen .
OpenGL funktioniert sobald du einen X11-Server gestartet hast, zumindest solange die Graphikkarte OpenGL unterstützt. Von der Desktopumgebung ist das doch völlig unabhängig.alexander_ro hat geschrieben:Ich habe nur welche gefunden die unter den bekannten Desktop Systemen laufen.
-
- Beiträge: 298
- Registriert: 16.01.2006 17:44:21
- Lizenz eigener Beiträge: GNU General Public License
Re: Wie sollte man eine Tastatur/Maus/Touchscreen abfragen .
Ein X11-Server ist ja schon fast ein Desktop ...
Bei mir läuft aber kein X11-Server ich habe das so gemacht: https://github.com/robclark/kmscube
Sieht bei mir ein bisschen anders noch aus aber meins habe ich noch nicht in mein Git Repo gestellt. Deshalb kann man das noch nicht öffentlich anschauen.
Bei mir läuft aber kein X11-Server ich habe das so gemacht: https://github.com/robclark/kmscube
Sieht bei mir ein bisschen anders noch aus aber meins habe ich noch nicht in mein Git Repo gestellt. Deshalb kann man das noch nicht öffentlich anschauen.
Re: Wie sollte man eine Tastatur/Maus/Touchscreen abfragen .
Dann kannst du Qt auch knicken. Das setzt X11 (oder Windows oder OSX) voraus.alexander_ro hat geschrieben:Bei mir läuft aber kein X11-Server
- schorsch_76
- Beiträge: 2597
- Registriert: 06.11.2007 16:00:42
- Lizenz eigener Beiträge: MIT Lizenz
Re: Wie sollte man eine Tastatur/Maus/Touchscreen abfragen .
Unter linux ist das devinput system für dich da. Es kann auch über "In Kernel Keymaps" übersetzten.
[1] https://www.kernel.org/doc/html/latest/ ... input.html
[1] https://www.kernel.org/doc/html/latest/ ... input.html
Re: Wie sollte man eine Tastatur/Maus/Touchscreen abfragen .
Jein, bestimmte Module ja, andere nicht.MSfree hat geschrieben:Dann kannst du Qt auch knicken. Das setzt X11 (oder Windows oder OSX) voraus.alexander_ro hat geschrieben:Bei mir läuft aber kein X11-Server
Und in der 5.8 kann man wohl direkt auf nen Wayland-Unterbau zugreifen, auf Youtube gabs nen Kurzvortrag dazu, http://blog.qt.io/blog/2016/06/13/new-c ... qtwayland/
Und dann gibts auch noch sowas
http://doc.qt.io/QtForDeviceCreation/qt ... -b2qt.html
und ganz neu wohl auf ne QML Version auf nem Minimal-Android aufsetzend
- schorsch_76
- Beiträge: 2597
- Registriert: 06.11.2007 16:00:42
- Lizenz eigener Beiträge: MIT Lizenz
Re: Wie sollte man eine Tastatur/Maus/Touchscreen abfragen .
Du könntest auch die Posix Schnittstelle nutzen fd0/1/2 und darauf mit Posix syscalls direct operieren. Das hätte nur posix als Abhängigkeitalexander_ro hat geschrieben:Hstd::cin oder std::wcin die geben aber schon eine bestimmte Funktionsweise vor. Das ganze wollte ich so nicht.
Hier wäre auch ein gutes Online BUch das ich auch in "echt" habe. Sehr gutes Buch was Posix angeht
The Linux Programming Interface by Michael Kerrisk
http://blog.man7.org/2009/07/whats-book-about.html
http://www.man7.org/tlpi/index.html
-
- Beiträge: 298
- Registriert: 16.01.2006 17:44:21
- Lizenz eigener Beiträge: GNU General Public License
Re: Wie sollte man eine Tastatur/Maus/Touchscreen abfragen .
Macht denn stdin etwas anderes als std::cin. Ich dachte das tut von der Funktionsweise das gleiche. Die drei stdin, stdout und stderr werden vom Kernel den Prozessen zur Verfügung gestellt?
Die evdev Schnittstelle ist glaube die Userland Seite von dem Kerneltreiber Teil den Du oben verlinkt hast.
https://en.wikipedia.org/wiki/Evdev
Das habe ich gerade auch noch entdeckt: http://thiemonge.org/getting-started-with-uinput
Das Buch sieht interessant aus aber ob es mir jetzt dabei viel hilft bin ich mir nicht sicher. Ich habe so ein ähnliches aber nicht wirklich viel hilfreiches gefunden. Scheint so als ob keiner Tastatur Eingaben in seinen Programmen benötigen würde ...
Die evdev Schnittstelle ist glaube die Userland Seite von dem Kerneltreiber Teil den Du oben verlinkt hast.
https://en.wikipedia.org/wiki/Evdev
Das habe ich gerade auch noch entdeckt: http://thiemonge.org/getting-started-with-uinput
Das Buch sieht interessant aus aber ob es mir jetzt dabei viel hilft bin ich mir nicht sicher. Ich habe so ein ähnliches aber nicht wirklich viel hilfreiches gefunden. Scheint so als ob keiner Tastatur Eingaben in seinen Programmen benötigen würde ...
- schorsch_76
- Beiträge: 2597
- Registriert: 06.11.2007 16:00:42
- Lizenz eigener Beiträge: MIT Lizenz
Re: Wie sollte man eine Tastatur/Maus/Touchscreen abfragen .
std::cin hat noch das locale stream interface. fd0/1/2 sind die direkten File Descriptoren die vom Kernel kommen.
STDIN von der C Seite hat noch libc dazwischen.
Am Ende, egal was du machst, hast du immer ein Byte das dir die Tastatur gegeben hat.
Die libc/libc++ machen noch buffering. Die File Descriptoren nicht. Die libc hat jedes Program als Abhängigkeit das mit dem gcc kompiliert wurde. Als warum nicht das nutzen? Wenn du ein grafisches OpenGL System am laufen hast, wird auch diese Bibliothek ein Tastatur Interface haben. Wie es mit Mesa direkt aussieht, weis ich gerade nicht.
Dein Programm wird vermutlich Event orientiert arbeiten. Warum nicht dann einen Thread oder asio::io_object auf dem Tastatur Interface lauschen lassen und die Tasten als Events weiter geben in der Eventqueue?
Die Randbedingungen die du für das Tastatur/Maus Interface willst sind nicht bekannt, deshalb können wir nur raten...
http://who-t.blogspot.de/2016/05/the-di ... evdev.html
STDIN von der C Seite hat noch libc dazwischen.
Am Ende, egal was du machst, hast du immer ein Byte das dir die Tastatur gegeben hat.
Die libc/libc++ machen noch buffering. Die File Descriptoren nicht. Die libc hat jedes Program als Abhängigkeit das mit dem gcc kompiliert wurde. Als warum nicht das nutzen? Wenn du ein grafisches OpenGL System am laufen hast, wird auch diese Bibliothek ein Tastatur Interface haben. Wie es mit Mesa direkt aussieht, weis ich gerade nicht.
Dein Programm wird vermutlich Event orientiert arbeiten. Warum nicht dann einen Thread oder asio::io_object auf dem Tastatur Interface lauschen lassen und die Tasten als Events weiter geben in der Eventqueue?
Die Randbedingungen die du für das Tastatur/Maus Interface willst sind nicht bekannt, deshalb können wir nur raten...
http://who-t.blogspot.de/2016/05/the-di ... evdev.html
-
- Beiträge: 298
- Registriert: 16.01.2006 17:44:21
- Lizenz eigener Beiträge: GNU General Public License
Re: Wie sollte man eine Tastatur/Maus/Touchscreen abfragen .
Und ich dachte ich hätte das am Anfang so schön erklärt ...
Also die normalen Sachen wie libc libstdc++ sind natürlich vorhanden. Ich meinte ja es sollen wenig Abhängigkeiten werden aber nicht keine.
Ich weiß jetzt nicht genau was Du wissen willst. Ich dachte an eine Klasse die Daten von der Tastatur Sammelt und per Event das Inputprogramm der KI Informiert das es Arbeit gibt. Eingaben sind Texte also Normale Sprache kann man vermutlich mit einem Chat-Programm vergleichen nur das gegenüber kein Mensch sondern der Computer antwortet.
Wichtig ist das ich bereits während der Eingabe man die Texte im Programm verarbeiten kann. Das geht ja mit std::cin so nicht weil man die Daten erst nach dem return erhält. Wenn man dann stdin mit open öffnet und dann mit read oder so liest geht es vermutlich. Was ich halt gerne vermeiden würde das ich die die ganzen Tastaturlayouts (also die Locale) selber interpretieren muss.
[Edit]
Maus oder Touch soll dann eine Zeichen Erkennung bekommen dann muss man nicht unbedingt die Tastatur verwenden. So irgendwann in der Zukunft vielleicht mal eine Spracherkennung.
[/Edit]
[Edit 2]
Oh hatte ich vergessen zu beantworten. Ich benutze nur Mesa sonst nicht und das hat keine Möglichkeit zur Tastatur abfrage.
Ja am Tastatur Interface lauschen ist schon das was ich auch meinte aber an welchem?
An /dev/stdin oder denen unter /dev/input ich weiß nicht was jetzt die Modernere oder bessere Methode ist.
[/Edit2]
Also die normalen Sachen wie libc libstdc++ sind natürlich vorhanden. Ich meinte ja es sollen wenig Abhängigkeiten werden aber nicht keine.
Ich weiß jetzt nicht genau was Du wissen willst. Ich dachte an eine Klasse die Daten von der Tastatur Sammelt und per Event das Inputprogramm der KI Informiert das es Arbeit gibt. Eingaben sind Texte also Normale Sprache kann man vermutlich mit einem Chat-Programm vergleichen nur das gegenüber kein Mensch sondern der Computer antwortet.
Wichtig ist das ich bereits während der Eingabe man die Texte im Programm verarbeiten kann. Das geht ja mit std::cin so nicht weil man die Daten erst nach dem return erhält. Wenn man dann stdin mit open öffnet und dann mit read oder so liest geht es vermutlich. Was ich halt gerne vermeiden würde das ich die die ganzen Tastaturlayouts (also die Locale) selber interpretieren muss.
[Edit]
Maus oder Touch soll dann eine Zeichen Erkennung bekommen dann muss man nicht unbedingt die Tastatur verwenden. So irgendwann in der Zukunft vielleicht mal eine Spracherkennung.
[/Edit]
[Edit 2]
Oh hatte ich vergessen zu beantworten. Ich benutze nur Mesa sonst nicht und das hat keine Möglichkeit zur Tastatur abfrage.
Ja am Tastatur Interface lauschen ist schon das was ich auch meinte aber an welchem?
An /dev/stdin oder denen unter /dev/input ich weiß nicht was jetzt die Modernere oder bessere Methode ist.
[/Edit2]
- schorsch_76
- Beiträge: 2597
- Registriert: 06.11.2007 16:00:42
- Lizenz eigener Beiträge: MIT Lizenz
Re: Wie sollte man eine Tastatur/Maus/Touchscreen abfragen .
Ich nutze bsp sehr gerne boost::asio als eventqueue Da kann man auch auf einfache fds dann einen Handler laufen lassen.
Das wird bsp hier eine Idee beschrieben die ich für mich angepasst habe:
http://mostlycoding.blogspot.de/2009/05 ... lpful.html
http://www.boost.org/doc/libs/1_63_0/do ... descriptor
Da kannst du auch den fd des input device reingeben, bei "async_read() bzw. on_read()" bekommst du die Eingabedaten. Daraus machst du ein Function object das du wieder in den io_service postest. Das fo wird dann ausgeführt und mach "seine Magie, Kommandoparsing, was auch immer". Es postet seine Aktionen wieder im io_service
So ähnlich wie in dem blog post.
Wenn du dann mal Spracherkennung machen willst, hörst du am Microfon, erzeugst du ein fo, wirst es in den io_service, der führt es aus, danach kann die spracherkennung dieselbe Aktion auslösen wie bsp ein Tastaturshortcut Der Trick ist, das das function object Daten tragen kann. Der io_service kann nicht nur für networking genutzt werden. Er ist eine thread safe Function object queue. Das ist der Kern von asio.
Es ist fast wie das Kommandopattern.
https://de.wikipedia.org/wiki/Kommando_ ... smuster%29
Das wird bsp hier eine Idee beschrieben die ich für mich angepasst habe:
http://mostlycoding.blogspot.de/2009/05 ... lpful.html
http://www.boost.org/doc/libs/1_63_0/do ... descriptor
Da kannst du auch den fd des input device reingeben, bei "async_read() bzw. on_read()" bekommst du die Eingabedaten. Daraus machst du ein Function object das du wieder in den io_service postest. Das fo wird dann ausgeführt und mach "seine Magie, Kommandoparsing, was auch immer". Es postet seine Aktionen wieder im io_service
So ähnlich wie in dem blog post.
Code: Alles auswählen
io_service.post(boost::bind(an_expensive_calculation, 42));
Es ist fast wie das Kommandopattern.
https://de.wikipedia.org/wiki/Kommando_ ... smuster%29
-
- Beiträge: 298
- Registriert: 16.01.2006 17:44:21
- Lizenz eigener Beiträge: GNU General Public License
Re: Wie sollte man eine Tastatur/Maus/Touchscreen abfragen .
Danke für die Erklärung zu dem asio das war mir noch nicht alles bekannt.
Ich habe schon ein Eventsystem das hatten wir hier schon mal im Forum besprochen (lange her). Das hatte Dir nicht recht gefallen wollen ich finde es aber gut das möchte ich behalten. Sehe ich das richtig uinput und evdev kann man benutzen um aus dem Userland Nachrichten über den Kernel zwischen Prozessen auszutauschen?
Wenn ich richtig gelesen habe: Wayland verwendet evdev für die Eingabegeräte. Also die unter /dev/input ...
Ich habe schon ein Eventsystem das hatten wir hier schon mal im Forum besprochen (lange her). Das hatte Dir nicht recht gefallen wollen ich finde es aber gut das möchte ich behalten. Sehe ich das richtig uinput und evdev kann man benutzen um aus dem Userland Nachrichten über den Kernel zwischen Prozessen auszutauschen?
Wenn ich richtig gelesen habe: Wayland verwendet evdev für die Eingabegeräte. Also die unter /dev/input ...
- schorsch_76
- Beiträge: 2597
- Registriert: 06.11.2007 16:00:42
- Lizenz eigener Beiträge: MIT Lizenz
Re: Wie sollte man eine Tastatur/Maus/Touchscreen abfragen .
Um Nachrichten zwischen Prozessen auszutauschen gibt es:
http://tldp.org/LDP/lpg/node7.html
http://tldp.org/LDP/lpg/lpg.html
EDIT: Ausserdem gibt es auch noch TIPC. Das ist auch im mainline Kernel, ist nur wenig bekannt.
http://www.slideshare.net/JonMaloy/intr ... ng-service
https://en.wikipedia.org/wiki/Transpare ... munication
- Posix Message Queue man 3 mq_send
- Pipes
- Sockets
- Unix Domain Sockets
- Shared Memory
- DBus
- ...
http://tldp.org/LDP/lpg/node7.html
http://tldp.org/LDP/lpg/lpg.html
EDIT: Ausserdem gibt es auch noch TIPC. Das ist auch im mainline Kernel, ist nur wenig bekannt.
http://www.slideshare.net/JonMaloy/intr ... ng-service
https://en.wikipedia.org/wiki/Transpare ... munication
-
- Beiträge: 298
- Registriert: 16.01.2006 17:44:21
- Lizenz eigener Beiträge: GNU General Public License
Re: Wie sollte man eine Tastatur/Maus/Touchscreen abfragen .
Für was ist dann das uinput gedacht?
DBUS habe ich bisher noch nicht benutzt die anderen kenne ich aber. Stimmt die nimmt man normal für so etwas her.
TIPC kenne ich auch noch nicht klingt aber interessant weil es so wie man es liest weniger Aufwändig ist als eine Verbindung über Domainsockets mit TCP und man kann aber weiter die Socket Schnittstelle verwenden.
DBUS habe ich bisher noch nicht benutzt die anderen kenne ich aber. Stimmt die nimmt man normal für so etwas her.
TIPC kenne ich auch noch nicht klingt aber interessant weil es so wie man es liest weniger Aufwändig ist als eine Verbindung über Domainsockets mit TCP und man kann aber weiter die Socket Schnittstelle verwenden.
- schorsch_76
- Beiträge: 2597
- Registriert: 06.11.2007 16:00:42
- Lizenz eigener Beiträge: MIT Lizenz
Re: Wie sollte man eine Tastatur/Maus/Touchscreen abfragen .
uinput ist dafür da, wenn du bsp eine Touch Screen Treiber daemon schreibst, dass du die Maus Position schicken kannst Du lannst damit auh per Programm die Maus bewegen, Klicks auslösen etc pp.
-
- Beiträge: 298
- Registriert: 16.01.2006 17:44:21
- Lizenz eigener Beiträge: GNU General Public License
Re: Wie sollte man eine Tastatur/Maus/Touchscreen abfragen .
Beim lesen von stdin bekommt man die Daten erst wenn die Returntaste betätigt wurde. Das scheint hier das Standard verhalten zu sein. Das ist jetzt für mein vorhaben nicht gut geeignet.
Das mit den Kernel Events liefert mehrer Events pro Tastendruck das ist so Ok für meine Anwendung. Aber diese Scancodes haben nicht wirklich etwas mit einem Zeichensatz oder dem Tastatur Layout. Wenn man das alles selber konvertieren muss ist es schon ein bisschen Mühsam. Aber wie es aussieht der einzige weg an jeden einzelnen Tastendruck zu kommen.
So habe ich das jetzt mal zu experimentieren gemacht:
Das mit den Kernel Events liefert mehrer Events pro Tastendruck das ist so Ok für meine Anwendung. Aber diese Scancodes haben nicht wirklich etwas mit einem Zeichensatz oder dem Tastatur Layout. Wenn man das alles selber konvertieren muss ist es schon ein bisschen Mühsam. Aber wie es aussieht der einzige weg an jeden einzelnen Tastendruck zu kommen.
So habe ich das jetzt mal zu experimentieren gemacht:
Code: Alles auswählen
unsigned char Keyboard::KernelEventRead (void)
{
ssize_t rcRead;
struct input_event eventKeyboard;
//while (1)
{
rcRead = read (idIntKeyboard, &eventKeyboard, sizeof eventKeyboard);
if (rcRead == (ssize_t) -1)
{
return 0;
}
else
if (rcRead != sizeof eventKeyboard)
{
return 0;
}
}
// Prüfen ob es ein Tastencode ist
if (eventKeyboard.type == EV_KEY)
{
if (eventKeyboard.value == 0)
std::cout << "Value: Taste loslassen" << std::endl;
else
if (eventKeyboard.value == 1)
std::cout << "Value: Taste gedrückt" << std::endl;
else
if (eventKeyboard.value == 2)
std::cout << "Value: Auto repeat" << std::endl;
std::cout << "Code : " << eventKeyboard.code << std::endl;
}
return eventKeyboard.code;
}
-
- Beiträge: 298
- Registriert: 16.01.2006 17:44:21
- Lizenz eigener Beiträge: GNU General Public License
Re: Wie sollte man eine Tastatur/Maus/Touchscreen abfragen .
Ich habe jetzt noch das Paket kbd entdeckt das macht ja die Zeichenumsetzung (Scancode => Keycode) aber das geht wie es scheint nur mit /dev/console und das wieder ist etwas das bereits auf die Typische Computer Console zugeschnitten ist. Gibt scheinbar wirklich nur den Weg das über die Kernel Eventschnittstelle für Eingabegeräte zu lesen und die Umsetzung zwischen Scan... und Keycode selber zu bauen. EDV zu Fuß halt. Hatte gedacht es gibt für so eine alltägliche Aufgaben fertige Lösungen. Falsch gedacht ...
- schorsch_76
- Beiträge: 2597
- Registriert: 06.11.2007 16:00:42
- Lizenz eigener Beiträge: MIT Lizenz
Re: Wie sollte man eine Tastatur/Maus/Touchscreen abfragen .
SIehe
http://stackoverflow.com/questions/3649 ... e-in-linux
Man könnte auch einfach mal in QT oder GTK reinschauen wie die das machen
http://stackoverflow.com/questions/3649 ... e-in-linux
Man könnte auch einfach mal in QT oder GTK reinschauen wie die das machen
-
- Beiträge: 298
- Registriert: 16.01.2006 17:44:21
- Lizenz eigener Beiträge: GNU General Public License
Re: Wie sollte man eine Tastatur/Maus/Touchscreen abfragen .
@schorsch_76: Den Link von Dir habe ich mir mal angeschaut. Aber das Programm habe ich nicht ganz verstanden. Die benutzen auf jeden Fall auch die Event Schnittstelle.
Ich schaue mir gerade die libinput von Wayland an. Habe aber da noch nicht die richtige stelle gefunden.
https://cgit.freedesktop.org/wayland/libinput/tree/src
Ich schaue mir gerade die libinput von Wayland an. Habe aber da noch nicht die richtige stelle gefunden.
https://cgit.freedesktop.org/wayland/libinput/tree/src