elvissteinjr / DesktopPlus

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

Usable without VR controllers? #60

Open Crazor opened 1 year ago

Crazor commented 1 year ago

Can I use this tool without owning any VR motion controllers? I mainly play Elite Dangerous with a HOSAS setup, and other than that, I only have a keyboard and a mouse available.

elvissteinjr commented 1 year ago

Functionality may be limited in ways or at least a bit awkward, but yes.

Desktop mode can be accessed by clicking the application's tray icon and would be recommended for the basic setup. Keyboard hotkeys can be set up to trigger actions and some things like overlay opacity can be set to be controlled by gaze.

Gamepad support is only available through SteamVR's own facilities. This requires SteamVR's gamepad extension to not be disabled and provides a gaze-directed pointer with gamepad button input only. Not sure how well this works with HOTAS to be honest (I think DirectInput was supported there, but haven't checked), but if your setup allows to access the dashboard with them, then this extends to Desktop+ basically. With SteamVR's gamepad support other controller shortcuts can be bound to it as if it's a VR controller.

And of course if your VR headset has a side system-button (Vive, Index and maybe others), that can be used as well.

I wouldn't say non-VR inputs are a first-class citizen if I'm honest, but depending on your needs you can still get somewhere.

Crazor commented 12 months ago

Thanks for pointing out the tray icon. I was missing that, and saw no other way of getting started using Desktop+. Got a basic setup working now that does what my previous OVRDrop based setup did (show browser window on hotkey). The only thing I'm missing so far is focus switching: I set up the overlay to do Graphics Capture, and so the cursor is hidden until I click on the browser window. This is rather annoying, as I have to blindly fish around and click things, which can take time on a dual 4k screen setup ;)

elvissteinjr commented 11 months ago

The "Global HMD Pointer" setting in combination with "Focus Window when Pointing at Overlay" (default on) could help here. The former isn't exposed on the NewUI branch yet if you're using that (probably still works if manually enabled in config file though).

With that being said, focus switching (with cursor jumping for more usefulness) sounds like a neat addition to the action commands in the NewUI branch. I'll write that down.

T0mScott commented 10 months ago

Hi elvissteinjr,

I have the same issue like Crazor to show the valuable tool "EDCoPilot" while running the Elite Dangerous game in VR. Also like Crazor I dont have any Controllers announced for my HP Reverb G2 VR unit. After hours I could get managed to show the "EDCoPilot" application in the game but in order to control it I miss a possibility to change the focus to it. Currently I am using the key combination ALT-TAB to change the focus and luckily the "EDCoPilot" is given back the focus to Elite Dangerous on each request. But is there another possibility to change it directly, maybe by a special key or something else?

You have mentioned a so called ""Application tray icon" in your first answer here. What does it mean?

Furthermore I have recognized that the dashboard is completely missing. Meaning I dont see any Symbols in VR. No virtual keyboard.... nothing. Also I dont see a laserpointer, Maybe the reason is that I dont have anounced my controllers as I dont need them. This shall be explicable therefore. Can you acknowledge this?

Last point: Does it possible to load the last saved profile automatically? When I restart my PC next day and I start the Game I need to assign EDCoPilot to Desktop+ each time. Loading the last saved profile manually let show a block box in VR where the EDCoPilot shall appear. So I need to select EDCoPilot again. This is very uncomfortable. But on the other hand it maybe depends on the start sequence? What is the right start sequence? Elite Dangerous Game ->EDcoPilot -> Desktop+ -> load last profile ??

Thank you Tom

elvissteinjr commented 10 months ago

But is there another possibility to change it directly, maybe by a special key or something else?

Right now there's only the focus from laser pointer option mentioned before, in combination with the HMD pointer to make it controlled by gaze. As a practical workaround for the time being (I don't think I'll get around this near-term to be honest, sorry) if this doesn't work for you, I'd think something like AutoHotkey should have the scripting capabilities to change window focus and move the mouse there as required. Since you can execute applications with arguments from actions it'd be possible to bind those scripts to VR inputs as well, though it doesn't sound like it's necessary in this case.

You have mentioned a so called ""Application tray icon" in your first answer here. What does it mean?

I was referring to the icon in the Windows notification area/tray on the taskbar. Though desktop mode can also be accessed via command-line argument "-DesktopMode" or by going into Desktop+ setting in the dashboard and restarting it in desktop mode (if you can access it that way).

Furthermore I have recognized that the dashboard is completely missing.

As in, the whole SteamVR dashboard is gone? I've read this happening with the new dashboard (SteamVR 2.0) being introduced to the stable branch of SteamVR, but I haven't experienced it on my machine. Desktop+ itself doesn't really mess with it, so you may have to bring that up with Valve instead.

If we're just talking the Desktop+ dashboard tab icon... it should be always available as long as the main executable of the app is running and not being able to create it during startup is treated as fatal error so the rest wouldn't be running as long as SteamVR doesn't pretend everything is fine.

Does it possible to load the last saved profile automatically?

The last profile/overlay config is retained when the application is closed, however, the stable branch of Desktop+ doesn't track active windows so if the window doesn't already exist at the time of loading it won't pick it up.

The NewUI branch builds (latest one available here (or via beta branch on Steam)) have active window tracking and will automatically restore window overlays if newly appearing windows are detected to match the previously used one for the overlay. It also has support for application profiles, so you can so set an overlay profile to load and unload automatically while a specific VR game is running.

While do I like to parrot how much better the NewUI branch is, it's not ready to replace stable since it's still missing some missing features from there, yet does a lot more things too, so it's in a weird spot right now.