I'm thinking about creating a new keyboard layout for programming. Now I mostly program in HTML, JavaScript/jQuery/CoffeeScript, CSS/LESS/SASS, though I may dabble in shell scripting & RegEx soon, with perhaps LUA, C++, & Java in a few years. I want to have scientific proof to the key's placements. I do have ideas/requirements, some invented myself, some taken or derived from others:
- Almost All keys may be re-arranged
- RETURN, Left SHIFT, Left CONTROL, SPACE-bar, & TAB need to stay, but all others, including numbers, symbols, & movement keys are open to moving
- Might be optimal to leave zxcv & perhhaps s to stay in place, due to common Undo/Cut/Copy/Paste/Save habits 🙂
- DELETE key likely to be moved to where CAPS LOCK is 🙂
- Unlikely to keep matching brackets like (){}[]<> next to each other; see below
- The only accurate way IMHO to count key usage is by key-logging, not key counts of files:
- Much of "programming" is sending emails, posting to forums, twitter, bug reporting, web surfing, etc.
- I believe much of keyboard usage is "movement"; tabbing between fields, page down, moving cursors around, etc. These are not captured by file outputs
- Many editors use auto-complete & macros, so close-deliminators: )}]> may not be as often typed as openers, thus only key-logging & not parsing files will accurate.
So my questions:
- What are safe free/open source software keyloggers, that will not upload files unless you send a separate file yourself? I would prefer NOT to collect log-in names & passwords, not only for security but also for because that can throw of my analysis IMHO.
- What programs can be used client-side to digest single & pair key-counts? Or how to best build one?
- Where is it best to find volunteers to help out?
Best research so far:
http://www.michaelcapewell.com/projects/keyboard/layout_capewell.htm
http://viralintrospection.wordpress.com/category/technology/keyboard-layouts/
& Wikipedia: Keyboard_layout#Non-QWERTY_keyboards_for_Latin_scripts
TIA!
Best Answer
Use a program like WhatPulse to record which keys are hit, and how many times.
After asking on the FreeNode IRC network about how to get the key frequencies together, a user lead me to this:
count_digraphs()
and press Enter.The results are read like this:
"ar" 7 17 10 "ra"
which means 'ar' was pressed 7 times, 'ra' was pressed 10 times, and all together 'ar' and 'ra' were pressed 17 times together