it-swarm.com.de

Wie zähle ich die Klicks der Maustasten?

Wie zähle ich die Mausklicks seit dem Start von Ubuntu?

Ich möchte Mausklick-Statistiken machen, also brauche ich sie.

Vielen Dank

6
lukasz

xinput kann tun, was du brauchst, Lukasz. Sie können einen Einzeiler haben (naja, nicht genau ein Einzeiler, aber Sie drücken nur einmal die EINGABETASTE :-D), aber zuerst müssen Sie etwas arbeiten. Ich schwöre, es ist ziemlich einfach, ich werde die meisten Dinge hier nur der Klarheit halber erklären.

Öffnen Sie ein Terminal und geben Sie Folgendes ein:

xinput list

Sie erhalten eine schöne Liste von Zeigern, Tastaturtasten usw., wie diesen Auszug aus meinem:

⎡ Virtual core pointer                      id=2    [master pointer  (3)]
⎜   ↳ Virtual core XTEST pointer                id=4    [slave  pointer  (2)]
⎜   ↳ USB+PS/2 Optical Mouse                    id=10   [slave  pointer  (2)]
⎜   ↳ PS/2 Mouse                                id=13   [slave  pointer  (2)]
⎜   ↳ AlpsPS/2 ALPS GlidePoint                  id=14   [slave  pointer  (2)]

Meine USB-Maus befindet sich direkt in der zweiten Zeile, und Sie sehen, dass ihre ID 1 lautet. Suchen Sie Ihre Maus in der Liste und notieren Sie ihre ID. Sie benötigen sie für den Hauptbefehl für das, was Sie möchten.

Wenn Sie überprüfen möchten, ob Sie die richtige ID haben, führen Sie xinput test <id> aus. Wenn Sie die Maus bewegen, auf Schaltflächen klicken usw., sollten auf Ihrem Terminal viele Infozeilen auftauchen. Es listet alles auf, was Sie mit Ihrer Maus tun. Wenn nichts passiert, versuchen Sie es mit einer anderen ID aus Ihrer Zeigerliste, die für Sie sinnvoll ist. Sie haben wahrscheinlich zuerst die falsche ausgewählt (das sollte wirklich nicht so schwer sein).

Wenn Sie endlich die richtige ID gefunden haben, führen Sie den folgenden Befehl aus:

xinput test <id>|sed -une '/release/ {      x
     /^$/ s/^.*$/1/
     G
     h
     s/^/      /
     s/^ *\(......\)\n/\1  /p
     x
     s/\n.*$//
     /^9*$/ s/^/0/
     s/.9*$/x&/
     h
     s/^.*x//
     y/0123456789/1234567890/
     x
     s/x.*$//
     G
     s/\n//
     h
}'

Kopieren Sie das Obige wie es ist und fügen Sie es ein. Ersetzen Sie <id> durch die ID, die Sie gefunden haben, bevor Sie die EINGABETASTE drücken. Wenn Sie es ausführen, lassen Sie es dort, während Sie mit der Verwendung des Systems fortfahren. Wann immer Sie überprüfen möchten, wie viele Klicks registriert wurden, werfen Sie einen Blick auf das Terminal.

Einige wichtige Kommentare:

  • Leider kann ich nicht so gut mit Konsole, Shell, Befehlen usw. umgehen. Ich bin mir ziemlich sicher, dass jemand dies verbessern oder eine bessere Lösung anbieten kann. Mit meiner Lösung ist eine Unannehmlichkeit verbunden: Sie haben nicht wirklich Ergebnisse in Echtzeit. Aus irgendeinem Grund scheint es Puffer zu geben, und Sie müssen mehr Mausereignisse generieren, um die älteren zu lesen. Wenn Sie also einen Klick ausführen und dieser nicht angezeigt wird, bewegen Sie die Maus ein wenig und bald wird der letzte Klick angezeigt. Tut mir leid, aber ich habe einige Dinge ausprobiert, weiß aber noch nicht, wie ich das lösen soll. Hoffe es ist nicht so schlimm für dich.
  • Wie Sie sehen, wird beliebig Klick gezählt. Wenn Sie die Klicks nur für eine der Schaltflächen zählen möchten, ersetzen Sie "Release" durch "Release 1", "Release 2", "Release 3". Nun, Sie haben die Idee. Wenn Sie alle zählen möchten, jedoch mit separaten Statistiken, führen Sie den Befehl (mit der entsprechenden Schaltflächenangabe) in einem separaten Terminal aus.

Der Ansatz, den ich verwendet habe: xinput list <id> erledigt den Dirty Job und zeigt alles, was mit der Maus passiert. Dann leite ich diese Ausgabe zu sed um, wodurch nur Zeilen mit 'release'-Ereignissen analysiert werden. Ich denke, es ist in Ordnung zu berücksichtigen, dass ein "Release" -Ereignis den "Klick" -Prozess beendet (Taste runter und dann rauf). Das sed-Skript zeigt die Zeilen nicht nur mit 'release' an, sondern nummeriert sie auch. Dieses Skript wurde direkt aus info sed (Abschnitt 4.7) kopiert und könnte sicherlich verbessert werden.

Obwohl nicht ganz das, was Sie wollen, ist WhatPulse etwas Schönes, um verschiedene Leckerbissen wie diese im Auge zu behalten + ein Online-Ranking mit Teams, Ländern, ...

0
Ward Muylaert

Sie können evtest verwenden, das vom Linux-Input-Projekt bereitgestellt wird.

Aber Sie müssen sicher sein, dass CONFIG_INPUT_EVBUG = y im Kernel ist (wahrscheinlich die Standardeinstellung, wenn Sie die Debug-Version installieren) und die Debug-Ebene auf 8 setzen

echo 8 > /proc/sys/kernel/printk

An dieser Stelle sehen Sie auf der Konsole mehrere Meldungen, die Sie analysieren können.

evbug.c: Event. Dev: gpio-keys/input0, Type: 0, Code: 0, Value: 0
evbug.c: Event. Dev: gpio-keys/input0, Type: 1, Code: 103, Value: 1

Sie können dann die Pakete bitbake und evtest installieren

Sudo apt-get install bitbake evtest

Anschließend können Sie evtest für Ihr Gerät verwenden. Sie müssen einige Tests durchführen, um das richtige Ereignis zu ermitteln, und Sie können das Auftreten dieses Ereignisses zählen.

evtest /dev/input/eventXX

Wenn Sie andernfalls nur den Klick zählen möchten, seit Sie sich bei GDM/XDM angemeldet haben, können Sie eine Anwendung mit GTK, Qt oder wxWidgets, Enlightenment oder was auch immer entwickeln oder jemanden dazu auffordern, Mausereignisse zu überwachen und starte diese anwendung sobald der desktopm hochgefahren ist.

0
tmow