Funktastaturen und -mäuse sind in Sachen Energiehunger heute sicher nicht mehr mit den ersten Exemplaren ihrer Gattung zu vergleichen. Dennoch frage ich mich bei jedem Batteriewechsel, ob “die paar” Tastendrücke und Mausschubser tatsächlich den Batteriehunger meiner handbetätigten Eingabegeräte rechtfertigen.
Wie viele Tastendrücke, Mausklicks und Mausbewegungen so eine Batterie aushält, wäre doch eigentlich interessant zu wissen. Und überhaupt – was setze ich über meine Tastatur täglich so ans System ab?
Zur Beantwortung solcher Fragen gibt es zahlreiche Tools, teilweise sogar für Linux-Systeme. Das Programm “WhatPulse” beispielsweise ist “sogar” Freeware – aber eben auch “nur” Freeware. Als Möchtegern-Entwickler juckt es mich da direkt in den Fingern, mir das gute, alte xlib nochmal anzusehen – da müsste doch was zu machen sein….?
Herausgekommen ist das kleine Programm “pyInputStats”. Es klinkt sich mit der Record Extension (PDF) in die Tastatur- und Mausereignisse ein und kann so Statistiken über Mausklicks, gedrückte Tasten und Cursorbewegungen erstellen. Die Daten werden dabei so einer SQLite-Datenbank abgelegt, dass keine Rückschlüsse auf konkrete Texteingaben möglich sind. Im Normalbetrieb läuft das Programm weitestgehend unsichtbar und legt lediglich ein Icon im Systray ab. Erst nach einem Klick auf das kleine Lineal kommen die Grafiken zum Vorschein.
Was lässt sich mit dem Programm ablesen?
pyInputStats kann die gesammelten Daten auf unterschiedliche Weise darstellen:
- Gesamtzahl aller Tastenanschläge und Mausklicks. Zurückgelegte Cursor-Meter.
- Durchschnittliche Cursor-Meter, Tastenanschläge und Mausklicks.
- Tages-Übersicht: Darstellung dieser Daten für einen bestimmten Tag – mit grafischer Darstellung des Tagesverlaufs.
- Monats-Übersicht: Grafische Darstellung der Daten über einen gegebenen Monat.
- Tasten-Statistik: Wie oft wurde welche Taste gedrückt?
Probleme und Anmerkungen
Das Skript ist dahingehend recht effizient, als dass es nicht ständig nach neuen Tasten- und Mausinformationen pollt, sondern sich direkt von der xlib über derartige Ereignisse benachrichtigen lässt. Das ändert natürlich nichts an der Tatsache, dass durch das Skript bei jedem Tastendruck und jeder Mausbewegung verschiedene Zähler hochgezählt werden müssen. In der Praxis macht sich dies jedoch nicht bemerkbar – zusätzlicher und eigentlich unnötiger Ballast ist es natürlich dennoch.
Auch sei darauf hingewiesen, dass sich mit dem Programm keine Texteingaben nachvollziehen lassen – es eignet sich also nicht als Keylogger. Allerdings wird schon protokolliert, in welchem Zeitabschnitt wie oft geklickt wurde, wie weit die Maus bewegt wurde und wie viele Tastenanschläge gemacht wurden. Wie in dem oben verlinkten Bild zu sehen, lässt sich aus diesen Daten durchaus ablesen, wann der PC wie intensiv genutzt wurde – eine durchaus sensible Information.
Die grafische Darstellung der Daten ist noch nicht ganz ausgereift. Gerade bei der ersten Nutzung werden vermutlich negative Werte etc. angezeigt. Bereits nach wenigen Minuten sollten die Grafen aber vernünftige Werte anzeigen.
Schließlich und letztlich bietet das Programm die Möglichkeit an, einen Autostart-Eintrag für den derzeitigen Nutzer anzulegen, so dass das Programm bei jeder Anmeldung gestartet wird. Diese Funktion ist derzeit noch etwas fehleranfällig, weswegen im Zweifelsfall händisch ein Autostart-Eintrag angelegt werden sollte.
Abhängigkeiten
Benötigt werden unter anderem die Pakete:
- python-xlib
- python-pysqlite2
sowie gegebenenfalls:
- python-setuptools
Installation
Wie immer findet sich das Projekt bei Launchpad. Ein beherztes bzr branch lp:pyinputstats befördert Quellen auf das lokale System, wenn Bazaar installiert ist. Ansonsten kann das Paket natürlich auch ganz normal heruntergeladen werden.
Eine Installation ist grundsätzlich nicht notwendig – das Skript kann aus dem Skript-Verzeichnis mit python pyinputstats gestartet werden. Wer das Skript dennoch im System verankern möchte, kann einfach den Befehl python setup.py install mit Root-Rechten ausführen.
Probleme und Fehler bitte ich im Launchpad-Bugtracker oder hier in den Kommentaren zu notieren. Dafür schonmal vielen Dank! Und jetzt heißt es: Wer schafft die meisten Tastenanschläge am Tag? Mein erstes Gebot lautet 36.676.
Coole Sache! Werd’ ich mir bei Gelegenheit mal anschauen – danke für’s Offenlegen der Quellen. Ich kann bestimmt etwas lernen! (Das ist bei Ubuntuusers ja leider nicht immer der Fall, dass man offene Quelltexte fördert.) Denkbar wäre auf den ersten Blick (deines Blogbeitrages – nicht des Programms und/oder dessen Quelltext) m.E. auch eine Anbindung an Zeiterfassungstools wie Hamster o.ä.. Wenn ich doch nur mehr Zeit hätte … aber wer hat dieses Problem nicht?!
Gruß
Pa_trick17
Das Programm ist ionteressant, ich denke das gleiche wie mein Vorposter – man kann sicherlich viel daraus lernen. Ich habe das ganze via bazaar geholt und auch schon gestartet, allerdings bin ich scheinbar zu doof, mir die Statistiken anzeigen zu lassen.
Wie geht das?
Hallo!
Nach dem Start erscheint in der Trayleiste ein neues Icon (ein Lineal). Wenn du darauf klickst erscheint ein Fenster….
Besten Gruß,
dsn
Das habe ich auch bemerkt, als ich mein Rhytmbox beenden wollte…
Sorry für die dumme Frage, aber mein Panel ist standardmäßig ausgeblendet. Danke trotzdem
hallo, vielen Dank für das Programm. Sieht wirklich gut aus.
Läuft auch ohne Probleme unter KDE. Coole Sache!
Das ist gut zu wissen, danke für den Hinweis. Auch der Autostart? Bei dem bin ich mir nicht so sicher, das sollte eigentlich der XDG-Autostart Spezifikation entsprechen, soweit ich weiß linkt man aber in KDE gerne einfach die Executables nach .kde/Autostart während XDG ja .desktop-Dateien in ~/.config/autostart vorsieht. Whatever
Auch der Autostart funktioniert. Ich glaube, KDE unterstützt den entsprechenden freedesktop.org-Standard schon recht lange.
hm, cool
Jetzt könnte man endlich empirisch Belege sammeln für unsere unterschiedlichen Nutzerprofile: Also Mausgesten-Genie vs. Shortcutnazi.
Doch wie misst man, welches Nutzungsprofil effizienter ist?
Da müssen wir wohl einen verbindlichen Test formulieren. Einen bestimmten Text nach Vorgabe formatieren oder sowas. Aber diese grundlegende Erkenntnis ist wohl jeden denkbaren Aufwand wert… *husträusper*
Ich glaube wir müssten erst Probanden finden, die ansonsten in allen ihren Eigenschaften, außer der fraglichen, völlig identisch sind. Das schreit also nach einer Zwillingsstudie!