Skip to content

forivall/niftykb

Repository files navigation

Nifty Keybinder

Allows mapping hard-to-detect keys to output commands over Windows' MailSlot IPC and perform other nifty tasks. (run programs and faking other, more detectable keystrokes)

Works together with the niftykb-ts3 plugin for Teamspeak 3 Plugin. Let me know if you have any other uses for this!

Screenshot

Adapted from mumble's global keybinding code. May be refactored to use nil in the future.

Depends on Qt 5+, DirectInput, boost (headers only), cmake (to build).

Build instructions

Download Qt5, the DirectX June 2010 sdk, and Boost.

(Script assumes you have Qt installed in %SYSTEMDRIVE%\Qt and MSVS 12.0 in %PROGRAMFILES(X86)%\Microsoft Visual Studio 12.0)

Replace "[arch]" with x86 or x64

cd build-x[arch]-debug
../usr/bin/env_x[arch].cmd cmake -DCMAKE_BUILD_TYPE=Debug -G "NMake Makefiles" ..
../usr/bin/env_x[arch].cmd jom
../usr/bin/copydebugdlls.cmd [arch]

You can also use qt creator:joy_cat: or :see_no_evil:visual:hear_no_evil:studio:speak_no_evil: to build, ymmv.

TODO

  • Release built executables
  • Improve documentation
  • Support multiple messages for a single keypress
    • Use QStringList in the qvariant
  • Add right click menu for tray icon
  • Automatically close to tray
  • Add option to start hidden to tray
  • Support g-keys, either with the pure lib or with nil.
  • Detect which keyboard is being used, like nil
  • Get suppress working, especially for keys that are on the default layout
  • Use a usb lib to control the led on the azio levetron mech5