Using CLI - conversion of CCM maps
Introduction
The application provides a utility for converting key mapping files created using CH Control Manager (CCM) to key mappings files usable by chmfp.
First of all, this is the opportunity to compare functionalities between chmfp and CCM, and to list the limitations in file conversion.
Differences in core handling of CH keys
CH Control Manager (CCM) will handle the CH keys either in direct mode, and in that case will pass events as DirectX or mouse key presses ; either in programmed mode, and in that case allows to program an event for CH key press, and another for CH key release - each event can be either a key press, or a set of key presses (macro) or a list.
chmfp will handle each CH key as if it were an actual key of any device, i.e. keyboard, mouse or joystick. In the two latter cases, we have the same behaviour as CCM. In the case of the keyboard, press the key and the programmed key will be pressed, release it and it will be released. In other words, chmfp will not produce events from different keys for press and release of a CH key. However, macros and lists can be assigned (the latter being considered a special case of the former). You may consider that all keys are in direct mode.
What chmfp handles
Most CCM functionalities can be handled by chmfp, including the so-called shift key (modifier), macros and lists, and in addition will simulate mouse / joystick axes / hats. Differences between key press / release events could in most cases be circumvented by using sticky keys, toggle keys (a list of 2 events) or macros.
All macros can be handled by chmfp, including all keywords defined in CCM, such as KEYS + -, HOLD, CHARDLY, CTL, SHF, ALT, NULL,... the only exception being DIRMODE, which does not make sense for chmfp. You can also include macros in lists,...
CMC command files are also handled by chmfp. Be cautious about how the path is specified in the mappings file, you might need to specify an absolute path or conversely make your conversion in the appropriate directory.
What chmfp does not handle
→ chmfp will not handle advanced scripting (CMS)
→ chmfp will not handle other hardware, currently only CH Multi-Function Panel is supported.
→ ClickStart enable, DIRMODE, specific programmed key/macro on release, and mode control are not converted.
End result
The end result of the conversion is a keymap file (as usual, defined with the -f or -g switch, or the default value), and possibly a set of macros, in the case the original CCM .map file had defined lists or macros. Consequently, to use the newly-created mapping file, you would need to also use the macro files (if you are not using -g or -G, you must then use -m switch, non-default name set is created by appending -macro to the keymap file). You can edit further these files if you need to complete.
A log file is created in /var/tmp/chmfp.log and is displayed on screen, to show you any errors or warnings that occurred during the conversion and that might require further editing from your part.