Coder Social home page Coder Social logo

keyboardfrequencies's Introduction

KeyboardFrequencies

Collect keyboard frequency data WITH control keys.

All of the data I've seen only compiles visible characters from stored files, but ignores all the arrows backspace delete copy/paste home end and control codes that we spend a lot of our time typing. I'd bet backspace at least deserves a place on a main layer alongside the alpha keys. To do something about this, I wrote a very small Python program to keep stats on our typing. Yes it is technically a keystroke logger, but it is just one page long and you can see that it only keeps a count of each key and doesn't store anything else. It outputs the results to a SQLite database file "key_counts.db". I am running it right now on my PC and I will leave it running for at least a week. I ask others to do the same. I can compile and consolidate the results if people are interested. It counts individual keystrokes and bigrams.

I have only tested it on Windows, but it should work on Mac and Linux. To run:

Leave it running for at least a week. When you're ready, press the STOP button. Use python key-logger.py --display to see the results. Then send me the key_counts.db for collating. It might be helpful if you also told me if you are using Windows or Mac, English, or a different language, VSCode, Vim, Emacs or something else for text editing. I can do separate analysis for users of each platform and editor.

python key-logger.py --display
This will display the counts in the database after running the program.

Todo:

  • Record unigrams, bigrams and trigrams. The data file will be much bigger, so move from dumping a json file to updating a SQLite database.
  • Add a GUI interface
  • Test on Mac OSX
  • Reach out to keyboard layout analysis program maintainers and ask them to add the ability to read a unigram,bigram,trigram data file instead of consuming a text corpus (obviously I can't ask people to send me their actual text instead of just counts)
  • Write a tool to consolidate multiple people's data files into one large data file. Do this to make one huge data file, and one for people using different languages, different editors (VSCode, vim, emacs, etc).

keyboardfrequencies's People

Contributors

petertheobald avatar

Stargazers

abyss avatar Jon Hjelle avatar Alexander Bösecke avatar  avatar

Watchers

 avatar

keyboardfrequencies's Issues

unigrams, bigrams

Record unigrams, bigrams and trigrams. The data file will be much bigger, so move from dumping a json file to updating a SQLite database.

consolidate multiple people's data files

Write a tool to consolidate multiple people's data files into one large data file. Do this to make one huge data file, and one for people using different editors (VSCode, vim, emacs, etc).

keyboard layout analysis programs

Reach out to keyboard layout analysis program maintainers and ask them to add the ability to read a unigram,bigram,trigram data file instead of consuming a text corpus (obviously I can't ask people to send me their actual text instead of just counts)

Modify README to first start whatever other program or setup steps are needed.

I assume that, to run download, I need to first run something else. What do I need to run on Windows?

Instead of download, I ran git clone https://github.com/PeterTheobald/KeyboardFrequencies.git then cd .\KeyboardFrequencies\, then your other two steps, and it worked.

Maybe also need to cue us to run winget install python on Windows?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.