carnac
carnac copied to clipboard
A utility to give some insight into how you use your keyboard
Carnac the Magnificent Keyboard Utility & Mouse Highlighter*
This is a Fork of Carnac which adds mouse click highlights with circles, as well as key icons. The current version can be manually downloaded and tested from the release page. This project is not actively maintained, but patched together in my spare time and based on my needs when giving tutorials.
Original Readme
A keyboard logging and presentation utility for presentations, screencasts, and to help you become a better keyboard user.
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
- Setting up Git for Windows and connecting to GitHub
- Forking a GitHub repository
- The simple guide to GIT guide
- Open an issue if you encounter a bug or have a suggestion for improvements/features
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