HotKey Manager for GoICC v1.2.0


Overview

Please note, this is a beta implementation of the hotkey manager that featured in the v1.2.0 release. Make sure your version is the intended version for this help article.

To set a hotkey, make sure the "Enable Global Hotkeys" toggler is selected. If it was not, you will need to restart the application after selecting it. In the text field of your choice, you will need to put in a specially formatted string/sentence that adheres to the following syntax:

     *    <modifiers>* (<typedID> | <pressedReleasedID>)
     *
     *    modifiers := shift | control | ctrl | meta | alt | altGraph
     *    typedID := typed <typedKey>
     *    typedKey := string of length 1 giving Unicode character.
     *    pressedReleasedID := (pressed | released) key
     *    key := KeyEvent key code name, i.e. the name following "VK_".

For example, control shift PLUS, or control alt T would be accurate formatted bindings. Syntax is from java.swing.KeyStroke#getKeyStroke(String).


Why So Messy?

The current implementation is rough due to the types used in our global hotkey library of choice - jkeymaster - and the GUI framework JavaFX. They happen to both use "KeyEvents," but it turns out they use completely different KeyEvents. JavaFX using its own definition, and jkeymaster using the Java Swing definition. These definitions are not compatible. Converting between them is undocumented and undefined. Therefore, the traditional method of simply capturing the user's input requires some extra finessing. In future, we plan to sort out the conversion manually, attempt to use Swing's type throughout, or move to a new library. Updates should be posted to repo issue #95 if progress is made.