DownloadsKeyboard Evolve~25KiB C++ source code (Sep 19 2005) Changelog ToDo list ReadMe (Compiles under VC++7.1 in Windows and gcc in Linux. If you have an old versin of gcc, you may have trouble.) (The code is a mess due to it being my first C++ program, it growing beyond my initial vision, and me desiring quick results over nice code) Get AnalyzeText to be able to make combo lists. |
Keyboard Evolve
is a program that uses an evolutionary algorithm to evolve an efficient
keyboard layout. I started this program in July 2005 after
reading about Peter M. Klausler's experiments. News: I do not know when I will resume working on this project. When I do get around to it, the program will undergo a complete re-write, as the current version hit a dead-end. Since I wrote the current version, I've improved my knowledge of C++ and design patterns, which should allow me to make a much more flexible and extensible design. The new version will also be available at http://keyboardevolve.sourceforge.net/. You can read about my other work on alternative keyboard layouts at Projects\Alternative Keyboard Layouts. By following the previous link, you can also download a few custom layouts I've created. If you use the Dvorak layout, you might be interested in the modified Dvorak layout I created in 2004 that reduces finger movement an extra 10% (48% compared to QWERTY) and also makes typing CTRL+Z/X/C/V much easier. If you want something easier, try QWERF -- it's similar to QWERTY, but rearranges things a little to make it more comfortable. Some of the code is a bit of a mess, since the program grew waay beyond my initial vision and I just wanted to get results as soon as possible. Not to mention that it was my first C++ program. It's not tooo hard to edit the settings, but I hope to one day get it all working from INI files rather than having everything hard-coded in.. Unfortunately, I have yet to find the holy grail of keyboard layout evolution parameters! Things are complicated by there being a fundamental difference in how curved, ergonomic keyboards and plain, rectangular keyboards are used -- the way I see things, they have different home "rows." This program works best for ergonomic keyboards. I'm in the process of finding the right balance between the two... Yes, root.. Internet is broken again (no WPA). Stupid Linux wireless.
Get AnalyzeText (below) to be able to make key combo lists for Keyboard Evolve. |
AnalyzeText ~11KiB Java source code (Nov 14, 2005) (About 130 times faster than the previous version, so it can now be used on large text files) |
AnalyzeText is a little
program that can take a text file and spit out a file listing the
character 'combos' in the text and the number of occurrences of each
combo. I use this list in Keyboard Evolve instead of stepping
through a text file since it's much faster and doesn't make much of a
difference in the scores for the layouts (+/-2%). For example, this program tells me that in a certain 120kB test text file, the character combination 'th' occurs 2045 times. |
Typing Tutor Program 16KiB (MS Windows only. This program requires that the VB6 runtimes are installed on your computer) |
A little program I made that
teaches you to type based on common key combinations. I found
that it worked every well when I was learning alternative keyboard
layouts. It teaches you habits, not just where the keys are, so you subconsciously know how to type and don't need to think about where keys are. Note: I suggest reducing the 'Target Speed' to 35wpm. I can copy/paste as 3300 WPM |