Skip to content
Projects

Code52/carnac has 4,554 GitHub stars and 524 forks. GitHot measured +1 stars in 24 hours. Last checked 2026-11-07 15:38 UTC. Last push 2023-02-17.

How these counts are measured

A utility to give some insight into how you use your keyboard

Measured star growth

in 24h
+1
in 7 days
Update delayed
in 15 days
Update delayed
in 1 month
Update delayed

Net star changes over overlapping periods, not daily totals. Missing measurements are left blank. Stars measure attention, not software quality.

README.md

Original

Carnac the Magnificent Keyboard Utility

Join the chat at https://gitter.im/Code52/carnac

A keyboard logging and presentation utility for presentations, screencasts, and to help you become a better keyboard user.

Build Status

Build status

Installation

You can install the latest version of Carnac via Chocolatey:

cinst carnac

Alternatively, you can grab the latest zip file from here, unpack it and run Setup.exe.

Note: Carnac requires .NET 4.5.2 to work - you can install that from here if you don't have it already.

Updating

We use Squirrel.Windows to update your carnac application.

The application will check for updates in the background, if a new version has been released, it will automatically install the new version and once you restart carnac you will be up-to-date.

Usage

Enabling silent mode

If you want to stop Carnac from recording certain key strokes, you can enter silent mode by pressing Ctrl+Alt+P. To exit silent mode you simply press Ctrl+Alt+P again.

Contributing

Getting started with Git and GitHub

Once you're familiar with Git and GitHub, clone the repository and run the .\build.cmd script to compile the code and run all the unit tests. You can use this script to test your changes quickly.

Resources

This blog series covers a series of refactorings which have recently happened in Carnac to make better use of Rx. If you are learning Rx and want to be shown through Carnac's codebase then this blog series may help you.

Part 1 - Refactoring the InterceptKeys class
Part 2 - Refactoring the MessageProvider class
Part 3 - Introducing the MessageController class

Explore related projects