Skip to content

Clarify and Improve Host Picking Behaviors for Device Selection #689

@TwitchBronBron

Description

@TwitchBronBron

Summary

Improve and clarify the behaviors of host/device selection in the extension. The goal is to make selecting, switching, and using devices as clear and intuitive as possible, including what happens in various host-picking scenarios.


Desired Behaviors

1. ${promptForHost}

  • If no active device is set:
    → Show a picker so the user can choose a device.

  • If an active device is set (and available):
    → Hide the device picker.
    → Do not change/set the active device when picking from the list.
    → If the user wants to see the picker, they must clear the active device first (either via UI or command).

  • Setting an active device:
    → The only ways to set an active device are to click the star in the picker or select "Make active" from the devices panel.


How to handle keyboard mode

  • When mark a device as active, activeKeyboardDevice follows that set
  • When sideloading to any device, activeKeyboardDevice follows that (and doesn't fall back to activeDevice at end)
  • keyboardMode needs to switch from using activeDevice to instead use activeKeyboardDevice

Open Questions / User Experience Improvements

  • How can users tell when an active device is set, or clear it if needed?
    • Show the active device name/IP in the status bar.
    • Add extra info (icon, label) for the active device in the device picker.
    • (Optional) On launch, show a quick popup saying “Using active device: [name/ip]” for ~2 seconds.

Goals

  • Avoid confusion over “which device am I using?”
  • Make it easy and obvious to clear or set a new active device.
  • Ensure users always understand what’s happening when launching/debugging or switching devices.

Let’s use this as a guide to make device/host selection as user-friendly, explicit, and reliable as possible.

Metadata

Metadata

Assignees

No one assigned

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions