Custom input system for keyboard and mouse for Windows.
This application allows the user to control the mouse and other systems such as cursor and scrolling using a minimal set of keys - without actually using the mouse. It also allows for the use of abbreviations. Yes, there are other tools that do this and better but hey.
Hold an Interrupt button - By default the Right-Control key - and then use the rest of the keyboard to send custom input.
NOTE Use the provided SharpKeys binary to remap the CapsLock key to the Right-Control Key. The CapsLock key is an anacronism in any case, may as well put it to good use.
For instance, press and hold the Interrupt button, and:
- use
WASDto move the mouse cursor up down left right. Movement is passed through a customised filter to emulate the behavior of an Ibm ThinkPad clit button. RandVkeys send scroll up and down, again with a custom filter and timings.- The
space barsimulates the left mouse button Gthe right mouse button.- You can also double-click. I think the threshold is 300ms.
- Double-pressing the
Interruptkey centers the cursor on the main monitor. - There is some customisation available via a simple GUI, but to change the keys the only current way is to just edit the code.
Just build the Visual Studio solution. This is very much not a cross-platform app so I didn't bother with CMake.
Enter abbreviation mode with Interrupt-Q (typically Capslock-Q). Then you can insert any text as mapped in the config file.
For instance, my email address is christian@schladetsch.com. I end up typing that a lot. Now I can enter it with Interrupt-Qg.
The g is the abbreviation stored in the Json file. I've added a bunch of things I use a lot, like passwords etc. Obviously you'll have to make your own Config.json in the same folder as the IncodeWindow.exe executable.
When you enter abbreviation mode, a popup appears showing all your abbreviations. Note that you need to still hold down the Interrupt key to complete the abbreviation.
The configuration is stored in Config.json, in the same folder as the app.
A typical config file would look like:
{
"Abbreviations":
{
"g": "christian.schladetsch@gmail.com",
"v": "christian@schladetsch.com",
"p": "04712341234",
"gp": "+61(0)37234524",
"cc": "1234123412341234",
"p1": "password",
"p2": "hunter11",
"p3": "not-telling",
"ad": "29 Fuddle St, East Place, Somewhere, Country, 3002"
},
"Speed": 250,
"Accel": 12,
"ScrollScale": 0.5,
"ScrollAccel": 1.15,
"ScrollAmount": 3
}
Use GitHub's Issues to raise any faults or feature requests.
Otherwise, feel free to contact me.
