Initial scaffolding for winapps-monitor #781
Open
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR introduces the initial scaffolding for
winapps-monitor
, a lightweight session management application designed to run on Windows.As discussed privately with @oskardotglobal, the broader goal of
winapps-monitor
is to establish a more reliable and maintainable foundation for WinApps by taking explicit control of session control and application lifecycle management within Windows. At present, handling of the RDP session lifecycle relies on inconsistent and opaque heuristics within Windows, often leading to FreeRDP sessions that persist indefinitely. In addition, launching new applications currently requires initiating a new RDP session, causing all windows to briefly disappear as they reattach to the new process. By introducing a dedicated background process that handles application launch requests and tracks all open applications, we can explicitly terminate inactive sessions and launch additional applications over a single persistent RDP connection. This approach also shifts core project logic to the Windows side, potentially simplifying the Linux code base and eliminating the need for daemons.winapps-monitor
may also serve as a foundation for future functionality that might necessitate a native Windows agent.Functionality at present is minimal. The application creates a system tray icon and indefinitely enumerates open windows via Win32 API hooks.
Future plans include:
launch <path> <args>
)As I am still very new to Rust, this code has been authored with significant LLM assistance, so feedback on code style, safety and architecture would be greatly appreciated.
This PR depends on #308