Skip to content

Feature request: optional Windows notification-area controls #7

Description

@gitWRLD999

Problem

Virtual Driver Control already provides driver status, display configuration, and controls for adding or removing virtual displays. Reaching those controls still requires opening the full app. A small notification-area menu would make common display actions quicker and give users a clear status when the main window is hidden.

When a virtual screen is no longer needed, windows can remain positioned on it. Users also need a straightforward way to return to the main control panel without finding its taskbar window.

Proposal

Add an optional Windows notification-area icon to Virtual Driver Control. The icon should show whether the driver is reachable and whether virtual displays are attached. Its menu should provide:

  • Open Virtual Driver Control
  • Remove virtual displays when one or more VDD displays are attached
  • Restore configured display count when none are attached
  • Exit

Add user preferences for keep running in the notification area when the window closes and launch at sign-in. Both should be explicit settings; preserve the current close and startup behavior by default.

Behavior and safeguards

  • Use the existing PipeClient and SETDISPLAYCOUNT flow for quick display actions. Do not target a fixed PnP instance ID, edit vdd_settings.xml for a temporary toggle, or disable the entire device.
  • Determine attached virtual display count from the existing DisplayService layout, which resolves VDD monitors through PnP parent lookup.
  • When removing displays, remember the prior active count for the current app session. When restoring after a restart or when no saved count exists, use the configured count from vdd_settings.xml, clamped to the driver's supported range.
  • Keep the action disabled when the driver pipe is unavailable or display state cannot be read. Show an error if SETDISPLAYCOUNT fails, and refresh the menu state after every operation.
  • Keep the tray menu usable when the main window is hidden. Clicking the icon or choosing Open should restore and focus the existing window, respecting the existing single-instance behavior.
  • On Windows, make launch-at-sign-in opt-in and use Electron's supported login-item setting. Do not add a service or background process that changes driver state on its own.

Suggested scope

The first change can add the tray icon, status, open action, and safe add/remove action. Window recovery is a useful follow-up: identify VDD screens from DisplayService, then offer to move only windows whose bounds intersect those screens to the nearest remaining display. Keep that Windows-specific native window work separate from tray control so a recovery failure cannot affect driver state.

Acceptance criteria

  • The tray icon reports driver connectivity separately from virtual-display count.
  • The menu can open the existing app and remove or restore VDD screens without changing the configured monitor count or any physical monitor mode.
  • When the driver is unavailable, state-changing actions are disabled and status explains why.
  • Closing to tray and launching at sign-in are opt-in, persisted preferences; defaults preserve current behavior.
  • Exiting from the tray fully stops background activity and the process.
  • The feature works with different VDD instance IDs and physical monitor models; it contains no user-specific paths, hardware IDs, or remote-access product assumptions.
  • Existing dashboard, display editor, audio features, and installer flows continue to work unchanged.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions