Ondrej

Ondrej

About Me

Connect

LOCATION
Not Specified
WEBSITE

Houdini Skills

Availability

Not Specified

Recent Forum Posts

The hotkey system is broken in Houdini 20.5 July 22, 2024, 10:09 a.m.

Houdini 20.5 is using a new hotkey resolution and context system. Resolution is now consolidated and done explicitly against all the key bindings in a set of active contexts instead of piecemeal by each individual hotkey handler.

This makes new capabilities possible, though most are not yet available to users via the UI. For example, it is now possible to have bindings for a given action in different contexts, so we can have viewer state contexts with bindings for handle actions. The consolidation of key event resolution also makes it possible to bind key sequences as action triggers. For example, the G key followed by the H key to trigger one action, and the G key followed by the H key to trigger another.

All of this required switching to a new set of configuration file formats and new keymap file and keymap override formats. Not saving the labels and descriptions for dynamically added hotkey symbols into the keymap and keymap override files is intentional. It is both to avoid saving redundant data and to have unregistered actions for which a keymap has bindings stand out. The blank lines in the UI are a bug as is the fact that this affects the shelf tool hotkeys the way it does. Note that those key bindings will still work to trigger the shelf tools in the specific examples mentioned in this thread. There are other situations where they won't, but that's a bug that was present in the old system as well.

Speaking of the old system, it is possible to run 20.5 using the old hotkeys and configuration files by running Houdini with the HOUDINI_NEW_HOTKEY_SYSTEM environment variable set to 0. This is intended as an emergency option to let users work around any serious issues that they might encounter in their particular configurations and use cases. Note however that virtually all internal testing of Houdini 20.5 was done with the new system in the several months immediately preceding release, and the ability to switch back will be removed in H21.

The capabilities and organization of the old and new systems are more different than it may appear despite superficial similarities. The cumbersome importing of old keymap files is a best effort sort of thing and may not capture everything perfectly. This, and the fact that we ran out of time, is why it currently has to be done through a python script.

This was all supposed to be documented when 20.5 shipped, but this was pushed back for higher priority items. The documentation is forthcoming, as are some bug fixes to specific issues raised in this thread.

As the chief villain/architect of the new system I would normally have already pushed fixes to some of the other issues that have been reported with the new system to the daily builds, but I've been busy with other responsibilities.

Importing hotkeys from H20 into H20.5 July 17, 2024, 9:41 a.m.

The error in keymaputils.importV1KeymapBindingsToKeymapFile() is fixed in 20.5.299. It will also transfer shelf tool hotkeys in that version.

Importing hotkeys from H20 into H20.5 July 15, 2024, 2 p.m.

Houdini 20.5 is using a new hotkey system, with new default configuration files and a new keymap file format and extension (.keymap2).

The documentation on all this is a little behind, so please bear with us.

You can bring in your bindings from an old .keymap file into a new .keymap2 file, with a helper python script, but it's a little involved. First you need to save out a new .keymap2 file from Houdini to act as source from which we will look up the bindings in the old .keymap file and generate a new .keymap2 file with your old bindings.

Then, in a python shell, you can run the following, replacing the arguments to match your file paths/names.

import keymaputils
keymaputils.importV1KeymapBindingsToKeymapFile("path_to_new_keymap2.keymap2", "path_to_old_keymap.keymap", "path_where_to_write_the_new_keyamp2_file", "KeymapName")