Как считать клики на кнопках мыши?

Как считать клики кнопок мыши с момента запуска Ubuntu?

Я бы хотел сделать статистику нажатием кнопки мыши, поэтому мне это нужно.

Спасибо

6
задан 30 December 2010 в 10:58

36 ответов

xinput может делать то, что вам нужно, Лукаш. У вас может быть однострочный (ну, не совсем однострочный, но вы нажимаете ENTER только один раз: -D) для этого, но сначала вы должны выполнить какую-то работу. Я клянусь, это довольно легко, я просто объясню большую часть этого здесь для ясности.

Откройте терминал и введите:

xinput list

Вы получите хороший список указателей, кнопок на клавиатуре и т. д., как этот отрывок из моего:

⎡ 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)]

Моя USB-мышь справа на второй строке, и вы видите, что ее идентификатор . Найдите свою мышь в списке и отметьте ее идентификатор, вам понадобится ее для основной команды для того, что вы хотите.

Если вы хотите проверить, есть ли у вас правильный идентификатор, запустите xinput test <id>. Если вы перемещаете мышь, нажимаете кнопки и т. Д., Вы должны увидеть много информационных линий, поднимающихся на вашем терминале. Он перечисляет все, что вы делаете с помощью мыши. Если ничего не происходит, попробуйте другой идентификатор из списка указателей, который имеет для вас смысл, вы, вероятно, сначала выбрали неправильный (это действительно не должно быть так сложно).

Когда вы, наконец, нашли правильный идентификатор , запустите эту команду:

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 }'

Скопируйте приведенное выше, как есть, и вставьте его. Прежде чем нажать ENTER, замените & lt; id & gt; с этим идентификатором вы нашли. Когда вы запустите его, вы можете его туда, пока вы продолжаете использовать систему.

Некоторые важные комментарии:

К сожалению, я не очень хорошо разбираюсь в консоли, оболочке , команды и т. д. Я уверен, что кто-то может улучшить это или обеспечить лучшее решение. У меня есть неудобство: у вас нет реальных результатов в реальном времени. По какой-то причине, похоже, буферизация, и вы должны генерировать больше событий мыши для чтения старых. Поэтому, если вы сделаете клик, и он не отображается, немного передвиньте мышь, и скоро появится последний клик. Извините, но я кое-что пробовал, но пока не знаю, как это решить. Надеюсь, это не так уж плохо для вас. Как вы видите, подсчитывается любой клик. Если вы хотите подсчитать клики только для одной из кнопок, замените «release» на «выпуск 1», «выпуск 2», «выпуск 3», ну, у вас есть идея. Если вы хотите подсчитать их все, но с отдельной статистикой, запустите команду (с соответствующей индикацией кнопки) в отдельном терминале.

Подход, который я использовал: xinput list <id> выполняет грязную работу, показывая все, что происходит с мышью. Затем я перенаправляю этот вывод на sed, который будет анализировать только строки с событиями «выпуска». Я предполагаю, что можно считать, что событие «выпуска» завершает «процесс щелчка» (кнопка вниз, а затем вверх). Сценарий sed не только показывает строки с «release», но и их номера. Этот скрипт был скопирован непосредственно из info sed (раздел 4.7) и, безусловно, может быть улучшен.

4
ответ дан 25 July 2018 в 22:41
  • 1
    Как насчет: xinput test $id | awk 'BEGIN { count=0 } /release/ { count=count+1; printf "\r%-6d", count }' – Jeremy Kerr 17 February 2011 в 14:44
  • 2
    @Jeremy Я был очень рад видеть решение awk, но когда я попробовал это в своей системе, он ничего не отображал. Работал для вас? Есть какие-то намеки, почему он просто ждал здесь? – Charles Roberto Canato 28 February 2011 в 09:37
  • 3
    awk будет буферизировать свой вход, так что может потребоваться несколько событий, прежде чем вы получите первый отпечаток. – Jeremy Kerr 1 March 2011 в 04:55

Вы можете использовать evtest, предоставленный проектом linux-input.

Но вы должны обязательно иметь CONFIG_INPUT_EVBUG = y в ядре (возможно, по умолчанию, если вы устанавливаете версию отладки) и установить отладку level to 8

echo 8 > /proc/sys/kernel/printk

В этот момент из консоли вы увидите несколько сообщений, которые вы можете проанализировать.

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

Затем вы можете установить битбак и evtest packages

sudo apt-get install bitbake evtest

Затем вы можете использовать evtest против своего устройства, вам понадобятся некоторые тесты, чтобы узнать нужное событие, которое вам нужно, и вы можете подсчитать возникновение этого события.

evtest /dev/input/eventXX

В противном случае, если вы хотите считать только клик с момента входа в GDM / XDM, вы можете разработать или попросить кого-нибудь сделать это, приложение с использованием GTK или Qt или wxWidgets, Просветление, или как вам угодно, следить за событиями мыши и запускать это приложение, как только появится рабочий стол.

0
ответ дан 25 July 2018 в 22:41
  • 1
    Это решение немного сложно для меня, я бы предпочел сценарий или небольшую программу :( – lukasz 31 December 2010 в 00:37

ОК, я написал программу Python для подсчета кликов. Он работает как демон и сохраняет данные в базе данных sqlite3. Это моя первая программа на Python, поэтому она может содержать ошибки.

https://github.com/lukaszg/kmstats

1
ответ дан 25 July 2018 в 22:41
  • 1
    Ваш URL-адрес дает мне ошибку 404. Проверьте его и при необходимости обновите свой ответ. – Lucio 19 August 2012 в 05:46

Хотя не совсем то, что вы хотите, WhatPulse - это что-то приятное, чтобы отслеживать различные титры, подобные этому + онлайн-рейтинге с командами, странами, ...

0
ответ дан 25 July 2018 в 22:41

xinput может делать то, что вам нужно, Лукаш. У вас может быть однострочный (ну, не совсем однострочный, но вы нажимаете ENTER только один раз: -D) для этого, но сначала вы должны выполнить какую-то работу. Я клянусь, это довольно легко, я просто объясню большую часть этого здесь для ясности.

Откройте терминал и введите:

xinput list

Вы получите хороший список указателей, кнопок на клавиатуре и т. д., как этот отрывок из моего:

⎡ 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)]

Моя USB-мышь справа на второй строке, и вы видите, что ее идентификатор . Найдите свою мышь в списке и отметьте ее идентификатор, вам понадобится ее для основной команды для того, что вы хотите.

Если вы хотите проверить, есть ли у вас правильный идентификатор, запустите xinput test <id>. Если вы перемещаете мышь, нажимаете кнопки и т. Д., Вы должны увидеть много информационных линий, поднимающихся на вашем терминале. Он перечисляет все, что вы делаете с помощью мыши. Если ничего не происходит, попробуйте другой идентификатор из списка указателей, который имеет для вас смысл, вы, вероятно, сначала выбрали неправильный (это действительно не должно быть так сложно).

Когда вы, наконец, нашли правильный идентификатор , запустите эту команду:

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 }'

Скопируйте приведенное выше, как есть, и вставьте его. Прежде чем нажать ENTER, замените & lt; id & gt; с этим идентификатором вы нашли. Когда вы запустите его, вы можете его туда, пока вы продолжаете использовать систему.

Некоторые важные комментарии:

К сожалению, я не очень хорошо разбираюсь в консоли, оболочке , команды и т. д. Я уверен, что кто-то может улучшить это или обеспечить лучшее решение. У меня есть неудобство: у вас нет реальных результатов в реальном времени. По какой-то причине, похоже, буферизация, и вы должны генерировать больше событий мыши для чтения старых. Поэтому, если вы сделаете клик, и он не отображается, немного передвиньте мышь, и скоро появится последний клик. Извините, но я кое-что пробовал, но пока не знаю, как это решить. Надеюсь, это не так уж плохо для вас. Как вы видите, подсчитывается любой клик. Если вы хотите подсчитать клики только для одной из кнопок, замените «release» на «выпуск 1», «выпуск 2», «выпуск 3», ну, у вас есть идея. Если вы хотите подсчитать их все, но с отдельной статистикой, запустите команду (с соответствующей индикацией кнопки) в отдельном терминале.

Подход, который я использовал: xinput list <id> выполняет грязную работу, показывая все, что происходит с мышью. Затем я перенаправляю этот вывод на sed, который будет анализировать только строки с событиями «выпуска». Я предполагаю, что можно считать, что событие «выпуска» завершает «процесс щелчка» (кнопка вниз, а затем вверх). Сценарий sed не только показывает строки с «release», но и их номера. Этот скрипт был скопирован непосредственно из info sed (раздел 4.7) и, безусловно, может быть улучшен.

4
ответ дан 26 July 2018 в 23:40
  • 1
    Как насчет: xinput test $id | awk 'BEGIN { count=0 } /release/ { count=count+1; printf "\r%-6d", count }' – Jeremy Kerr 17 February 2011 в 14:44
  • 2
    @Jeremy Я был очень рад видеть решение awk, но когда я попробовал это в своей системе, он ничего не отображал. Работал для вас? Есть какие-то намеки, почему он просто ждал здесь? – Charles Roberto Canato 28 February 2011 в 09:37
  • 3
    awk будет буферизировать свой вход, так что может потребоваться несколько событий, прежде чем вы получите первый отпечаток. – Jeremy Kerr 1 March 2011 в 04:55

Вы можете использовать evtest, предоставленный проектом linux-input.

Но вы должны обязательно иметь CONFIG_INPUT_EVBUG = y в ядре (возможно, по умолчанию, если вы устанавливаете версию отладки) и установить отладку level to 8

echo 8 > /proc/sys/kernel/printk

В этот момент из консоли вы увидите несколько сообщений, которые вы можете проанализировать.

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

Затем вы можете установить битбак и evtest packages

sudo apt-get install bitbake evtest

Затем вы можете использовать evtest против своего устройства, вам понадобятся некоторые тесты, чтобы узнать нужное событие, которое вам нужно, и вы можете подсчитать возникновение этого события.

evtest /dev/input/eventXX

В противном случае, если вы хотите считать только клик с момента входа в GDM / XDM, вы можете разработать или попросить кого-нибудь сделать это, приложение с использованием GTK или Qt или wxWidgets, Просветление, или как вам угодно, следить за событиями мыши и запускать это приложение, как только появится рабочий стол.

0
ответ дан 26 July 2018 в 23:40
  • 1
    Это решение немного сложно для меня, я бы предпочел сценарий или небольшую программу :( – lukasz 31 December 2010 в 00:37

ОК, я написал программу Python для подсчета кликов. Он работает как демон и сохраняет данные в базе данных sqlite3. Это моя первая программа на Python, поэтому она может содержать ошибки.

https://github.com/lukaszg/kmstats

1
ответ дан 26 July 2018 в 23:40
  • 1
    Ваш URL-адрес дает мне ошибку 404. Проверьте его и при необходимости обновите свой ответ. – Lucio 19 August 2012 в 05:46

Хотя не совсем то, что вы хотите, WhatPulse - это что-то приятное, чтобы отслеживать различные титры, подобные этому + онлайн-рейтинге с командами, странами, ...

0
ответ дан 26 July 2018 в 23:40

xinput может делать то, что вам нужно, Лукаш. У вас может быть однострочный (ну, не совсем однострочный, но вы нажимаете ENTER только один раз: -D) для этого, но сначала вы должны выполнить какую-то работу. Я клянусь, это довольно легко, я просто объясню большую часть этого здесь для ясности.

Откройте терминал и введите:

xinput list

Вы получите хороший список указателей, кнопок на клавиатуре и т. д., как этот отрывок из моего:

⎡ 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)]

Моя USB-мышь справа на второй строке, и вы видите, что ее идентификатор . Найдите свою мышь в списке и отметьте ее идентификатор, вам понадобится ее для основной команды для того, что вы хотите.

Если вы хотите проверить, есть ли у вас правильный идентификатор, запустите xinput test <id>. Если вы перемещаете мышь, нажимаете кнопки и т. Д., Вы должны увидеть много информационных линий, поднимающихся на вашем терминале. Он перечисляет все, что вы делаете с помощью мыши. Если ничего не происходит, попробуйте другой идентификатор из списка указателей, который имеет для вас смысл, вы, вероятно, сначала выбрали неправильный (это действительно не должно быть так сложно).

Когда вы, наконец, нашли правильный идентификатор , запустите эту команду:

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 }'

Скопируйте приведенное выше, как есть, и вставьте его. Прежде чем нажать ENTER, замените & lt; id & gt; с этим идентификатором вы нашли. Когда вы запустите его, вы можете его туда, пока вы продолжаете использовать систему.

Некоторые важные комментарии:

К сожалению, я не очень хорошо разбираюсь в консоли, оболочке , команды и т. д. Я уверен, что кто-то может улучшить это или обеспечить лучшее решение. У меня есть неудобство: у вас нет реальных результатов в реальном времени. По какой-то причине, похоже, буферизация, и вы должны генерировать больше событий мыши для чтения старых. Поэтому, если вы сделаете клик, и он не отображается, немного передвиньте мышь, и скоро появится последний клик. Извините, но я кое-что пробовал, но пока не знаю, как это решить. Надеюсь, это не так уж плохо для вас. Как вы видите, подсчитывается любой клик. Если вы хотите подсчитать клики только для одной из кнопок, замените «release» на «выпуск 1», «выпуск 2», «выпуск 3», ну, у вас есть идея. Если вы хотите подсчитать их все, но с отдельной статистикой, запустите команду (с соответствующей индикацией кнопки) в отдельном терминале.

Подход, который я использовал: xinput list <id> выполняет грязную работу, показывая все, что происходит с мышью. Затем я перенаправляю этот вывод на sed, который будет анализировать только строки с событиями «выпуска». Я предполагаю, что можно считать, что событие «выпуска» завершает «процесс щелчка» (кнопка вниз, а затем вверх). Сценарий sed не только показывает строки с «release», но и их номера. Этот скрипт был скопирован непосредственно из info sed (раздел 4.7) и, безусловно, может быть улучшен.

4
ответ дан 31 July 2018 в 12:23
  • 1
    Как насчет: xinput test $id | awk 'BEGIN { count=0 } /release/ { count=count+1; printf "\r%-6d", count }' – Jeremy Kerr 17 February 2011 в 14:44
  • 2
    @Jeremy Я был очень рад видеть решение awk, но когда я попробовал это в своей системе, он ничего не отображал. Работал для вас? Есть какие-то намеки, почему он просто ждал здесь? – Charles Roberto Canato 28 February 2011 в 09:37
  • 3
    awk будет буферизировать свой вход, так что может потребоваться несколько событий, прежде чем вы получите первый отпечаток. – Jeremy Kerr 1 March 2011 в 04:55

Вы можете использовать evtest, предоставленный проектом linux-input.

Но вы должны обязательно иметь CONFIG_INPUT_EVBUG = y в ядре (возможно, по умолчанию, если вы устанавливаете версию отладки) и установить отладку level to 8

echo 8 > /proc/sys/kernel/printk

В этот момент из консоли вы увидите несколько сообщений, которые вы можете проанализировать.

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

Затем вы можете установить битбак и evtest packages

sudo apt-get install bitbake evtest

Затем вы можете использовать evtest против своего устройства, вам понадобятся некоторые тесты, чтобы узнать нужное событие, которое вам нужно, и вы можете подсчитать возникновение этого события.

evtest /dev/input/eventXX

В противном случае, если вы хотите считать только клик с момента входа в GDM / XDM, вы можете разработать или попросить кого-нибудь сделать это, приложение с использованием GTK или Qt или wxWidgets, Просветление, или как вам угодно, следить за событиями мыши и запускать это приложение, как только появится рабочий стол.

0
ответ дан 31 July 2018 в 12:23
  • 1
    Это решение немного сложно для меня, я бы предпочел сценарий или небольшую программу :( – lukasz 31 December 2010 в 00:37

ОК, я написал программу Python для подсчета кликов. Он работает как демон и сохраняет данные в базе данных sqlite3. Это моя первая программа на Python, поэтому она может содержать ошибки.

https://github.com/lukaszg/kmstats

1
ответ дан 31 July 2018 в 12:23
  • 1
    Ваш URL-адрес дает мне ошибку 404. Проверьте его и при необходимости обновите свой ответ. – Lucio 19 August 2012 в 05:46

Хотя не совсем то, что вы хотите, WhatPulse - это что-то приятное, чтобы отслеживать различные титры, подобные этому + онлайн-рейтинге с командами, странами, ...

0
ответ дан 31 July 2018 в 12:23

xinput может делать то, что вам нужно, Лукаш. У вас может быть однострочный (ну, не совсем однострочный, но вы нажимаете ENTER только один раз: -D) для этого, но сначала вы должны выполнить какую-то работу. Я клянусь, это довольно легко, я просто объясню большую часть этого здесь для ясности.

Откройте терминал и введите:

xinput list

Вы получите хороший список указателей, кнопок на клавиатуре и т. д., как этот отрывок из моего:

⎡ 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)]

Моя USB-мышь справа на второй строке, и вы видите, что ее идентификатор . Найдите свою мышь в списке и отметьте ее идентификатор, вам понадобится ее для основной команды для того, что вы хотите.

Если вы хотите проверить, есть ли у вас правильный идентификатор, запустите xinput test <id>. Если вы перемещаете мышь, нажимаете кнопки и т. Д., Вы должны увидеть много информационных линий, поднимающихся на вашем терминале. Он перечисляет все, что вы делаете с помощью мыши. Если ничего не происходит, попробуйте другой идентификатор из списка указателей, который имеет для вас смысл, вы, вероятно, сначала выбрали неправильный (это действительно не должно быть так сложно).

Когда вы, наконец, нашли правильный идентификатор , запустите эту команду:

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 }'

Скопируйте приведенное выше, как есть, и вставьте его. Прежде чем нажать ENTER, замените & lt; id & gt; с этим идентификатором вы нашли. Когда вы запустите его, вы можете его туда, пока вы продолжаете использовать систему.

Некоторые важные комментарии:

К сожалению, я не очень хорошо разбираюсь в консоли, оболочке , команды и т. д. Я уверен, что кто-то может улучшить это или обеспечить лучшее решение. У меня есть неудобство: у вас нет реальных результатов в реальном времени. По какой-то причине, похоже, буферизация, и вы должны генерировать больше событий мыши для чтения старых. Поэтому, если вы сделаете клик, и он не отображается, немного передвиньте мышь, и скоро появится последний клик. Извините, но я кое-что пробовал, но пока не знаю, как это решить. Надеюсь, это не так уж плохо для вас. Как вы видите, подсчитывается любой клик. Если вы хотите подсчитать клики только для одной из кнопок, замените «release» на «выпуск 1», «выпуск 2», «выпуск 3», ну, у вас есть идея. Если вы хотите подсчитать их все, но с отдельной статистикой, запустите команду (с соответствующей индикацией кнопки) в отдельном терминале.

Подход, который я использовал: xinput list <id> выполняет грязную работу, показывая все, что происходит с мышью. Затем я перенаправляю этот вывод на sed, который будет анализировать только строки с событиями «выпуска». Я предполагаю, что можно считать, что событие «выпуска» завершает «процесс щелчка» (кнопка вниз, а затем вверх). Сценарий sed не только показывает строки с «release», но и их номера. Этот скрипт был скопирован непосредственно из info sed (раздел 4.7) и, безусловно, может быть улучшен.

4
ответ дан 2 August 2018 в 04:07
  • 1
    Как насчет: xinput test $id | awk 'BEGIN { count=0 } /release/ { count=count+1; printf "\r%-6d", count }' – Jeremy Kerr 17 February 2011 в 14:44
  • 2
    @Jeremy Я был очень рад видеть решение awk, но когда я попробовал это в своей системе, он ничего не отображал. Работал для вас? Есть какие-то намеки, почему он просто ждал здесь? – Charles Roberto Canato 28 February 2011 в 09:37
  • 3
    awk будет буферизировать свой вход, так что может потребоваться несколько событий, прежде чем вы получите первый отпечаток. – Jeremy Kerr 1 March 2011 в 04:55

Вы можете использовать evtest, предоставленный проектом linux-input.

Но вы должны обязательно иметь CONFIG_INPUT_EVBUG = y в ядре (возможно, по умолчанию, если вы устанавливаете версию отладки) и установить отладку level to 8

echo 8 > /proc/sys/kernel/printk

В этот момент из консоли вы увидите несколько сообщений, которые вы можете проанализировать.

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

Затем вы можете установить битбак и evtest packages

sudo apt-get install bitbake evtest

Затем вы можете использовать evtest против своего устройства, вам понадобятся некоторые тесты, чтобы узнать нужное событие, которое вам нужно, и вы можете подсчитать возникновение этого события.

evtest /dev/input/eventXX

В противном случае, если вы хотите считать только клик с момента входа в GDM / XDM, вы можете разработать или попросить кого-нибудь сделать это, приложение с использованием GTK или Qt или wxWidgets, Просветление, или как вам угодно, следить за событиями мыши и запускать это приложение, как только появится рабочий стол.

0
ответ дан 2 August 2018 в 04:07
  • 1
    Это решение немного сложно для меня, я бы предпочел сценарий или небольшую программу :( – lukasz 31 December 2010 в 00:37

ОК, я написал программу Python для подсчета кликов. Он работает как демон и сохраняет данные в базе данных sqlite3. Это моя первая программа на Python, поэтому она может содержать ошибки.

https://github.com/lukaszg/kmstats

1
ответ дан 2 August 2018 в 04:07
  • 1
    Ваш URL-адрес дает мне ошибку 404. Проверьте его и при необходимости обновите свой ответ. – Lucio 19 August 2012 в 05:46

Хотя не совсем то, что вы хотите, WhatPulse - это что-то приятное, чтобы отслеживать различные титры, подобные этому + онлайн-рейтинге с командами, странами, ...

0
ответ дан 2 August 2018 в 04:07

Вы можете использовать evtest, предоставленный проектом linux-input .

Но вы обязательно должны иметь CONFIG_INPUT_EVBUG = y в ядре (возможно, по умолчанию, если вы устанавливаете debug) и установите уровень отладки на 8

  echo 8 & gt;  / proc / sys / kernel / printk  

На этом этапе из консоли вы увидите несколько сообщений, которые вы можете проанализировать.

  evbug.  c: Событие.  Dev: gpio-keys / input0, Тип: 0, Код: 0, Значение: 0 evbug.c: Событие.  Dev: gpio-keys / input0, Тип: 1, Код: 103, Значение: 1  

Затем вы можете установить пакеты битбака и evthest

  sudo  apt-get install bitbake evtest  

Затем вы можете использовать evtest против своего устройства, вам понадобятся некоторые тесты, чтобы узнать нужное событие, которое вам нужно, и вы можете подсчитать возникновение этого события.

  evtest / dev / input / eventXX  

В противном случае, если вы хотите считать только клик с момента входа в систему GDM / XDM, вы можете разработать или попросите кого-нибудь сделать это, приложение с использованием GTK или Qt или wxWidgets, Просветление или что угодно, чтобы отслеживать события мыши и запускать это приложение, как только появится рабочий стол.

0
ответ дан 4 August 2018 в 20:10

ОК, я написал программу Python для подсчета кликов. Он работает как демон и сохраняет данные в базе данных sqlite3. Это моя первая программа на Python, поэтому она может содержать ошибки.

https://github.com/lukaszg/kmstats

1
ответ дан 4 August 2018 в 20:10

Хотя не совсем то, что вам нужно, WhatPulse - это что-то приятное, чтобы отслеживать различные титры, подобные этому +, онлайн-рейтинг с командами, странами, ...

0
ответ дан 4 August 2018 в 20:10

xinput может делать то, что вам нужно, Лукаш. У вас может быть однострочный (ну, не совсем однострочный, но вы нажимаете ENTER только один раз: -D) для этого, но сначала вы должны выполнить какую-то работу.

Откройте терминал и введите:

  xinput list 

Откройте терминал и введите:

  xinput list  

Вы получите хороший список указателей, кнопок на клавиатуре и т. д., как этот отрывок из моего:

  ⎡ Виртуальный указатель ядра id = 2 [мастер  указатель (3)] ⎜ ↳ Виртуальный ядро ​​XTEST указатель id = 4 [ведомый указатель (2)] ⎜ ↳ USB + PS / 2 Оптическая мышь id = 10 [указатель ведомого устройства (2)] ⎜ ↳ PS / 2 Mouse id = 13 [  slave pointer (2)] ⎜ ↳ AlpsPS / 2 ALPS GlidePoint id = 14 [slave pointer (2)]  

Моя USB-мышь справа на второй строке, и вы видите, что ее идентификатор 10. Найдите свою мышь в списке и отметьте ее идентификатор, вам понадобится основная команда для того, что вы хотите.

Если вы хотите проверить, есть ли у вас правильный идентификатор, запустите xinput test & lt; id & gt; . Если вы перемещаете мышь, нажимаете кнопки и т. Д., Вы должны увидеть много информационных линий, поднимающихся на вашем терминале. Он перечисляет все, что вы делаете с помощью мыши. Если ничего не происходит, попробуйте другой идентификатор из списка указателей, который имеет для вас смысл, вы, вероятно, сначала выбрали неправильный (это действительно не должно быть так сложно).

Когда вы, наконец, нашли правильный идентификатор , запустите эту команду:

  xinput test & lt; id & gt; | sed -une '/ release / {x / ^ $ / s /^.*$/ 1 / G hs / ^ / /  s / ^ * \ (...... \) \n / \ 1 /pxs/\n.*$// / ^ 9 * $ / s / ^ / 0 / s / .9 * $ / x & amp;  / hs /^.* x // y / 0123456789/1234567890 / xs / x. * $ // G s / \n // h} ' 

Скопируйте приведенное выше, так как оно и вставьте его. Прежде чем нажать ENTER, замените & lt; id & gt; на этот идентификатор, который вы нашли. Когда вы запустите его, вы можете его туда, пока вы продолжаете использовать систему.

Некоторые важные комментарии:

  • К сожалению, я не очень хорошо разбираюсь в терминах. консоль, оболочка, команды и т. д. Я уверен, что кто-то может улучшить это или обеспечить лучшее решение. У меня есть неудобство: у вас нет реальных результатов в реальном времени. По какой-то причине, похоже, буферизация, и вы должны генерировать больше событий мыши для чтения старых. Поэтому, если вы сделаете клик, и он не отображается, немного передвиньте мышь, и скоро появится последний клик. Извините, но я кое-что пробовал, но пока не знаю, как это решить. Надеюсь, это не так уж плохо для вас.
  • Как вы видите, любой клик подсчитывается. Если вы хотите подсчитать клики только для одной из кнопок, замените «release» на «выпуск 1», «выпуск 2», «выпуск 3», ну, у вас есть идея. Если вы хотите считать их всех, но с отдельной статистикой, запустите команду (с соответствующей индикацией кнопки) в отдельном терминале.

Подход, который я использовал: xinput list & lt; id & gt; выполняет грязную работу, показывая все, что происходит с мышью. Затем я перенаправляю этот вывод на sed , который будет анализировать только строки с событиями «выпуска». Я предполагаю, что можно считать, что событие «выпуска» завершает «процесс щелчка» (кнопка вниз, а затем вверх). Сценарий sed не только показывает строки с «release», но и их номера. Этот скрипт был непосредственно скопирован из info sed (раздел 4.7) и, безусловно, может быть улучшен.

4
ответ дан 4 August 2018 в 20:10

xinput может делать то, что вам нужно, Лукаш. У вас может быть однострочный (ну, не совсем однострочный, но вы нажимаете ENTER только один раз: -D) для этого, но сначала вы должны выполнить какую-то работу.

Откройте терминал и введите:

  xinput list 

Откройте терминал и введите:

  xinput list  

Вы получите хороший список указателей, кнопок на клавиатуре и т. д., как этот отрывок из моего:

  ⎡ Виртуальный указатель ядра id = 2 [мастер  указатель (3)] ⎜ ↳ Виртуальный ядро ​​XTEST указатель id = 4 [ведомый указатель (2)] ⎜ ↳ USB + PS / 2 Оптическая мышь id = 10 [указатель ведомого устройства (2)] ⎜ ↳ PS / 2 Mouse id = 13 [  slave pointer (2)] ⎜ ↳ AlpsPS / 2 ALPS GlidePoint id = 14 [slave pointer (2)]  

Моя USB-мышь справа на второй строке, и вы видите, что ее идентификатор 10. Найдите свою мышь в списке и отметьте ее идентификатор, вам понадобится основная команда для того, что вы хотите.

Если вы хотите проверить, есть ли у вас правильный идентификатор, запустите xinput test & lt; id & gt; . Если вы перемещаете мышь, нажимаете кнопки и т. Д., Вы должны увидеть много информационных линий, поднимающихся на вашем терминале. Он перечисляет все, что вы делаете с помощью мыши. Если ничего не происходит, попробуйте другой идентификатор из списка указателей, который имеет для вас смысл, вы, вероятно, сначала выбрали неправильный (это действительно не должно быть так сложно).

Когда вы, наконец, нашли правильный идентификатор , запустите эту команду:

  xinput test & lt; id & gt; | sed -une '/ release / {x / ^ $ / s /^.*$/ 1 / G hs / ^ / /  s / ^ * \ (...... \) \n / \ 1 /pxs/\n.*$// / ^ 9 * $ / s / ^ / 0 / s / .9 * $ / x & amp;  / hs /^.* x // y / 0123456789/1234567890 / xs / x. * $ // G s / \n // h} ' 

Скопируйте приведенное выше, так как оно и вставьте его. Прежде чем нажать ENTER, замените & lt; id & gt; на этот идентификатор, который вы нашли. Когда вы запустите его, вы можете его туда, пока вы продолжаете использовать систему.

Некоторые важные комментарии:

  • К сожалению, я не очень хорошо разбираюсь в терминах. консоль, оболочка, команды и т. д. Я уверен, что кто-то может улучшить это или обеспечить лучшее решение. У меня есть неудобство: у вас нет реальных результатов в реальном времени. По какой-то причине, похоже, буферизация, и вы должны генерировать больше событий мыши для чтения старых. Поэтому, если вы сделаете клик, и он не отображается, немного передвиньте мышь, и скоро появится последний клик. Извините, но я кое-что пробовал, но пока не знаю, как это решить. Надеюсь, это не так уж плохо для вас.
  • Как вы видите, любой клик подсчитывается. Если вы хотите подсчитать клики только для одной из кнопок, замените «release» на «выпуск 1», «выпуск 2», «выпуск 3», ну, у вас есть идея. Если вы хотите считать их всех, но с отдельной статистикой, запустите команду (с соответствующей индикацией кнопки) в отдельном терминале.

Подход, который я использовал: xinput list & lt; id & gt; выполняет грязную работу, показывая все, что происходит с мышью. Затем я перенаправляю этот вывод на sed , который будет анализировать только строки с событиями «выпуска». Я предполагаю, что можно считать, что событие «выпуска» завершает «процесс щелчка» (кнопка вниз, а затем вверх). Сценарий sed не только показывает строки с «release», но и их номера. Этот скрипт был непосредственно скопирован из info sed (раздел 4.7) и, безусловно, может быть улучшен.

4
ответ дан 6 August 2018 в 04:12

Вы можете использовать evtest, предоставленный проектом linux-input .

Но вы обязательно должны иметь CONFIG_INPUT_EVBUG = y в ядре (возможно, по умолчанию, если вы устанавливаете debug) и установите уровень отладки на 8

  echo 8 & gt;  / proc / sys / kernel / printk  

На этом этапе из консоли вы увидите несколько сообщений, которые вы можете проанализировать.

  evbug.  c: Событие.  Dev: gpio-keys / input0, Тип: 0, Код: 0, Значение: 0 evbug.c: Событие.  Dev: gpio-keys / input0, Тип: 1, Код: 103, Значение: 1  

Затем вы можете установить пакеты битбака и evthest

  sudo  apt-get install bitbake evtest  

Затем вы можете использовать evtest против своего устройства, вам понадобятся некоторые тесты, чтобы узнать нужное событие, которое вам нужно, и вы можете подсчитать возникновение этого события.

  evtest / dev / input / eventXX  

В противном случае, если вы хотите считать только клик с момента входа в систему GDM / XDM, вы можете разработать или попросите кого-нибудь сделать это, приложение с использованием GTK или Qt или wxWidgets, Просветление или что угодно, чтобы отслеживать события мыши и запускать это приложение, как только появится рабочий стол.

0
ответ дан 6 August 2018 в 04:12

ОК, я написал программу Python для подсчета кликов. Он работает как демон и сохраняет данные в базе данных sqlite3. Это моя первая программа на Python, поэтому она может содержать ошибки.

https://github.com/lukaszg/kmstats

1
ответ дан 6 August 2018 в 04:12

Хотя не совсем то, что вам нужно, WhatPulse - это что-то приятное, чтобы отслеживать различные титры, подобные этому +, онлайн-рейтинг с командами, странами, ...

0
ответ дан 6 August 2018 в 04:12

Хотя не совсем то, что вам нужно, WhatPulse - это что-то приятное, чтобы отслеживать различные титры, подобные этому +, онлайн-рейтинг с командами, странами, ...

0
ответ дан 7 August 2018 в 22:12

xinput может делать то, что вам нужно, Лукаш. У вас может быть однострочный (ну, не совсем однострочный, но вы нажимаете ENTER только один раз: -D) для этого, но сначала вы должны выполнить какую-то работу.

Откройте терминал и введите:

  xinput list 

Откройте терминал и введите:

  xinput list  

Вы получите хороший список указателей, кнопок на клавиатуре и т. д., как этот отрывок из моего:

  ⎡ Виртуальный указатель ядра id = 2 [мастер  указатель (3)] ⎜ ↳ Виртуальный ядро ​​XTEST указатель id = 4 [ведомый указатель (2)] ⎜ ↳ USB + PS / 2 Оптическая мышь id = 10 [указатель ведомого устройства (2)] ⎜ ↳ PS / 2 Mouse id = 13 [  slave pointer (2)] ⎜ ↳ AlpsPS / 2 ALPS GlidePoint id = 14 [slave pointer (2)]  

Моя USB-мышь справа на второй строке, и вы видите, что ее идентификатор 10. Найдите свою мышь в списке и отметьте ее идентификатор, вам понадобится основная команда для того, что вы хотите.

Если вы хотите проверить, есть ли у вас правильный идентификатор, запустите xinput test & lt; id & gt; . Если вы перемещаете мышь, нажимаете кнопки и т. Д., Вы должны увидеть много информационных линий, поднимающихся на вашем терминале. Он перечисляет все, что вы делаете с помощью мыши. Если ничего не происходит, попробуйте другой идентификатор из списка указателей, который имеет для вас смысл, вы, вероятно, сначала выбрали неправильный (это действительно не должно быть так сложно).

Когда вы, наконец, нашли правильный идентификатор , запустите эту команду:

  xinput test & lt; id & gt; | sed -une '/ release / {x / ^ $ / s /^.*$/ 1 / G hs / ^ / /  s / ^ * \ (...... \) \n / \ 1 /pxs/\n.*$// / ^ 9 * $ / s / ^ / 0 / s / .9 * $ / x & amp;  / hs /^.* x // y / 0123456789/1234567890 / xs / x. * $ // G s / \n // h} ' 

Скопируйте приведенное выше, так как оно и вставьте его. Прежде чем нажать ENTER, замените & lt; id & gt; на этот идентификатор, который вы нашли. Когда вы запустите его, вы можете его туда, пока вы продолжаете использовать систему.

Некоторые важные комментарии:

  • К сожалению, я не очень хорошо разбираюсь в терминах. консоль, оболочка, команды и т. д. Я уверен, что кто-то может улучшить это или обеспечить лучшее решение. У меня есть неудобство: у вас нет реальных результатов в реальном времени. По какой-то причине, похоже, буферизация, и вы должны генерировать больше событий мыши для чтения старых. Поэтому, если вы сделаете клик, и он не отображается, немного передвиньте мышь, и скоро появится последний клик. Извините, но я кое-что пробовал, но пока не знаю, как это решить. Надеюсь, это не так уж плохо для вас.
  • Как вы видите, любой клик подсчитывается. Если вы хотите подсчитать клики только для одной из кнопок, замените «release» на «выпуск 1», «выпуск 2», «выпуск 3», ну, у вас есть идея. Если вы хотите считать их всех, но с отдельной статистикой, запустите команду (с соответствующей индикацией кнопки) в отдельном терминале.

Подход, который я использовал: xinput list & lt; id & gt; выполняет грязную работу, показывая все, что происходит с мышью. Затем я перенаправляю этот вывод на sed , который будет анализировать только строки с событиями «выпуска». Я предполагаю, что можно считать, что событие «выпуска» завершает «процесс щелчка» (кнопка вниз, а затем вверх). Сценарий sed не только показывает строки с «release», но и их номера. Этот скрипт был непосредственно скопирован из info sed (раздел 4.7) и, безусловно, может быть улучшен.

4
ответ дан 7 August 2018 в 22:12

Вы можете использовать evtest, предоставленный проектом linux-input .

Но вы обязательно должны иметь CONFIG_INPUT_EVBUG = y в ядре (возможно, по умолчанию, если вы устанавливаете debug) и установите уровень отладки на 8

  echo 8 & gt;  / proc / sys / kernel / printk  

На этом этапе из консоли вы увидите несколько сообщений, которые вы можете проанализировать.

  evbug.  c: Событие.  Dev: gpio-keys / input0, Тип: 0, Код: 0, Значение: 0 evbug.c: Событие.  Dev: gpio-keys / input0, Тип: 1, Код: 103, Значение: 1  

Затем вы можете установить пакеты битбака и evthest

  sudo  apt-get install bitbake evtest  

Затем вы можете использовать evtest против своего устройства, вам понадобятся некоторые тесты, чтобы узнать нужное событие, которое вам нужно, и вы можете подсчитать возникновение этого события.

  evtest / dev / input / eventXX  

В противном случае, если вы хотите считать только клик с момента входа в систему GDM / XDM, вы можете разработать или попросите кого-нибудь сделать это, приложение с использованием GTK или Qt или wxWidgets, Просветление или что угодно, чтобы отслеживать события мыши и запускать это приложение, как только появится рабочий стол.

0
ответ дан 7 August 2018 в 22:12

ОК, я написал программу Python для подсчета кликов. Он работает как демон и сохраняет данные в базе данных sqlite3. Это моя первая программа на Python, поэтому она может содержать ошибки.

https://github.com/lukaszg/kmstats

1
ответ дан 7 August 2018 в 22:12

xinput может делать то, что вам нужно, Лукаш. У вас может быть однострочный (ну, не совсем однострочный, но вы нажимаете ENTER только один раз: -D) для этого, но сначала вы должны выполнить какую-то работу.

Откройте терминал и введите:

  xinput list 

Откройте терминал и введите:

  xinput list  

Вы получите хороший список указателей, кнопок на клавиатуре и т. д., как этот отрывок из моего:

  ⎡ Виртуальный указатель ядра id = 2 [мастер  указатель (3)] ⎜ ↳ Виртуальный ядро ​​XTEST указатель id = 4 [ведомый указатель (2)] ⎜ ↳ USB + PS / 2 Оптическая мышь id = 10 [указатель ведомого устройства (2)] ⎜ ↳ PS / 2 Mouse id = 13 [  slave pointer (2)] ⎜ ↳ AlpsPS / 2 ALPS GlidePoint id = 14 [slave pointer (2)]  

Моя USB-мышь справа на второй строке, и вы видите, что ее идентификатор 10. Найдите свою мышь в списке и отметьте ее идентификатор, вам понадобится основная команда для того, что вы хотите.

Если вы хотите проверить, есть ли у вас правильный идентификатор, запустите xinput test & lt; id & gt; . Если вы перемещаете мышь, нажимаете кнопки и т. Д., Вы должны увидеть много информационных линий, поднимающихся на вашем терминале. Он перечисляет все, что вы делаете с помощью мыши. Если ничего не происходит, попробуйте другой идентификатор из списка указателей, который имеет для вас смысл, вы, вероятно, сначала выбрали неправильный (это действительно не должно быть так сложно).

Когда вы, наконец, нашли правильный идентификатор , запустите эту команду:

  xinput test & lt; id & gt; | sed -une '/ release / {x / ^ $ / s /^.*$/ 1 / G hs / ^ / /  s / ^ * \ (...... \) \n / \ 1 /pxs/\n.*$// / ^ 9 * $ / s / ^ / 0 / s / .9 * $ / x & amp;  / hs /^.* x // y / 0123456789/1234567890 / xs / x. * $ // G s / \n // h} ' 

Скопируйте приведенное выше, так как оно и вставьте его. Прежде чем нажать ENTER, замените & lt; id & gt; на этот идентификатор, который вы нашли. Когда вы запустите его, вы можете его туда, пока вы продолжаете использовать систему.

Некоторые важные комментарии:

  • К сожалению, я не очень хорошо разбираюсь в терминах. консоль, оболочка, команды и т. д. Я уверен, что кто-то может улучшить это или обеспечить лучшее решение. У меня есть неудобство: у вас нет реальных результатов в реальном времени. По какой-то причине, похоже, буферизация, и вы должны генерировать больше событий мыши для чтения старых. Поэтому, если вы сделаете клик, и он не отображается, немного передвиньте мышь, и скоро появится последний клик. Извините, но я кое-что пробовал, но пока не знаю, как это решить. Надеюсь, это не так уж плохо для вас.
  • Как вы видите, любой клик подсчитывается. Если вы хотите подсчитать клики только для одной из кнопок, замените «release» на «выпуск 1», «выпуск 2», «выпуск 3», ну, у вас есть идея. Если вы хотите считать их всех, но с отдельной статистикой, запустите команду (с соответствующей индикацией кнопки) в отдельном терминале.

Подход, который я использовал: xinput list & lt; id & gt; выполняет грязную работу, показывая все, что происходит с мышью. Затем я перенаправляю этот вывод на sed , который будет анализировать только строки с событиями «выпуска». Я предполагаю, что можно считать, что событие «выпуска» завершает «процесс щелчка» (кнопка вниз, а затем вверх). Сценарий sed не только показывает строки с «release», но и их номера. Этот скрипт был непосредственно скопирован из info sed (раздел 4.7) и, безусловно, может быть улучшен.

4
ответ дан 10 August 2018 в 10:25

Вы можете использовать evtest, предоставленный проектом linux-input .

Но вы обязательно должны иметь CONFIG_INPUT_EVBUG = y в ядре (возможно, по умолчанию, если вы устанавливаете debug) и установите уровень отладки на 8

  echo 8 & gt;  / proc / sys / kernel / printk  

На этом этапе из консоли вы увидите несколько сообщений, которые вы можете проанализировать.

  evbug.  c: Событие.  Dev: gpio-keys / input0, Тип: 0, Код: 0, Значение: 0 evbug.c: Событие.  Dev: gpio-keys / input0, Тип: 1, Код: 103, Значение: 1  

Затем вы можете установить пакеты битбака и evthest

  sudo  apt-get install bitbake evtest  

Затем вы можете использовать evtest против своего устройства, вам понадобятся некоторые тесты, чтобы узнать нужное событие, которое вам нужно, и вы можете подсчитать возникновение этого события.

  evtest / dev / input / eventXX  

В противном случае, если вы хотите считать только клик с момента входа в систему GDM / XDM, вы можете разработать или попросите кого-нибудь сделать это, приложение с использованием GTK или Qt или wxWidgets, Просветление или что угодно, чтобы отслеживать события мыши и запускать это приложение, как только появится рабочий стол.

0
ответ дан 10 August 2018 в 10:25

Другие вопросы по тегам:

Похожие вопросы: