OpenKneeboard / OpenKneeboard

An open source Kneeboard
https://openkneeboard.com/
Other
246 stars 22 forks source link

Add Key Bind to Clear Notes and Reload #274

Open dancormack opened 1 year ago

dancormack commented 1 year ago

I would like to see the addition of key binds for Clear Notes and Reload the current tab. This will allow people to bind these functions to buttons and Voice Attack profiles.

Reason: Some pages get pretty full of chatter from the game (DCS radio log fills up with chatter directed at other aircraft as well as my own). Being able to clear this periodically would simplify things significantly.

marksdoran commented 1 year ago

I'd like to +1 this request. Mostly. What I am looking for is a key binding (Ideally a DX button native, by the way, rather than a keystroke for easiest mapping to racing equivalent "HOTAS" input devices) for Reload Current Tab.

Reload current tab is something that I have to do a LOT at the moment.

Use case: I'm using OpenKneeboard with iRacing launched through OpenXR/WMR (HP G2 Reverb VR headset). I have an overlay app for use while racing and that can inject overlays direct to OpenVR pipeline but not to OpenXR yet. OpenKneeboard plugs that gap for me by doing a window capture onto a tab. The overlay app is RaceLabApps in case that matters.

Problem: The reason I end up doing a lot of reloads is that the window capture breaks as the race progresses. Specifically the window image captured is perfect initially but at at some point during the game run, perhaps associated with end of the intra-race practice/qualifying/race sessions, the captured image seems to increase in size enough to have the right edge of the content occluded by the kneeboard window edge/frame. Reload does fix this but it's long and drawn out to remove the headset, go find the OpenKneeboard window, and then do the two (!) mouse clicks required to command the reload (aside: this could really be a single click, the confirmation click is kind of redundant from the workflow point of view).

Since I'm not clear where the misalignment of the graphics is coming from, I'm not totally sure that this clipping behavior is a bug in OpenKneeboard or not. I would agree with the proposition that if the captured image stayed correct the whole time then asking for an input binding for reload wouldn't be needed ;) If it helps to file a separate issue for this I can do that. I didn't right away because I realize that my use case is pretty far off what most people are using this app for and it may not be easy to either replicate or test what I observe. Happy to help do either or both of those if this underlying issue gets on the radar to fix at some point.

fredemmott commented 1 year ago

aside: this could really be a single click, the confirmation click is kind of redundant from the workflow point of view)

Reloading erases any notes/drawings made with a tablet; in other games (especially DCS or Falcon BMS), this can completely mess up the gameplay requiring restarting a multi-hour game session with no saves, e.g. if the notes are your weapon targeting coordinates and laser designator code.

marksdoran commented 1 year ago

OK, having -- ahem -- more than a few hours logged as part of BMS, I understand that point.

Maybe the present implementation of reload could (should??) be split into separate operations. If the content entered by hand on a tablet is super valuable, then would it not be better to have an undo button for that rather than an "are you sure" type pop-up to protect it?? Seems like reload of content captured from an external app/window is not the same kind of operation as erasing one's hand-entered notes so one might reasonably expect those to be separate.

But this is all a bit of a tangent...because of the wandering image alignment problem, I still want to ask for the button/key binding because one can no more pause a multiplayer car race than pause a multiplayer ground attack sortie in order to redraw a knee board page. It's worse in race cars because you don't even have an autopilot to stop you crashing while you mouse around in a different window to do the reload ;) Under a VR headset some means to stab a HOTAS control or ask a voice recognition agent app to do the reload is really the only practical option I can imagine (but I'm open to better suggestions :)).

Regardless, thanks for reading the comment! :)

magnazan commented 1 year ago

+1 for this from a Sim racing aspect. Often when switching race sessions the overlay window changes size which means that the tab needs to be reloaded manually. Would be great to be able to do this via a bind.

fredemmott commented 1 year ago

Surprisingly enough, there doesn’t appear to be an issue for actually fixing the resize issue - I’ve opened #336, and would appreciate any information on quickly and reliably reproducing the problem, especially if possible outside of iRacing.

fredemmott commented 7 months ago

VoiceAttack

Thanks to @marksdoran in #333 , this has been possible since v1.5: tell VoiceAttack to run C:\Program Files\OpenKneeboard\utilities\OpenKneeboard-RemoteControl-RELOAD_CURRENT_TAB.exe

I'll add that to the docs :)

fredemmott commented 7 months ago

Further progress blcoked as an in-game UI will either be more clicks, or requires in-game keyboard input blocking the games, which is not currently supported.