Virtual Driver Control development journal · Part 5 of 5
A rebuilt panel with displays, audio and an EDID lab
The React and TypeScript rewrite, followed by more careful driver replies.
The June rewrite brought the Driver Control Panel into an Electron, Vite, React and TypeScript structure. It combined a driver dashboard with display configuration, audio controls, diagnostics and an EDID lab, giving the project a much clearer application shape.
The implementation includes a desktop arrangement map, typed XML settings, backups and a preview of configuration changes. The EDID tools decode monitor information and export the files used by the driver's profile path. Those are useful ways to understand a setup before changing it.
Audio also has a broader place in the panel: endpoint volume and mute, default-device selection and a routing matrix. The routing engine is part of the running app, so those routes have a different lifecycle from the installed virtual audio driver. Keeping that distinction visible helps explain why a route depends on the panel remaining open.
The August 31 follow-up addressed the connection to the display driver. Explicit ERROR replies now became failed operations, display count was bounded to the driver's limit, and the client recognized the normal restart path available with the corrected driver. It also retained compatibility with older PING behavior.
There's a source difference to preserve here: GitLab's default branch matched the June rewrite, while the local checkout and GitLab's named-pipe fix branch included the later August change. Those references identify the implementation being discussed; a newly validated Windows release would need its own package and test evidence.
The useful next step is testing the matching driver and panel together: installation trust, configuration recovery, display changes and real audio delivery. The rewrite gives those workflows a more coherent home, and the reply handling makes failures easier to report honestly.
Virtual Driver Control development journal
View the journalLive5 entries so far·Updated New (5 entries updated in the last 14 days)