Announcement Announcement Module

Forum and discussions have moved

This forum is now in archive mode. Its contents have been frozen and no new posts or replies can be made. Please join us at our new community discussion area:
See more
See less
AirKey - gesture-based hotkey mapping (+basic mouse control) Page Title Module
Move Remove Collapse
Conversation Detail Module
  • Filter
  • Time
  • Show
Clear All
new posts

  • AirKey - gesture-based hotkey mapping (+basic mouse control)

    Hi everyone,
    I've written a small, open-source tool called AirKey which enables to bind the leap gestures to freely configurable hotkeys, and provides a basic mouse interface when moving closer to the screen.

    Basic Features (also check the changelog):
    • Bind swipe/circle/screentab gestures to any CTRL/ALT/SHIFT/WIN+KEY combo (works with Multimedia Keys as well, ie next/previous track, volume up/down)
    • Move past the leap, and you can move the cursor. Hold your fingers like a gun (sideways - gangster style ), and to click move your thumb towards your index finger. If you hold out any other finger (ie like that), it's a right click (suggestion for a better modifier wanted!). You can also invert that (click by extending your thumb).
    • You can also change mouse sensitivity, circling speed (how many times a circle the action gets executed) and define the zone where mouse-movement is possible (or disable it completely).
    • The program still runs in the console, but optionally hides itself. To bring it back, press CTRL+ALT+L.
    To change shortcuts, modify AirKey.xml with any texteditor. Comments are in there, more help in the readme.txt.

    DOWNLOAD-LINK: SourceForge.

    Overview of available gestures: YouTube.

    I hope it helps some of you, bug reports/feature requests are always welcome. If someone wants to help with development, PM me.

    PS: If problems occur, checking the old thread might also help.

    PPS: If you get a 'msvcp110.dll not found' error, you need the VS C++ 2012 Redistributable - LINK


    v0.9: (more details here)
    • More robust hand detection algorithm
    • More robust clicking detection, now also work with hand pointing to the side. Trigger distance can be set using triggerSensitivity.
    • Click-and-hold trigger added - if you keep your thumb extended, it triggers a button press without releasing the button, for dragging, selecting multiple items etc
    • Fixed screen size calculation bug in touch mode
    v0.8: (more details here)
    • Touchscreen mode - make any surface into a touchscreen. Details can be found in the link above.
    • Changes in the way the pointing finger is stored, should be more robust.
    • Start menu not movable any more.
    • Hand detection/gestures only in the center of the field of view of the Leap (InteractionBox).
    v0.7 (more details here)
    • Bugfixes
    • Window-Dragging mode added (VirtKeyCode 255, see the link to the detailed description).
    • Added menu to choose config files.
    • Added the possibility to execute one of three batch (.bat)-files in the AirKey directory using a gesture (VirtKeyCodes 256-258).
    • Name of executed gesture shown if no hotkey is assigned.
    v0.6 (more details here)
    • Double Click - enter 512 as a mouse-keycode.
    • Pause tracking with a new gesture - "time-out".
    • Huge bugfixes, especially while using two hands simultaneously.
    v0.5 (more details here)
    • Mouse Wheel now works
    • The middle click now does what it's supposed to
    • Modifier keys in combination with the mouseclicks now work
    • Improvements (hopefully) in gesture-behavior in multihand-mode
    v0.4 (more details here)
    • Clap and fistbump gestures
    • Real hand detection
    • Easier right click (just use any finger)
    • Multifinger gestures in mouse mode
    • Bugfixes (win+shift+arrows work now, bug in normal trigger mode fixed)
    v0.3 (more details here)
    • Multifinger support! If you perform gestures with more than 3 fingers outstretched (= your whole hand), you can assign different hotkeys to the gestures.
    • Thumb-Trigger mode reversable.
    • ScreenTap and KeyTap enabled in Mouse Mode, which different actions possible.
    • Customizable delay after each command. If you get multiple executions of the same gesture, try increasing it.
    • 2 commands available in the program: Reloading the config-file (ie after modification), and hiding the console window on command.
    v0.2 (more details here)
    • Support for lefthanded users (set "Lefthanded" in the config file to true).
    • Mouseclick/Mousepress distinction by moving the thumb downwards/just horizontally added.
    • Change in the keepPressed-behaviour in the settings file (executing the command again will release the key, no seperate gesture needed).

    And last but not least, Sharp has programmed a GUI for modifying the configuration:
    Originally posted by Sharp View Post
    Hi all.
    The GUI is up for testing now. Works with Air Key v0.3

    You can watch a little movie here explaining how it works.

    Last edited by Epikur; 09-05-2013, 04:48 PM.
    AirKey - free & open-source, gesture-based hotkey mapping and mouse control - LINK

  • #2
    If only all illustrations were that worthy lol, Thanks Epikur.

    Update: in the xml file in looking for the way to hold the key down in say "swipe left"
    can you explain how to repeat the key, i'm not doing true/false right or something I get no repeat key.

    Also I can not seem to left click from the left hand...since I am left handed this makes things very tough.

    Thanks Epikur
    AirKey v0.1 ROCKS CHECK IT OUT!


    • #3
      For now, to keep a key pressed, you'd have to assign a gesture (ie swipe left) the pressing down motion, and another gesture (ie swipe right) the releasing motion. For that you'd have to set "keepPressed" to true for both swipe left/right, and "release" to false for left, and true for right.
      However I found my current system to be quite stupid, I will work on an internal switch where you only need to set keepPressed, and if you repeat the gesture the key is released.

      For left-handed people: I will release a version with a switch in the config-file tonight or tomorrow.
      Also upcoming: Configurable mouse acceleration - might get rid of small jerky movements while clicking.

      And something I'd like to hear from you guys: The thumb-trigger might seem cool, but would you find it more convenient to have the thumb close by as a default, and extending it to click? I find myself entering mouse-mode with only my index finger stretched out, and that immediately triggers a click...

      For those interested: You can also click by moving the index finger of your other hand to your thumb, while keeping the thumb tucked in. The program checks the horizontal distance of the leftmost finger (thumb, or index finger of other hand if it exists) to the index finger used for pointing (=closest to the screen). If it's below 25 mm, a click is triggered, if it's above 30 mm again, the click is released.
      AirKey - free & open-source, gesture-based hotkey mapping and mouse control - LINK


      • #4
        3 things for you Epikur,
        1) Awesome program. Runs great, easy to configure even for not very fluent programmers. As much as I say put this in the app store for free when its all said and done, you could make a killing off it.
        2) Nice idea for clicking the mouse, also being able to change the sensitivity has really helped.
        3) For the future, and im not sure how other people feel about this so if Im an idiot let me know, if there could be two hand implementation for various tasks productivity could be sped up even further. You had mentioned there being a 1 sec lead time for doing gestures like volume control. But what if lets say you could extend your left hand and by using one or two fingers on your right, move away from your left hand to increase the volume, or even to change windows and what not.
        Just somethings to think about.
        Again great work, 100000 times better than anything in the store right now.


        • #5
          Thanks Epikur for the tips, yea I switched those thumb triggers last night and I like it better swaped.
          thanks for the lefty ver. too
          Yup that's what I was doing, left too activate and right swipe to deactivate.
          Super thanks again looking forward to mouse acceleration.

          Hmm...cant seem to get a repeat key to trigger save my life.


          • #6
            Due to dumb limitations in my hands (I have no idea why), if my hand is closed I can not for the life of me lift or extend my pinky
            I have never been able to make the rock/devil sign, so this also means I can't right click with your program haha! A different implementation would be welcomed.


            • #7
              Lol that's very funny Archez, I on the other hand(pun intended)am getting left click on the left hand flicking my pinky.

              Epikur I am seeing am odd thing in some apps the mouse is there but when I pull out of mouse mode the keys do not register? I tried some UAC shenanigans but I get only mouse mode, no media, no key presses.

              Thanks Epikur


              • #8
                @vpribs: I think I can't put it in the app store, because you need to be able to sign code or something, and I'm not a developer and I don't know how much support I can give in the future. That being said, there will be a potentially really awesome app in the store called GameWave soon (search the forums for it). That's also why I'll limit cool features to things that can be implemented easily.
                @pi: Ooops, forgot to implement that for keyboard-keys, sorry for the lost time on your side. Next release will have an automatic detection (if you set "keepPressed" and use the gesture, it will be unpressed the next time you execute that gesture).
                @Archez: Suggestions welcome, but there might be a workaround-solution for you in the next release.
                AirKey - free & open-source, gesture-based hotkey mapping and mouse control - LINK


                • #9
                  Are there Visual runtime libraries or anything that are needed to be installed prior to running the executable? I'm getting a msvcp110.dll not found message.


                  • #10
                    Originally posted by frogger View Post
                    Are there Visual runtime libraries or anything that are needed to be installed prior to running the executable? I'm getting a msvcp110.dll not found message.
                    The old thread mentions that you need to install "Visual Studio Express 2012". I am getting the same error but I suppose it's because I don't have it yet. Installing it as I write this though and a little research on the error also mentions "Visual Studio Express 2012".

                    EDIT: It's free and you can get it here:


                    • #11
                      Ah yes, you need the VS C++ 2012 Redistributable -

                      @pi: Try with the next release (in testing), if it still does not work I need more details (which key don't work? Gestures/Hotkeys/...)
                      AirKey - free & open-source, gesture-based hotkey mapping and mouse control - LINK


                      • #12
                        I really like this tool. It is much more intuitive than Touchless!

                        I have a little request for the next versions though. Currently, you can keep the left mouse button pressed as long as you are keeping the thumb close to your hand. It would be wonderfull if you could make it so that the same thing happens with the right mouse button. So that the button is pressed as long as the thumb is close to the hand, and released when the thumb is moved back to default position.

                        I tried changing "<keepPressed attr="false"></keepPressed>" to "TRUE", but then you need to 'Click' twice with your thumb. Once for pressing and once for releasing.

                        On a different note:
                        It is mildly straining to keep the hand in the default position for a longer period of time. It also seems like I am unable to right-click without extending my pinky as far out as it possibly goes, which is actually a little hurtfull over time. However, this might just be the way my hand is build I don't know.

                        Overall I think this program is much more useful than Touchless. Especially because moving the hand also moves the cursor, whereas touchless removes the cursor entirely and rendering it useless for playing games where the cursor is an essential part of that game.


                        • #13

                          Why not use the middle finger as a trigger for right-clicking instead of the pinky ?
                          Should be way more comfortable


                          • #14
                            Originally posted by Epikur View Post
                            Ah yes, you need the VS C++ 2012 Redistributable -

                            @pi: Try with the next release (in testing), if it still does not work I need more details (which key don't work? Gestures/Hotkeys/...)
                            You need to download the x86 version in order to solve the .dll not found. I've got it to run, but unfortunately I can only control the mouse within the application window active. As soon as I move the cursor outside the window, or the window automatically hides - it stops responding. Windows 8 64bit. Run as Administrator.

                            Edit: Even though I can only move the mouse in the app window and only drag the app window around - it feels way smoother than Touchless ever did, and clicking is much easier. Nicely done.


                            • #15
                              Frogger Windows 8 x64 is running ok on for me, did you say its not working right for you?

                              Great thanks Epikur, cant wait to try it!