I unconsciously wanted a tool like this for a long time, and was glad I finally searched for it:
A keyboard logging and presentation utility for presentations, screencasts, and to help you become a better keyboard user.
[Wayback/Archive] Code52/carnac: A utility to give some insight into how you use your keyboard
The first time I saw something similar was in the Delphi days where it was part of a plugin for CodeRush in Delphi (think Delphi 5-6 era), the famous developer productivity tool by Mark Miller that later got rewritten for Visual Studio and became part of DevExpress.
So I searched for [Wayback/Archive] windows show keystrokes – Google Search which found [Wayback/Archive] How to show keystrokes on Windows 10 which in turn mentioned a fork of Carnac.
As it turns out
there are a truckload of these [Wayback/Archive] Forks · bfritscher/carnac, and it is unclear to me what the fork [Wayback/Archive] bfritscher/carnac: A utility to give some insight into how you use your keyboard sets itself apart from [Wayback/Archive] Code52/carnac: A utility to give some insight into how you use your keyboard or the other forks.
Later I took a look at [Wayback/Archive] code52, [Wayback/Archive] code52 – Twitter Search / Twitter and [Wayback/Archive] Code 52 Project (@Code_52) / Twitter, then figured out the Code52 initiative kind of died, but some of the projects still live. The uncertainty makes that number of forks understandable.
Anyway, the original Carnac project above is still sort of alive and new versions do appear in the [Wayback/Archive] Releases · Code52/carnac every now and then (the most recent release at [Wayback/Archive] Releases · bfritscher/carnac is actually older than at Code52) and the Code52 releases are available for installation from [Wayback/Archive] Chocolatey Software | carnac 2.3.13.
Interesting is that there is a small series of blogs on how Carnac got refactored into the codebase as it is now:
- [Wayback/Archive] Improving the Carnac Codebase and Rx Usage (Part 1) – Jake Ginnivan’s blog (Refactoring the InterceptKeys class)
- [Wayback/Archive] Improving the Carnac Codebase and Rx Usage (Part 2) – Jake Ginnivan’s blog (Refactoring the MessageProvider class)
- [Wayback/Archive] Improving the Carnac Codebase and Rx Usage (Part 3) – Jake Ginnivan’s blog (Introducing the MessageController class)
--
jeroen