منبع اصلی نوشتار زیر در این لینک قرار دارد

چند بار دکمه های کیبردتان را فشرده اید؟

چند وقت پیش مهدی مقاله ای را به من نشان داد که stephen wolfram اومده بود تعداد ایمیل هایی که زده گرفته ساعاتی که پشت سیستم بوده یا تعداد دکمه هایی که هر روز زده را روی نمودار برده است.

ایده گیکانه ای بود (اینجا صفته :D) چیزی مثل ایمیل رو به نظرم رسید بعدا می شود روی نمودار برد و همه چیزش را بیرون کشید ولی چیزی مثل دکمه زدن را چه می کنیم؟

کمی تحقیقات کردم دیدم در /dev/event/event0 تمام اتفاقات کیبرد وجود دارد یعنی با مانیتور کردنش می شود به راحتی فهمید چند بار دکمه های کیبردتان را فشرده اید.

خب یک اسکریپت کوچیک نوشتم

#!/usr/bin/python

report_file = \'/opt/keycount\'


def keycounter(count):
    f = open(report_file, \'w\')
    f.write(str(count))
    f.close()

f = open(report_file, \'r\')
try:
    count = int(f.readline())
except:
    count = 0
f.close()
#here event0 should be changed to the eventn, where eventn is the keyboard.
input = open(\'/dev/input/event0\', \'rb\')
while True:
    input.read(96)
    count += 1
    if (count):
        keycounter(count)

و بعد این فایل رو در /usr/local/bin می گذارم و در ~/.xinitrc اسم فایل را می گذارم و به راحتی هر دفعه که دکمه ای زده شود یکی به keycount اضافه می کند.

 

نکته: باید /opt/keycount با سطح دسترسی write و read باشد. اگر این فایل وجود ندارد باید بسازید.

نکته ۲: ممکن است آدرس event ها چیزی که گفتم نباشد بررسی کنید بگویید من هم کامل کنم. این اسکریپت بر روی ArchLinx و Debian sid امتحان شده است

 

البته این اسکریپت تنها کاری که می کنه فقط می شماره ولی معلوم نیست چه روزی چقدر اینکارو کردید موس چی؟ یا حتی پراکندگی دکمه های کیبرد چگونه است؟ می شود جای اینکه در فایل بنویسیم در یک دیتابیس مثلا sqlite3 بنویسیم که جالب تر می شود. اگر روزی حوصله اش را داشتم اونم می نویسم.