Add a tray menu item to disconnect all sessions #910
Kane-Kuroneko
started this conversation in
Polls
Replies: 1 comment 1 reply
|
You can currently do this in the web ui. That is the safest place for it since you have to have the admin credentials to perform the action. Having it in the tray menu would mean a client (possibly not the owner) would be able to execute the command. |
1 reply
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Motivation / Rationale
Sunshine currently lacks a server-side mechanism for actively terminating existing sessions. In practice, this creates several structural limitations:
No recovery path for abnormal or orphaned sessions
When a client disconnects abnormally (network loss, client crash, sleep/hibernate), the session may remain marked as active. In this state, the host has no direct way to clear sessions except restarting the Sunshine service, which is a coarse-grained and disruptive workaround.
Restarting the service is not equivalent to session management
Restarting Sunshine resets more than just session state (e.g. encoder state, stream initialization, possible brief downtime). Using service restart as a proxy for “disconnect all sessions” conflates two different responsibilities and increases operational cost for a simple control action.
Host-side authority is incomplete without active disconnect capability
In remote streaming or remote desktop–like systems, it is generally expected that the host has ultimate authority over session lifecycle. Without an explicit “disconnect all sessions” action, the host cannot reliably regain control when clients misbehave or become unreachable.
Tray menu is the most appropriate control surface
The tray menu already exposes host-level management actions (start/stop/restart). Adding a “Disconnect all sessions” item aligns with existing UX patterns and provides an immediate, low-friction recovery tool without introducing new configuration surfaces.
Improves robustness without changing default behavior
This feature does not alter connection logic or session limits. It only provides an explicit administrative action, invoked manually, and therefore does not affect normal users unless needed.
In summary, a tray menu item to disconnect all active sessions fills a functional gap between client-controlled disconnection and full service restart, improving robustness, debuggability, and host-side control with minimal surface area.
1 vote ·
All reactions