I have, like many I think, a prefrence what filetypes should be loaded into an external viewer and what filetypes work great in dOpus.
The viewer pane is to space consuming for me so I only use it when needed. I work 99% of my time in the "Commander" mode.
What I's looking for is the following.
Work in Commander mode.
When I double click on filetype it either loads externally or internal.
If internal:
dOpus the filelister that does not contain the clicked file.
dOpus opens the internal viewer.
Shift double click should invert the internal/external viewer.
Another thing about the viewer I dislike is the size it opens in.
It makes the file lister unreadble narrow. I can understand that if the thing viewed is wide but often it's not. So I would like either a fixed initial viewer width or some smart sizing in of teh viewerpane.
A lot of questions. Some are possibly impossible but even a few of the above would make me
I think you can set the viewer pane's initial size by opening the pane, sizing it to what you want, and then using Settings -> Save as Default Lister. (Same for the tree pane's size, and the fine pane's size.)
For the questions about configuring double-click to do different things for different filetypes you should be able to do all of that via Settings -> File Types.
Having done that, for the file types that you do still want to display with Opus's viewer, edit them via Settings -> File Types and assign the Show (or Play for WAV/MP3) command to their Left Double-click event.
For the things you want to open outside of Opus you can probably simply rely on existing filetype associations. Of course, you can also explicitly define external programs that should be run on the Left Double-click events too.
Finally, your idea about using Shift to toggle internal and external viewers should be easy enough as there are separate events for Left Double-click + Shift, and so on.
There's also a new feature in Opus 9 which allows almost any command to behave differently depending on which keys are held down when it runs, but there's no need to use that in this case as the file type events let you do it more easily.