| 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")