elvissteinjr / DesktopPlus

Advanced desktop access for OpenVR
GNU General Public License v3.0
467 stars 29 forks source link

Feature request: Use controller Grip button to drag windows. #56

Open Identifier opened 1 year ago

Identifier commented 1 year ago

Having to press the floating UI move button to toggle move mode on and off has confused me more times than I'd like to admit. I can't count how many times I've forgotten to toggle it off, and then accidentally moved my windows instead of interacting with them, or visa versa. For those of us with a normal VR controller that has the 'Grip' button, can we just use that to drag windows around like Virtual Desktop and most other apps do? I don't see the grip button being used for anything else at the moment.

elvissteinjr commented 1 year ago

The grip is unbound on most controllers as it's not available as an input by default when using the SteamVR laser pointer. There are some auxiliary buttons available ("Go Home" & "Go Back"), which can be bound to actions right now, but they're usually bound to A/B buttons by default (though on Vive controllers one of them is bound to grip actually). This mapping can be changed by the user, but affects everything using the built-in laser pointer.

On the NewUI branch with the custom laser pointer implementation it would be less of an issue, but it still wouldn't work within the dashboard or if anything else triggers the SteamVR pointer to be active. It can definitely be added there, but I'd be hesitant about binding it by default as the behavior can't be made consistent between both laser pointers (and I suppose accidental gripping is also bound to happen).

The intention behind toggling dragging was that users wouldn't constantly be changing the overlay arrangement once they're happy with it (and to leave the aux buttons free). That being said I'll consider adding this as an option in some way.

Identifier commented 1 year ago

Thanks for the reply! I didn't realize laser pointers in SteamVR were so complicated. Your tool hides it so well, it all seems so seamless!

I've only been using Desktop+ for about two weeks. The first week with the normal UI, and the second week with the NewUI. The NewUI definitely makes adding overlays easier, and profiles easier to understand. The only thing that kept tripping me up was toggling drag mode on or off. More times than not I'd accidentally have drag mode on when I didn't want it, or drag mode off when I thought it was on. Also the fact that drag mode on/off is a global toggle (i.e. ALL overlays enter drag mode mode when you click a single overlay's floating-ui's drag-mode button) took me a while to grasp.

After spending several hours in Desktop+ (NewUI branch) getting my Elite Dangerous cockpit just right, with all of the overlays perfectly overlaid on top of my cockpit's panels, I changed the way I reposition windows. I don't use the floating-ui's drag mode toggle button anymore. Whenever I add a new overlay, I immediately "lock" it, so all of my overlays are always locked. Now, I only move an overlay by going into its Properties and clicking the adjust button, which lets you drag it (even though it's "locked"), as well as having the manual up/down/left/right/rotate buttons.

So by following this approach, I don't actually need this feature request anymore, since now I never drag an overlay without opening its Properties first anyway.

Identifier commented 1 year ago

Oh by the way for anyone coming here from Elite Dangerous. Make sure to always set your new overlays to 'Seated' reference position rather than the default 'Play Area' reference position! That way they'll always stick to your cockpit exactly where you put them instead of all becoming misaligned when Elite recenters itself.