From 439ef7515d6b6c942270422ffbddc7a28726842c Mon Sep 17 00:00:00 2001 From: Mats van Reenen Date: Wed, 29 Jul 2020 10:21:15 +0200 Subject: [PATCH] first commit --- .gitignore | 2 + app.js | 77 ++++++++++++++++++++++++++++++++++++ keys.js | 114 +++++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 193 insertions(+) create mode 100644 .gitignore create mode 100644 app.js create mode 100644 keys.js diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..7ee4e66 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ + +*.log \ No newline at end of file diff --git a/app.js b/app.js new file mode 100644 index 0000000..d916fd5 --- /dev/null +++ b/app.js @@ -0,0 +1,77 @@ +const { exec } = require("child_process"); +const keys = require('./keys') +const fs = require('fs') + +var ding, savedLog = [], log = [] + +function emptyLog(i = 0){ + for(var i=0; i<256; i++){ + log[i] = 0 + savedLog[i] = { + key: keys[i], + count: 0 + } + } +} + +function onPress(data){ + data = data.split(' ') + if(data[1] == 'press'){ + keyCode = data[data.length-2] + + //console.log(`${keys[keyCode]} (${keyCode}): ${log[keyCode]}`) + + log[keyCode] += 1; + + if(typeof keys[keyCode] == 'undefined' || keys[keyCode].split(' ')[0] == '[unknown'){ + console.log(`unknown key pressed: ${keys[keyCode]} (${keyCode})`) + } + } +} + +function startLog(){ + saveLog() + ding = exec("xinput test 10") + ding.stdout.on('data', onPress); + ding.on('close', startLog) +} + +function saveLog(){ + var total = 0, data = { date: new Date().getTime(), log: []}; + console.log('Curent numbers') + for(var i=0; i { + if(err) return console.error(err) + }) + console.log(`total keypresses: ${total}`) +} + +function readLog(){ + var d = new Date() + fs.readFile(`${__dirname}/keystrokes${d.getFullYear()}-${d.getMonth()}-${d.getDate()}.log`, function(err, json){ + if(err) return console.error(err) + + savedLog = JSON.parse(json).log + console.log(savedLog) + }) +} + +emptyLog() +readLog() +startLog() + +setInterval(function(){ + ding.kill('SIGTERM') +}, 60*60*1000) diff --git a/keys.js b/keys.js new file mode 100644 index 0000000..ec033ca --- /dev/null +++ b/keys.js @@ -0,0 +1,114 @@ +module.exports = [ + '[unknown 0]', + '[unknown 1]', + '[unknown 2]', + '[unknown 3]', + '[unknown 4]', + '[unknown 5]', + '[unknown 6]', + '[unknown 7]', + '[unknown 8]', + '[esc]', + '1','2','3','4','5','6','7','8','9','0','-','=','[backspace]', + '[tab]','q','w','e','r','t','y','u','i','o','p','[',']', + '[enter]', + '[left ctrl]', + 'a','s','d','f','g','h','j','k','l',';','\'', + '`', + '[left shift]', + '\\', + 'z','x','c','v','b','n','m',',','.','/','[right shift]', + '*', + '[alt]', + '[space bar]', + '[capslock]', + + '[F1]','[F2]','[F3]','[F4]','[F5]','[F6]','[F7]','[F8]','[F9]','[F10]', + + '[numlock]', + '[compose key]', + + '[num 7]','[num 8]','[num 9]','[num -]', + '[num 4]', '[num 5]', '[num 6]','[num +]', + '[num 1]','[num 2]','[num 3]', + '[num 0]', + + '[num .]', + '[unknown 10]', + '[unknown 11]', + '[unknown 12]', + '[F11]', + '[F12]', + '[unknown 13]', + '[unknown 14]', + '[unknown 15]', + '[unknown 16]', + '[unknown 17]', + '[unknown 18]', + '[unknown 19]', + '[num enter]', + '[right ctrl]', + '[num /]', + '[prt sc]', + '[alt gr]', + '[unknown 23]', + '[home]', + '[arrow up]', + '[page up]', + '[arrow left]', + '[arrow right]', + '[end]', + '[arrow down]', + '[page down]', + '[ins]', + '[del]', + '[unknown 33]', + '[unknown 34]', + '[unknown 35]', + '[unknown 36]', + '[unknown 37]', + '[unknown 38]', + '[unknown 39]', + '[pause]', + '[unknown 41]', + '[unknown 42]', + '[unknown 43]', + '[unknown 44]', + '[unknown 45]', + '[supper key]', + '[unknown 47]', + '[right mouse click key]', + '[unknown 49]', + '[unknown 50]', + '[unknown 51]', + '[unknown 52]', + '[unknown 53]', + '[unknown 54]', + '[unknown 55]', + '[unknown 56]', + '[unknown 57]', + '[unknown 58]', + '[unknown 59]', + '[unknown 60]', + '[unknown 61]', + '[unknown 62]', + '[unknown 63]', + '[unknown 64]', + '[unknown 65]', + '[unknown 66]', + '[unknown 67]', + '[unknown 68]', + '[unknown 69]', + '[unknown 70]', + '[unknown 71]', + '[unknown 72]', + '[unknown 73]', + '[unknown 74]', + '[unknown 75]', + '[unknown 76]', + '[unknown 77]', + '[unknown 78]', + '[unknown 79]', +] + +// pause, supper key, fn, right click key