The hotkey system is broken in Houdini 20.5

   11441   44   3
User Avatar
Member
331 posts
Joined: 8月 2018
Offline
citizen
they're architecture engineers not UI designers, after all.

Exactly. I think they need one.
User Avatar
Member
373 posts
Joined: 6月 2023
Offline
LukeP
What do you mean by ‘ Being able to reference/switch between and each geo/lop/cop contexts much more easily is a real joy.’?

I wonder this too. I think H20.5 doesn't change much how we switch between contexts.
User Avatar
Member
2141 posts
Joined: 9月 2015
Offline
kodra
I wonder this too. I think H20.5 doesn't change much how we switch between contexts.

You no longer have to change to composite view - You can stay in scene view.
User Avatar
スタッフ
1082 posts
Joined: 7月 2005
Offline
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.
User Avatar
Member
374 posts
Joined: 3月 2009
Offline
Ondrej - thank you for taking the time to respond and explain.
User Avatar
Member
1 posts
Joined: 7月 2021
Online
Thanks for the environment variable workaround!
User Avatar
Member
143 posts
Joined: 6月 2024
Offline
Guys, how can I assign a hotkey to select geometry in the Group field? I circled the arrow in the screenshot.
I tried selecting Restart selection and Quick selection in the hotkey editor, but it had no effect. What is the correct name of this function?
And by the way, does anyone know what Restart selection and Quick selection are for in the hotkey editor actions?

Attachments:
Screenshot 2024-07-28 011327.jpg (62.6 KB)

User Avatar
Member
4851 posts
Joined: 2月 2012
Offline
Ondrej
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.

Thanks a lot Ondrej! The new hotkey system packs a lot of firepower! The new key sequences are pretty similar to my dual hotkey system where the first key popups up a custom menu and the second key invokes a menu item. Really quick way of working while overloading each key with a ton of other keys per context.

So it's normal the docs are a bit behind the cutting edge
Senior FX TD @ Industrial Light & Magic
Get to the NEXT level in Houdini & VEX with Pragmatic VEX! [www.pragmatic-vfx.com] https://lnk.bio/animatrix [lnk.bio]
User Avatar
スタッフ
1082 posts
Joined: 7月 2005
Offline
animatrix_
Thanks a lot Ondrej! The new hotkey system packs a lot of firepower! The new key sequences are pretty similar to my dual hotkey system where the first key popups up a custom menu and the second key invokes a menu item. Really quick way of working while overloading each key with a ton of other keys per context.

So it's normal the docs are a bit behind the cutting edge

Thanks for the nice words. Just to be clear for others reading this, the ability to bind key sequences isn't a part of the 20.5 release. What animatrix is referring to is a prototype implementation.
User Avatar
Member
88 posts
Joined: 11月 2023
Offline
Ondrej
animatrix_
Thanks a lot Ondrej! The new hotkey system packs a lot of firepower! The new key sequences are pretty similar to my dual hotkey system where the first key popups up a custom menu and the second key invokes a menu item. Really quick way of working while overloading each key with a ton of other keys per context.

So it's normal the docs are a bit behind the cutting edge

Thanks for the nice words. Just to be clear for others reading this, the ability to bind key sequences isn't a part of the 20.5 release. What animatrix is referring to is a prototype implementation.
When will we have the ability to see the labels of assigned hotkeys in the hotkey editor?
User Avatar
スタッフ
1082 posts
Joined: 7月 2005
Offline
RGaal
Guys, how can I assign a hotkey to select geometry in the Group field? I circled the arrow in the screenshot.
I tried selecting Restart selection and Quick selection in the hotkey editor, but it had no effect. What is the correct name of this function?
And by the way, does anyone know what Restart selection and Quick selection are for in the hotkey editor actions?

The "Restart Selecting" hotkey, bound to back tick by default, is primarily a relic from when viewer states handled the geometry selecting and node creation themselves. This hotkey action essentially restarts those states.

Since the introduction of shelf tools, most of the geometry selection and node creation is handled by the shelf tool, which then just invokes the node's viewer state with everything already set up. When this happens, the state doesn't know how to restart itself, and so the hotkey action doesn't work properly.

The "Quick Selection" labelled hotkey is a state-specific hotkey in the UV Flatten 3.0 state. I don't know what it does offhand, but it's not available outside that state.

I don't believe you can bind a hotkey directly to this select geometry button. The best you can probably do is create a shelf tool that invokes it and assign a hotkey to that shelf tool. Unfortunately, I don't think there is a way to invoke this type of action script directly through python, or, if there is, I'm aware of it. All of these group select buttons invoke the ` soputils.selectGroupParm()`, which can be easily invoked from a shelf script if a node has a group parameter. The bad news is that the buttons for different groups often pass different arguments to this function since they have slightly different needs, so I don't think you can easily capture all this in a generic script.
Edited by Ondrej - 2024年7月29日 10:11:10
User Avatar
Member
373 posts
Joined: 6月 2023
Offline
Ondrej
I don't believe you can bind a hotkey directly to this select geometry button. The best you can probably do is create a shelf tool that invokes it and assign a hotkey to that shelf tool. Unfortunately, I don't think there is a way to invoke this type of action script directly through python, or, if there is, I'm aware of it. All of these group select buttons invoke the `soputils.selectGroupParm()`, which can be easily invoked from a shelf script if a node has a group parameter. The bad news is that the buttons for different groups often pass different arguments to this function since they have slightly different needs, so I don't think you can easily capture all this in a generic script.

Can one just get the python code of the parameter's script_action Python code as string then eval() it? I know eval() is usually a bad idea for general programming, but if it's just used internally for Houdini...

Anyway it would be more ideal if Houdini's Restart Selecting just be smarter to handle this. It even occupies a quite valuable hotkey
(`) by default. Please make it do better.
Edited by kodra - 2024年7月29日 10:03:50
User Avatar
スタッフ
1082 posts
Joined: 7月 2005
Offline
alexeyvanzhula1984
When will we have the ability to see the labels of assigned hotkeys in the hotkey editor?

The bug with seeing an empty line has been fixed, though not by me. You now see the hotkey symbol for those hotkeys that don't have registered labels, as intended. There is still an outstanding issue with the shelf tool hotkeys not having registered labels. This is a consequence of the way shelf tools register their hotkeys on demand, and not intended. I'll get to it as soon as I can, but there are higher priority issues I need to deal with first.
User Avatar
スタッフ
1082 posts
Joined: 7月 2005
Offline
kodra
Can one just get the python code of the parameter's script_action Python code as string then eval() it? I know eval() is usually a bad idea for general programming, but if it's just used internally for Houdini...

Anyway it would be more ideal if Houdini's Restart Selecting just be smarter to handle this. It even occupies a quite valuable hotkey
(`) by default. Please make it do better.

Actually, yes, that's technically possible and didn't occur to me. The script is stored in the parameter's spare data (tags, in the HOM vernacular). So, given, the `hou.Parm` or `hou.ParmTuple`, one could get the tags using `parm.parmTemplate().tags()`. It'll be listed as 'script_action'.
Edited by Ondrej - 2024年7月30日 09:28:17
User Avatar
スタッフ
1082 posts
Joined: 7月 2005
Offline
Ondrej
Unfortunately, I don't think there is a way to invoke this type of action script directly through python, or, if there is, I'm aware of it.

Turns out that I was indeed unaware of it. We added a hou.Parm.pressScriptActionButton() method in 20.5.
Edited by Ondrej - 2024年7月29日 16:19:45
User Avatar
Member
17 posts
Joined: 5月 2016
Offline
Are we customers paying to beta test Houdini 20.5?
User Avatar
Member
609 posts
Joined: 8月 2019
Offline
Stephen Davidson
Are we customers paying to beta test Houdini 20.5?

Alwasy have been. Next year before you continue your subscription, remember this is a software where even hotkey can be broken.
User Avatar
Member
143 posts
Joined: 6月 2024
Offline
Don't whine, it's ridiculous money for so many lulz every day. I gave it to the developers with pleasure and will give it again. And there are still more goodies in Houdini than bugs.
User Avatar
Member
374 posts
Joined: 3月 2009
Offline
Stephen Davidson
Are we customers paying to beta test Houdini 20.5?

Can we please stop posting idiotic messages like this?
User Avatar
Member
21 posts
Joined:
Offline
HOUDINI_NEW_HOTKEY_SYSTEM = 0

Attachments:
Screenshot_20240814_135810.png (14.7 KB)

  • Quick Links