Obs Keyboard Input Overlay

0 views
Skip to first unread message

Carlito Roby

unread,
Aug 5, 2024, 6:28:51 AM8/5/24
to peicrowunto
Standalonesetups will visualize player input which can be helpful to users trying to debug and troubleshoot, as well as be piped into other workflows to be captured for streaming, recording, or sharing across viewport apps like discord.

NohBoard from TheNohT is a standalone application that is very customizable and relatively easy to integrate, use, and customize. The program is built utilizing MS Windows drivers and is backwards compatitble to Windows 8. Porting Nohboard to linux or Mac OS may be possible. Get NohBoard from TheNohT NohBoard Github : same as


Gamepad Viewer is the best option for capturing HOTAS, HOSAS, Xbox Controller, Playstation Controller, etc. It is a dependent setup; an appropriate web browser and internet connection is required for this setup to work. Setup can be quite lengthy but the results are excellent when meticulously and diligently applying the configuration.


A solution to this communication problem is to use a contextual input overlay, just like the overlays produced by Gamepad Viewer. Cmdr Toscany is working on a NohBoard keyboard overlay that obfuscates the actual button presses to accomplish the visualization of the intended inputs. For example, can you guess all the inputs visualized in this sample?




Forward/retro longitudinals, left/right laterals, up/down verticals, and mouse yaw/pitch are indicated in the main center icons. Up/down pitch and left/right yaw in the top right circle.

Not yet represented; fwd/rev throttle, boost, cargo scoop, landing gear, and clockwise/counter-clockwise roll.


I have my own UI engine with its own keyboard handling, and am using it to display a game overlay. The game overlay itself is transparent to both keyboard and window events, in order to be minimally obtrusive towards the game, but in order for the overlay itself to be interactive I needed to resort to keyboard and mouse hooks to block some of the events from reaching the game. For mouse input, this is pretty trivial and works perfectly. It's the low level keyboard hook where I ran into issues.


At this point, I have something that's usable in most cases. I managed to work around several issues involving dead keys and bad input, but never managed to create a hook that could actively block keyboard input to the game - something always goes wrong.


My current issue is that, if I block the keyboard inputs by returning a nonzero value in the hook process, the UI engine of the overlay stops perceiving the Ctrl key's state, which results in not being able to copy/paste into the overlay's textboxes. Interestingly, before Alt-Tab'ing, everything works fine, but after that, the Ctrl keypress the hook grabs turns from VK_CONTROL to VK_LCONTROL. And even more interestingly, neither GetKeyState(VK_CONTROL) nor GetAsyncKeyState(VK_CONTROL) nor GetAsyncKeyState(VK_LCONTROL) on the UI side register the Ctrl key as pressed.


The UI engine itself checks the Ctrl, Shift and Alt states through GetKeyState() because tracking these through WM_SYSKEYDOWN messages would, for example, result in an Alt-Tab having the Alt key stuck since the window would never receive the WM_SYSKEYUP message. The function that checks the state of the Ctrl/Shift/Alt keys is called on several different WM_... messages when necessary. However, as soon as the VK_LCONTROL messages start being intercepted by the keyboard hook instead of the VK_CONTROL ones, this function always reports all keys as being unpressed.


You could try a different approach. If your overlay is the active window during this, then you can handle keyboard and mouse events without the hook, and if you want to forward an event to the game, you can just synthetize the event for the game window.


I've purchased iPhone X but I've noticed that while I type, the keyboard overlays the chat section text input making it difficult to see what I'm typing. This is in all I applications I use such as Whatsapp, Skype, Messenger, ...,etc. I've updated all these apps thinking this may solve the issue but with no luck. What am I missing here? The phone is already expensive and having this little annoying problem, I feel I made a mistake purchasing it. Please suggest a solution.


Press and quickly release the Volume Up button. Press and quickly release the Volume Down button. Then, press and hold the Side button until you see the Apple logo, then release the side button and wait for your iPX to restart.


In the Keyboard system preferences panel, select the Shortcuts tab then the Input Sources entry on the left. Enable the "Select the previous input source" checkbox and assign it to the keyboard shortcut you wish.


I'm guessing that the 2nd shortcut was added later by another developer. Besides the lack of this secret switcher feature, notice the wording of the shortcut description. If the same person did both, they probably would have called it "Select the next input source".


during testing our new release of extension we discovered some problems:

The Extension has a text-input field. If the extension is setup as overlay and you click in the textfield, the curser jumps in the textfield and blinks, but you cant type in any text. If you press on letters, nothing happens and if you press space the live stream goes into pause.

So it seems that the stream player will grab the keyboard input?

The problem only happens in Firefox browser and IE. It doesnt happen in Chrome.


Some experiments shows: If I click outside the stream player and thereafter directly into the textbox, than it works. But if I do a click somewhere in the straming player and thereafter click into the textbox, I have the problem again (focus goes into the textbox and cursor is blinkng, but keyboard inputs will be still parsed to the player instead into the textbox)


The Keyboard overlay doesn't come up any more after the v33 OS update. Is this something the needs fixing in a system update or are there some new settings/manifest entries that are needed from this version?


But there is something wrong with it. We just noticed problem which you described in the thread "Issues with the Keyboard overlay" that using bottom-right close keyboard key isn't handled by Unity. And if I click Oculus button twice when Keyboard is open then first click closes Keyboard and second click switches to Quest home screen - which is rather not expected behaviour. To back to the game I need to open apps list and click on the app icon.


I can open and use the keyboard just fine (either by calling TouchScreenKeyboard.Open or through input fields), closing it is the issue.



If I close the keyboard by submiting the input, things work just fine.

Now if I close it by clicking outside the keyboard area or through Y button Unity does not trigger OnApplicationFocus(true) causing the same behaviour as jaceks described.




Having the same problem where clicking outside the keyboard does not return focus to our Unity app and

TouchscreenKeyboard.Status remains "Visible" forever when this happens.



Seems to be related bugs logged in the Unity Issue Tracker but they are marked "Fixed".



Was looking forward to the keyboard's dictation feature but this makes the keyboard completely unusable.


On my ported project the overlay keyboard will not come up when I click on an InputField. I have another Quest project that I use for testing and there it works fine. I also ran the UGUI sample scene in the ported project and there I have the same problem. Everything else works (button, slider, toggle, scrollview, dropdown), only the inputfield does not work.


I can see that there is a difference in the VIU version. The project that works has VIU 1.12.2.0, the project where it does not work has VIU 1.13.4.0, so a more recent version. I tried updating to the lastest version (1.14.1) but that also did not solve the problem.


In the Android LogCat window I do see the debug message saying "SteamVR plugin not found, install it to enable overlay keyboard", but I get that in both projects, so it is not causing the problem (and it's actually an incorrect message, as SteamVR plugin is not really required).


So I hope you can help, maybe something was updated between version 1.12.2 and 1.13 that broke the overlay keyboard? Or it is something in my project and you can point me in the right direction ? @chengnay


And I realised this morning that I did not check one component, the Oculus Integration package. And that was the cause. I finally found a post to check the Oculus Integration package version ( -VR-Development/Unity-Oculus-Integration-version-number/td-p/864283) and with that I found the difference.


To complete my troubleshooting I upgraded (a copy of) the test project to the latest Oculus Integration (35) and the latest VIU (1.14.1). And there the problem appeared again. The InputField in both the UGUI scene and in my own scene do not trigger the overlay keybaord. The rest of the UGUI scene works fine.


Ok, so here's the deal, I've been going back and forth between SSE and Old, keep having CTDs with SSE and can't bring myself to get rid of half my mods just to troubleshoot, so I went back to Old for a bit. Everything was great, and then randomly, no keyboard input. Well I disabled the steam overlay and it was fixed. So I played around some, missed all the pretty shinies of the SSE, went back to SSE and kept getting some random inn related CTDs (no inn altering mods, uninstalled followers set to spawn there, still no dice) and went back to Old.


So yeah. Shift+enter pulls up the ENB settings window... mouse always works without issue. Can't use the keyboard to move character in game or move sliders during character creation. Running out of ideas to try here. No controller connected (disabled in INI anyways) and works in SSE. If I had no CTD issues in SE then I'd just go back and stay there, but it's grinding my nerves and I just want to play. Oldrim is choppy and ugly but I can at least play, well at least if I could get the KB to work.


As it is not a touch screen I would like to use the six physical buttons on the hat to control my venus in a similar way to the CCGX. these are wired to GPIO pins on the pi hat. can anyone tell me how the CCGX buttons are wired to it's processor?

3a8082e126
Reply all
Reply to author
Forward
0 new messages