Git Product home page Git Product logo

carnac's Introduction

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

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

carnac's People

Contributors

0x49d1 avatar 8176135 avatar andrewtobin avatar ash258 avatar bfritscher avatar brooklyndev avatar dustinvenegas avatar eajhnsn1 avatar gdh1995 avatar gitter-badger avatar havef avatar hnrkndrssn avatar hodavand avatar jakeginnivan avatar jongalloway avatar justo78 avatar killnine avatar leecampbell avatar michaelloewenstein avatar mikelluri avatar miyanni avatar shanselman avatar shiftbot avatar shiftkey avatar shiftkey-tester avatar steck avatar tkozono avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

carnac's Issues

without pressing shows key on screen

Hi Team,

I am trying to use this program for keystroke purpose, but when pressing any key it shows the pressed key and also shows ctrl key extra. i.e press win+R, then it shows win+R , CTRL. Please look for this.

Shift + keypress when using keymap file only shows after 2nd press

Using the latest beta release, it appears as though the tool does not properly show keypresses that are combined with the shift button. For example, if I create a sample keymap file like this:

group: Fubar
process:        

shortcuts:
    - name: Run
      keys:
      - Shift+R

and I try pressing SHIFT+R, nothing appears on the popup / overlay. However, if I hold down the shift button and press the R button twice, then the popup will appear but only the one time.

Wrong multi-monitor behavior

https://prnt.sc/w3q09f
I changed my 2nd monitor to be main and Carnac always shows Keys on 2nd monitor now. Couldnot switch there placement to 1st one.
Need this to screencast from notebook while adding Keys and removing Toolbars from screencasting.

Spaces, page down, ctrl+alt+ , \ and more

Version 3.1 has empty sapces in front of special keys "Ctrl, Shift, Alt, Home, End, Page Up, etc." which is not the case in version 3.0 What would be nice is to have an option to set how much spacing there will be to the left and right of both spcial keys and normal keys. For instance a slider with 1,2,3 character spaces on both sides. so instead of "o", we could have ".o.", "..o..", "...o...".

Page Down is shown as Next, this is fixed in one of the forks, but that fork has different issues.

The right Alt is read as Ctrl+Alt as opposed to AltGr, and I think this is why no combinations work with it. I'm using a UK layout if that helps narrow down the issue. So \ should be displayed when pressing AltGr+#, but it displays Ctrl+Alt+#. Instead of € sign I get Ctrl+Alt+4

And this is a list that works out of the box #, ~, /, <, >, ?, !, ¬, `, MediaPlayPause (this one uses the fn button combination)

If possible it would be nice if we could use any alternative text or ASCII code to display, like play pause icons instead of the media text.

I downloaded the gir repository in vs studio but I couldn't even get it to build, it gives me too many assembly reference errors that I just can't fix. If I could get it to work I would try to make a working version from the multiple semi working versions.

Pls add option for align

I use to display key stroke at right bottom corner, when the new key display, all the row above it is moving, would be nice if it have option to align left or right or center

Shift modifier key doesn't work when using the "only show keys" option

Using the latest beta build, when I enable the "only show keys that have ctrl, shift, alt or windows" option, I see pop-ups for key presses that include ctrl, alt or windows buttons but not shift. So, for example, if I press shift+tab or shift+A or whatever, there are no key press popups that appear.

second monitor , mouse click

in first monitor everything works fine. but in second monitor when i click the click appear little bit far from the click
Untitled

Feedback 2 questions, I don’t know if it’s a bug

  1. If show mouse clicks is checked, it will be affected when the mouse is pressed for a long time to select the text, and it is difficult to select the text
  2. As long as the application vmware is opened, the focus is in the vmware window, but the operating system inside is not running, and the keyboard and mouse buttons cannot be captured at this time.

Key don't appear when a software is active

Hi ! First of all, Thank's a lot for this great program.

The program works fine but when I work on the software "See Electrical Expert", the keys don't appear anymore on screen.
And when I click somewhere out of this software (like on the Windows taskbar), the keys appears again.

Thank you.

Error compiling build.cake

PS C:\Users\EdSon\Desktop\carnac-3.1-beta> .\build.ps1
Preparing to run build script...
Running build script...
Analyzing build script...
Processing build script...
Installing tools...
Installing addins...
Compiling build script...
Error: C:/Users/EdSon/Desktop/carnac-3.1-beta/build.cake(15,21): error CS1525: Invalid expression term ''

Line 15: var githubRepoUrl = $"https://github.com/{githubRepo}";

I use Windows 10 lastest version

[Feature Request] Allow to ignore and/or rewrite Special keys entirely

I use vim, so I press Escape a lot, and I also have CapsLock remapped to Escape. This means every time I press Escape (CapsLock) I get this:

I would like to be able to ignore the "Capital" entirely and also Abbreviate the "Escape" if possible.

I tried to look into the code myself, but I have no idea about C# and I don't really know where the best place to put something like this would be. If you don't want to implement this I could try myself if you could give me some pointers on where to start.

[Feature Request] Disable mouse messages only & event blacklist

Description

This tool is great both in the UI and the ability to customize which events to listen to. However, the current .yml file only acts as a whitelist instead of a blacklist for filtering out events. There are times where blacklisting only a few would be easier. For example, sometimes I would like to turn off the mouse messages only, but not other keystrokes. Aside from that, perhaps adding a checkbox to disable mouse events would be great, since mouse events can already be indicated by those circles.

Suggestion

  • A disable mouse events option.
  • Blacklisting according to certain .yml files (eg. names starting with blacklist-).

Mouse keymap not show

Hi,

I found a little bug, when in the keyboard section the "Only show keys that are listed in keymaps folder" is enable, the mouse keymap never show if some are in the keymap file.

For exemple

  - name: Adjust Vertical Height
    keys:
      - Shift + LButton

Is not show but if "Only show keys that are listed in keymaps folder" is disable it will be show

Show Ctrl+Alt as AltGr

Many keyboards allow using the right side Alt (also known as AltGr) instead of Ctrl+Alt, and this simplifies many otherwise awkward combos. Would it be possible to (optionally?) show Ctrl+Alt as AltGr?

How to use Regular Expression?

Hello,

I try to fill for Regular expression in Process Filter with
^(Ctrl|Alt|F1|F2|F3|F4|F5|F6|F7|F8|F9|F10|F11|F12|Shift\+Left|Shift\+Right|Shift\+Up|Shift\+Down|Enter|Shift\+F.)

But it give any result
Please advice for this option

Keymaps for mouse

Hello,

I love your version of carnac, thanks for your work
I use a personal keymap for some app, and i need for exemple to made SHIFT + Left mouse click, i don't find how to do it ? Is this exist ?

Lagginess issue

Hi,
I'm not sure if you guys experience issue with lagginess when opening Carnac 3.1 beta while screen recording ?

I'm using Camtasia to record.

Thank you.

Numpad indication?

I use software that specifically uses the numpad for some operations, and so showing that I am clicking the numpad as opposed to the regular number keys would be ideal. Is it possible to add in a Numpad indicator of some sort when using those keys?

General settings too small by default

The settings screen is too small by default for general settings, and because scrolling is not enabled you need to resize the window in order for everything to be shown, which is a bit confusing.
image

[Feature Request] Several minor features/fixes (Please consider this)

Hi, I know you're doing this on your free time and you're not obligated to read the issues and provide our feature requests, but it would be still nice of you if you could at least consider these:

  1. An ability to always center the overlay on the bottom or top of the screen

  2. An option to remove the description inside the overlay:
    image

3.1. An option to blacklist certain keystrokes from being shown onto the screen. e.g. I may want to start a tutorial on a stream and I may want to control the OBS and I may not want for it to be shown on the screen, so if I could blacklist certain keystrokes that I know I might be using for other purposes (other than the subject of the tutorial) it would be nice.

3.2. Alternatively, it would be nice if we could have whitelists and blacklists of softwares and programs that we may want or don't want to share their keystrokes.

3.3 Again alternative to the previous two points, it would be nice if we could at least turn on/off the Carnac software by pressing a keyboard shortcut, so basically being able to trigger Carnac options/events with keyboard shortcuts.

  1. An option to limit the number of Carnac overlays being shown on the screen to a certain number, so that we can avoid this during our tutorials:
    image

  2. Also I think the mouse wheel functions could be better illustrated in the overlay.

  3. And it would be nice if you could add an extra option to choose between Windows 7 and Windows 8/10 logo for when Carnac is logging the Windows key.

Conflict with Word

Thank you for putting all the features together.

I am trying to show how to type an equation in Word, and with Carnac on, I get two ^ every time I type one.
It is the same with ¨, ´ and ` , but for some reason ~ gives me a ¨~ and | becomes ´|.

' and * work fine as do the rest of the special keys like æøå.

I am on an HP Elitebook with a Danish Keyboard, so it might be an issue with the extra keys we have compared to an English keyboard.

Best regards
Lisa

[Feature Request] Mute when typing text

I have an application that uses plain letters as shortcuts. But the application is also needed to input text. When recording a screencast this text input is quite annoying, when appearing on screen.

Can you implement an option that recognizes the difference of simple key strokes and text input? Maybe by defining a minimum time between two single key strokes? for example if set to 500ms, you could see the plain letters used as shortcuts, but not text typed.

Can't move settings screen.

If you want to move the settings screen to another part of the screen, drag&move doesn't work.
I assume it's because the actual title-bar is hidden.

Enabling Silent Mode

Hi, thank you so much for integrating mouse highlighting into carnac.
It would be great, if you could consider adopting Silent Mode mouse hl as well.

Scenario:
Ctrl+Alt+P disables keyboard logging, mouse hl stays enabled.

Feature:
Mouse highlighting is disabled/enabled in sync with Silent Mode.

Thank you.

Mouse click highlight circle is offset on secondary monitor

Hi thanks for writing Carnac. This tool is amazing for recording tutorials.
I record CG tutorials on a 2 screen setup, and I use the secondary monitor as the recorded area, so that I won't be showing the windows menu bar while recording.
However, with such configuration the mouse click highlight circle is offset and I could not find a way to centre it.
See behaviour here:https://youtu.be/eVQ8BlebHHw
Is this a known issue?

[Feature Request] Allow splitting MouseDown and MouseUp events

It is sometimes necessary to distinguish between pressing a mouse button and releasing it (e.g. software with drag or transform operations like in 3D modeling). It would be nice if your fork could support showing these events separately

This might be better accomplished with text instead of mouse icons e.g. "Left Mouse Press" and "Left Mouse Release" and so on. (not sure how one could distinguish between the two states other than color)

Spanish accents

When the program is running I cannot insert letters with accents. In order to insert a, for example, "á" I press "'" then "a" and Windows replace with "á". With the program running Windows never inserts accent letters.

appearance tab to decide box width

https://github.com/Code52/carnac/ features an appearance tab that let's you decide the width of the pop up boxes showing keystrokes, so one could place the key strokes in a row, rather than in a column. Is this a possibility on this fork? Is this something I can achieve by somehow editing "Carnac.exe.config"?
Thanks!

Inconsistency in names for PageUp and PageDn

The keys on the computer are called "pgup" and "pgdn", but on screen you see "PageUp" and "Next". Users seeing "Next" can't understand that I used the "pgdn" key, more so if "pgup" is not called "Previous" but correctly "PageUp".

[Feature Request]Show mouse circle when not click

Hi, bfritscher!
I think if you can show a translucent circle on the cursor, it will help people focus the mouse easier when they see the video, just like the pointerfocus.

BTW,The application is really cool, I love it!

Static circle after release of the mouse button

If a mouse click is performed, the circle follows the mouse, even if the key is released. This makes it more difficult to see the point, where the mouse was initially clicked. There's also no visual indication to cue to distinguish between a click and the start of mouse dragging.

I'd suggest the following behaviour:

  1. Mouse button is pressed down: Circle is rendered and expanded to stop scale, but no opacity and border width changes are triggered.
  2. Mouse is dragged: The circle moves with the pointer and remains at stop scale, start border and start opacity.
  3. Mouse button is released: The circle stops moving, the animation to stop border and stop opacity is started.

This change may lead to several circles shown at the same time.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.