osxmidi / LinVst

Linux Windows vst wrapper/bridge
GNU General Public License v3.0
674 stars 41 forks source link

Keyboard-Focus info (reaperid & mapped2) & ideas #171

Closed actondev closed 3 years ago

actondev commented 3 years ago

Hey there. First of all thank you so much for your work in this. It has finally unblocked my workflow in Linux! I was considering for a while running the whole Reaper under wine (which was complicating some things) but with linvst reaper on linux rocks™!

My only issue has been the keyboard focus. Following your notes here I somehow get a behavior of the plugin NOT stealing focus (so I can press space to pause/resume playback) and sometimes also enable the keyboard input (if I need to type into the plugin). I think that I can give the plugin keyboard input when

At least that's what has happened sometimes with Native Instruments FM8.

Is this indeed the behavior of the fix described here or just something unexpected/random? Or, generally, what's the idea of that fix/how does it work?

Edit: About the "ideas" in the title. Depending on your response about the reaperid&mapped2 fix, but I was thinking that one could configure dynamically if they want keyboard focus or not, by storing a config value (with reaper's api SetProjExtState) and reading it in linvst with GetProjExtState

osxmidi commented 3 years ago

Hey there. First of all thank you so much for your work in this. It has finally unblocked my workflow in Linux! I was considering for a while running the whole Reaper under wine (which was complicating some things) but with linvst reaper on linux rocks™!

My only issue has been the keyboard focus. Following your notes here I somehow get a behavior of the plugin NOT stealing focus (so I can press space to pause/resume playback) and sometimes also enable the keyboard input (if I need to type into the plugin). I think that I can give the plugin keyboard input when

* first just opening the fx window in reaper

* double clicking the certain vst (to make it popup in its own floating window)

* close the floating window (ie vst again embedded in the normal fx list window)

* ..now the plugin has keyboard focus (and I can type)

At least that's what has happened sometimes with Native Instruments FM8.

Is this indeed the behavior of the fix described here or just something unexpected/random? Or, generally, what's the idea of that fix/how does it work?

Edit: About the "ideas" in the title. Depending on your response about the reaperid&mapped2 fix, but I was thinking that one could configure dynamically if they want keyboard focus or not, by storing a config value (with reaper's api SetProjExtState) and reading it in linvst with GetProjExtState

Hi,

Some want keyboard input and some don't.

The focus does interfere with Reaper's spacebar because it takes the focus away from Reaper and puts the focus on the Wine window to enable keyboard input.

The things you are doing with the floating window maybe changes some things, I don't actually know but I'll try it out.

I can have a windows reg entry for the focus, but the default focus would probably need to be for keyboard input because there is not just Reaper to consider but also other daws Bitwig etc.

If I can find a better way to do the focus then I'll do it.

I'll look into it.

osxmidi commented 3 years ago

Whoops, I accidentally deleted your comment, sorry about that.

Anyway this was the reply to it.

Yes, I base most things on Reaper first and then the other Daws, if things work with Reaper then they are likely to work with the other Daws.

The only issue I have with the windows reg is that it might slow the startup down, so I'll look into your Reaper suggestion.

https://github.com/osxmidi/LinVst/blob/master/Keyboard-Focus/README.md is to enable the plugin window focus for Reaper only and not the other Daws, but the default is for all Daws.

I think it was for some user of another Daw a while ago, maybe for an Ardour user, it doesn't seem very useful now.

Defining NOFOCUS in the Makefiles (see the notes in the Makefiles) removes the plugin focus.