I am working on a open-source Windows app that maps analog keyboards via the Wooting Analog SDK to a virtual gamepad (ViGEm), with a WinUI 3 UI and optimized Rust core for profiles, sub-profiles, curves, hotkeys, and testing.
I am working on a open-source Windows app that maps analog keyboards via the Wooting Analog SDK to a virtual gamepad (ViGEm), with a WinUI 3 UI and optimized Rust core for profiles, sub-profiles, curves, hotkeys, and testing.
Experimented with mermaid diagrams in the readme file. The result looks great.
It is located in the Component Overview in the Architecture Details dropdown menu.
Commit 086480b
https://github.com/Ritonton/UniversalAnalogInput
Log in to leave a comment
Merge of UniversalAnalogInput release repo time with universa-analog-input private repo time.
I didn’t know how to do this, so I’m only doing it now, but you can select multiple Wakatime projects in a single Flavortown project. I needed this because I couldn’t record the time I spent on my release repository.
Log in to leave a comment
I am spending some time on the Rust core of my application in order to implement a way for users who do not have an analogue keyboard to test the analogue capabilities of the UAI. All they will need to do is press a key on the keyboard while scrolling with the mouse. The application will need to be launched in a special mode. This will enable shipwrights to easily test my application for future ship.
WIP
mouse icon by flaticon
Log in to leave a comment
I finaly fixed the critical tray instance check failure (0x80070005 - Access Denied) that appeared on my Sentry dashboard in a previous devlog. The issue was caused by using “Global\” namespace for Windows mutexes, which requires admin privileges on Windows 10/11. Fixed by switching to “Local\” namespace in both Rust tray and C# UI and it now works perfectly with normal user permissions.
As always, three simple constants to change for hours of debugging and a significant problem fixed.
I will incorporate this fix into the next version 1.0.2 of my application, along with other bug fixes. For now, it will still be present in release version 1.0.1. You simply will not be able to open the application twice in two different user sessions on Windows for now.
Commit 2b16a61
https://github.com/Ritonton/UniversalAnalogInput
Log in to leave a comment
Here it is!
I’m not a graphic designer, but I did my best. It doesn’t look very good in this post, but take a look at it in the readme file :
https://github.com/Ritonton/UniversalAnalogInput
Log in to leave a comment
Debugging critical tray instance check failure (0x80070005 - Access Denied) that appeared on my sentry dashboard.
Exploring the Global namespace mutex permissions seems to be the culprit since CreateMutexW fails with global scope.
Haven’t found the fix yet, but narrowed it down to Windows API security context !
In the meantime, I am working on a nice animation in Rive with Figma models I made for my readme file to better show the purpose of my application in games.
WIP :)
Log in to leave a comment
I’ve improved the README’s readability by grouping technical details into collapsible sections.
I also added a “Video Demo’ section right after the overview to show the application in action.
Log in to leave a comment
v1.0.1 - Sentry integration
I’ve added Sentry for automatic crash reporting to help catch bugs faster.
Reports are on by default but you can easily disable them in the .env file if you prefer.
I’ve also added proper legal docs: Privacy Policy, Terms of Service, and a Data Processing Agreement.
Everything’s in the installer and on GitHub. GDPR compliant.
Commit 2ab7600
https://github.com/Ritonton/UniversalAnalogInput
Log in to leave a comment
I added my Inno Setup installer build and preparation scripts to release repo.
Commit 5aec508
https://github.com/Ritonton/UniversalAnalogInput
Log in to leave a comment
I recently bought a Nuphy Air75 HE (recent in my mind at least, as the months spent developing UAI went by faster than expected) and quickly realized that, unlike Wooting keyboards, there is no way in Nuphy’s software to expose analog input as a gamepad. After digging into it, I found that Nuphy is far from being the only analog keyboard brand missing this feature.
That’s what pushed me to start Universal Analog Input (UAI): a universal Windows application aimed at the analog keyboard community.
This first public release (v1) allows users to map true analog values from any keyboard supported by the Wooting Analog SDK (including compatible plugins like AnalogSense’s Universal Analog Plugin) to a virtual Xbox controller using the ViGEm Bus driver, enabling smooth and precise in-game analog input.
While this sentence sums up the core idea, the application already goes much further, with features such as profile management, hotkeys, and customizable mapping curves…
Over the past months, I learned a lot about native Windows development: building a WinUI 3 interface, integrating a Rust core running in the system tray, and making them communicate reliably via named pipes and named events. I also went through the full release process, including creating an Inno Setup installer capable of installing required dependencies (Wooting Analog SDK, ViGEm Bus driver) and uninstalling everything cleanly.
This is just the beginning, but I’m happy to finally ship something usable after months of work.
I finished the v1 of my app
Log in to leave a comment