Code 52 - a new coding project every week

carnac review

What started out as an excuse to watch Youtube clips and make jokes about turbans quickly turned into a neat little tool called Carnac, for those people who want to display their keyboard activities on screen.


After a week of WPF and Win32, we've implemented a number of awesome features already:

  • Using WPF to render an "invisible" window and process key presses under the hood.
  • Overlaying activity over the current window - position, opacity, colours, font-size all customizable.
  • Detect the active application and match up a shortcut with a known list of values.

A couple of other features are in progress:

  • Password mode - detect a shortcut and hide the output until the shortcut is pressed again.
  • Extending the shortcut API so that other apps can be integrated - YAML markup is used to represent the available shortcuts and can be downloaded from a remote site to the local machine.
  • Support for "modes" which eliminate the noise of some keystrokes based on configuration - only show shortcuts, only show shortcuts for XYZ, etc...

And a few features didn't get started:

  • Tracking statistics and trends of keyboard activity - we wanted to use RavenDB as an embedded database.
  • Reporting based on historical data - just how awesome are you?

Carnac in action

Here's a couple of videos from @shiftkey demonstrating the latest build of Carnac (you can download this build from the project site and try it out yourself).

Customsing the Carnac UI

R# shortcuts in Carnac

What's next for Carnac?

We're getting the groundwork together the next project at the moment, but we're looking for people to help out with:

  • testing - there may be some issues with Windows XP and Vista environments.
  • finding and fixing bugs - all the hot forking action is on GitHub.
  • grabbing a task from Trello - if you want to get into some dev, get in touch and we can add you to the board.
  • hanging out in the JabbR room if you have any input or suggestions for features.
blog comments powered by Disqus