A global mouse and keyboard hook for vvvv gamma. In contrast to the GlobalHook stuff posted in the forum and the chat beforehand this package is not based on MouseKeyHook but on SharpHook by Tolik Pylypchuk.

After some deliberation I chose Sharphook because:

For more info please check:

To use latest version, install via nuget

nuget install VL.IO.MouseKeyGlobal


Latest version (1.3.0) supports keyboard simulation.


I gave it a go and a lot of nodes are red over here, am I missing something?

Explanation Overview of available nodes.vl-Application_2022.09.17-21.42.28


Forgot to add the dependency on SharpHook to the nuspec… Should be fixed with the upcoming version. For now you have to install the dependency manually.

Hi bjoern,

thanks for your contrib! I am patching a touch keyboard, but I am struggling with @ and space

Rcontrol+Alt+Q just gives me “q” s. I also tried LControl and Control - same.

also funny: Shift+OemMinus does not work, but LShiftKey+OemMinus does.

And “Space” does not work at all for me.
Any hints? It seemed to me you already did something similar :)

Works here:

Edit: The bang doesn’t register in the gif but is also working.

hm seems the issue lies with my typewriter mod. your contrib works for the original one, if the window is selected…

Only change I made was inputting the observables from keyboard (io.global) directly into the sampler. image

other keys not working: ´´^²³{[]}~|
QWERTZ here, so basically all AltGr combinations and some other ones.

any Idea why this could happen? my physical keyboard and keyboard simulator result in the same “keypresses”

Can’t tell from looking at screenshots.

I also changed the categories of my typewriter mod for it to not interfere with the original one.

test.zip (129.1 KB)

Looks like Sharphook (or most likely rather the underlying libuiohook) is returning the key events in the “wrong” order.

Hey, thx for having a look at it!

I suspected something like this, but I just checked with the global.io.keyboardstate for both keyboard and global hook simulator input. Your keyboardstate shows the same key order for both input methods.

Comparing system.keyboardstate with global.io.keyboardstate shows the reverse keypress order coming from the keyboard simulator… I tried inputting the reverse order, but it did not solve the problem.


Did you manage to do triple keypresses?

Dug a bit deeper and turns out I was looking in the wrong place. Unfortunately there is nothing I can do about the issue. But you can work around it by using a non-german keyboard layout :)

lol, the best error for my task at hand ^^
hey, thanks a lot for investigating and opening up the issue!

ok I worked my way down dependency hell, and posted the issue.

https://github.com/TolikPylypchuk/SharpHook was updated to latest libuiohook recently.

Maybe this resolves the issues with triple key shortcuts!