Seite 1 von 1
Tastendruck feststellen
Verfasst: Mittwoch 2. September 2015, 07:11
von joh#
Hallo,
wie kann ich mit python 2.7 unter linux feststellen, ob eine Taste am Gerät gedrückt wurde,
egal von welchem Benutzer? Der Wunsch ist, den Rechner in den standby zu bringen, wenn
10min nichts mehr getippt wurde. (Mouseaktivität zu erkennen wäre schön, muß aber nicht sein)
gruß
joh
Re: Tastendruck feststellen
Verfasst: Mittwoch 2. September 2015, 08:54
von BlackJack
@joh#: Dafür gibt es doch eigentlich schon Lösungen, warum selber etwas basteln?
Re: Tastendruck feststellen
Verfasst: Mittwoch 2. September 2015, 09:03
von joh#
BlackJack hat geschrieben:@joh#: Dafür gibt es doch eigentlich schon Lösungen, warum selber etwas basteln?
ich hab' schon die Suche bemüht, ein link oder Suchbegriff wäre nett,
für win gibt es da pyHook, aber für lin?
Re: Tastendruck feststellen
Verfasst: Mittwoch 2. September 2015, 09:58
von BlackJack
@joh#: Ich meinte Lösungen für das *Problem*, nicht Lösungen um selbst eine Lösung zu schreiben. Wenn ich will das mein Rechner nach x Minuten in Standby geht, dann konfiguriere ich das in den Systemeinstellungen.
Re: Tastendruck feststellen
Verfasst: Mittwoch 2. September 2015, 10:42
von Dav1d
Wie BlackJack schon sagte, es gibt Tools für Linux, die das für dich übernehmen (systemd kann das sogar iirc), falls du kein DE verwendest, ansonsten kann das im Grunde jedes DE.
Falls du doch damit spielen willst, kannst du das mit der Xlib machen, bzw.
ooxcb, das Projekt sieht tot aus, aber bisher hat es alle Features abgedeckt die ich gebraucht habe.
Re: Tastendruck feststellen
Verfasst: Mittwoch 2. September 2015, 14:00
von joh#
Dav1d hat geschrieben:Wie BlackJack schon sagte, es gibt Tools für Linux, die das für dich übernehmen (systemd kann das sogar iirc), falls du kein DE verwendest, ansonsten kann das im Grunde jedes DE.
Ja, das habe ich schon versucht (alter COMPAQ laptop mit ubuntu 12.04 unter |Alle Einstellungen | Leistung ) Das geht nur manchmal, z.B. bei hoher
Auslastung aber nicht. Auch sind wir dann hier bei bash-programmieren, da bin ich nicht so bewandert. Deshalb die Hoffnung, daß
es bei python unmittelbar eine Möglichkeit gibt.
Dav1d hat geschrieben:
Falls du doch damit spielen willst, kannst du das mit der Xlib machen, bzw.
ooxcb, das Projekt sieht tot aus, aber bisher hat es alle Features abgedeckt die ich gebraucht habe.
Sorry, das braucht erst mal ein stück Einarbeitung.
Kann denn ein von Root beim booten gestartetes Programm denn damit eine von user xy gedrückte Taste erkennen.
Das was in ooxcb noch am ehesten danach klingt ist dort eventsys.py ..?
Re: Tastendruck feststellen
Verfasst: Mittwoch 2. September 2015, 15:00
von Dav1d
joh# hat geschrieben:Dav1d hat geschrieben:
Falls du doch damit spielen willst, kannst du das mit der Xlib machen, bzw.
ooxcb, das Projekt sieht tot aus, aber bisher hat es alle Features abgedeckt die ich gebraucht habe.
Sorry, das braucht erst mal ein stück Einarbeitung.
Kann denn ein von Root beim booten gestartetes Programm denn damit eine von user xy gedrückte Taste erkennen.
Das was in ooxcb noch am ehesten danach klingt ist dort eventsys.py ..?
Root kann alles.
Xlib und xcb sind im Grunde das gleiche, allerdings hat xcb ne schönere API.
xcb hat events und
xlib hat auch events. Suchs dir aus, persönlich würde ich zu xcb greifen.
Re: Tastendruck feststellen
Verfasst: Mittwoch 2. September 2015, 16:33
von joh#
d.h. ohne erst mal irgendeine Möglichkeit code aus C Bibliotheken aufzurufen zu lernen, kann ich meinen Plan vergessen..?
Re: Tastendruck feststellen
Verfasst: Mittwoch 2. September 2015, 17:12
von BlackJack
@joh#: Den Wrapper gibt's mit `ooxcb` doch bereits.
Re: Tastendruck feststellen
Verfasst: Mittwoch 2. September 2015, 22:20
von Dav1d
joh# hat geschrieben:d.h. ohne erst mal irgendeine Möglichkeit code aus C Bibliotheken aufzurufen zu lernen, kann ich meinen Plan vergessen..?
Ich hab doch nur zur C-Dokumentation verlinkt (weil das so ziemlich die Einzige ist), es gibt Xlib Python-Bindings und eine xcb Python-Bibliothek habe ich dir vorher schon verlinkt (ooxcb).