On this page |
Hotkey Bindings ¶
-
Houdini now uses
<modifiers> + <unmodified_key>
for hotkey bindings. Some default hotkey bindings will not work on keyboard layouts that don’t have the required unmodified keys. -
The
<unmodified_key>
in a binding can be an arbitrary unicode character. UTF-8 encoding is used for keymap and override files. -
Bindings can now more easily target international keyboards with fewer limitations. The default bindings still target a US keyboard layout.
Porting Old Custom Keymap File ¶
A custom keymap from an earlier version, which used the modified keys for bindings (e.g. !
instead of Shift+1
), can be ported to the <modifiers> + <unmodified_key>
equivalent by the following python script.
import keymaputils keymaputils.applyMappingToKeymapFile("/path/to/input.keymap", keymaputils.mappingLegacyShiftedUS, "/path/to/output.keymap")
Porting Custom Keymap File to Another Keyboard Layout ¶
A custom keymap already using the new <modifiers> + <unmodified_key>
bindings can be ported from one keyboard layout to another by a simple python script.
For example, the following script will port a keymap for a US layout to a French AZERTY layout, by keeping most letter key bindings the same and ramping the non-letter keys by physical location.
import keymaputils # NB: A mapping to an empty string removes any bindings using that key. mapping = { '`' : '²', '1' : '&', '2' : 'É', '3' : '"', '4' : '\'', '5' : '(', '6' : '-', '7' : 'È', '8' : '_', '9' : 'Ç', '0' : 'À', '-' : ')', '[' : '', ']' : '$', ';' : 'M', '\'': 'Ù', 'M' : ',', ',' : ';', '.' : ':', '/' : '!' } keymaputils.applyMappingToKeymapFile("/path/to/input.keymap", mapping, "/path/to/output.keymap")