Setup video: https://vimeo.com/390438508/0e1ba34f29 https://www.dropbox.com/s/2tc542a24tbmnqx/supercharge.zip?dl=1
I made a number of modifications to the standard Houdini GUI that focuses on increasing the productivity by maximizing the screen estate to its limits. Here are some of the changes:
1. Network editor is an overlay over the viewport or the render view, depending on what's visible. It allows working with the network editor while simultaneously seeing the result of the node network, with configurable opacity settings (0.25, 0.5, 0.75, 1). The network editor can be toggled away from and into the viewport using a single key.
2. The whole application is in full screen mode, that eliminates the taskbar and the titlebar of the application.
3. The status bar is at the top inline with the main menu bar.
4. The shelf is completely outside the visible screen space. It can be accessed using the viewport TAB menu instead.
Special thanks to Jason Iversen for his overlay network editor sketch.
However there are some gotchas and modifications you might have to be aware. Qt support in Houdini is pretty much undocumented, and the Python HOM support is very slim. So there was a lot of blind exploration to make the GUI enhancements as procedural as possible.
However due to certain limitations of the exposed Qt interface in Python HOM, certain things are close to impossible to make it work without hard coding some values. This is only if you want the status bar to show up at the top of the GUI. Other than the status bar, everything is pretty much a drag and drop experience.
1. The provided 456.py will execute each time you start Houdini and when you open a new file. It just creates a floating network editor so it's not part of the desktop file.
2. There are hotkey overrides for setting the session to full screen (Ctrl+`), adjusting overlay network editor opacity (Ctrl+F1/2/3/4, for 25, 50, 75, 100% opacity respectively), and toggling the overlay network editor (`). The default is 75%.
3. The color scheme provided (VFX.hcs) is optional but if you want the status bar background color to match the main menu bar background, you have to modify StatusBarMessageBG, accordingly.
4. GUI.shelf contains all the code for these actions. You don't have to modify this file, except the status bar section which is in the first action. The status bar itself can not just be docked to the left of the main menu bar procedurally as there are many variables to consider like the UI scale factor, the margins, the borders, etc.
So you might only need to modify these, if at all:
posx, posy, sizex, sizey
pos variables specify where the status bar should appear, while size variables specify the size of the status bar. If you change the size, you have to make sure the mask region is also padded the same way. For example if you increase the width of the status bar by 10 pixels, then add 10 to the 3rd argument of QRegion here:
statusbar.setMask(QtGui.QRegion(3, 397, 2941, 53))
This is the only manual part of the setup but unfortunately this is a limitation in Houdini.
5. Houdini.keymap.overrides keeps the assigned hotkeys for these actions, but you can change these later on to any key that you want.
6. Houdini 18 is recommended because SESI makes a lot of modifications to Qt interface each version and somehow there was alignment issues even in H17.5, but in H18 everything works fine.