Skip to content
This repository was archived by the owner on Jun 5, 2025. It is now read-only.
This repository was archived by the owner on Jun 5, 2025. It is now read-only.

WSL Page - Feature Exploration! #2266

@craigloewen-msft

Description

@craigloewen-msft

Dev Home Feature Exploration: WSL Page

Please Provide Feedback & Ideas!

Let us know what you think about this feature by commenting on this issue! We'd love to hear your ideas and feedback. We will share out our list in the near future but want to hear from you first so we don't influence what is most useful for you.

Comment below:

  • What do you like about the feature?
  • What do you think is missing / what could improve this feature?

1. Scenario description

1.1. Narrative

Clark is a new developer in college, and is programming for the first time. He needs to use Linux to compile his C++ and was recommended to use WSL. Since he's not too familiar with CLIs yet, he installs WSL through Dev Home and is easily able to see and manage his Linux distros. From there he can launch into them comfortably, and feels in control of his Linux environment on Windows.

1.2. General problem statement

Currently the Windows Subsystem for Linux is a command line focused application. There isn't an easy built-in way for users to discover, interact with, or manage WSL through a graphical interface. This feature would focus on making WSL functionality available through GUI, to increase discovery and usability for a wider range of users.

1.3. Customer evidence

The highest 'Upvoted' issue on the Dev Home repository is asking for more WSL integration.

Please note that this specific request is around integrating WSL with machine config, but we should take this as a strong data point that users would like WSL to be more integrated with Dev Home.

1.4 Existing solutions

  • Raft
  • Command line interface

2. Design

2.1. UI Mockup

image

Mockup of WSL page in Dev Home, PM art (It's kind of like outsider art [That's an art joke])

2.2. User Cans

With this feature a user will be able to...

P0s:

  • Navigate to a dedicated "Windows Subsystem for Linux" tab in Dev Home
    • Needs to be configurable / changeable as default on or off by Dev Home team (Scenario: We chose the wrong default)
    • Needs to have a 'card layout' and a 'grid' layout that's switchable
  • If WSL is not installed, install it
    • Select a specific Linux distro to start with
  • Install new WSL distros
    • Needs feature detection (WSL version detection)
  • Shut down the WSL VM
  • See a list of all installed WSL distros and for each:
    • See state (Running, Off, etc.)
    • Terminate distro
    • Uninstall distro
    • Launch distro
      • As a specific user as well
    • Set as the default WSL distro

P0.5:

  • See a list of all installed WSL distros and for each:
    • Change install location
  • Import WSL distros from VHD or from tar
  • Export WSL distro to VHD or tar

P1s:

  • See total RAM and CPU being used by WSL at that moment
    • Total (Entire VM)
    • Also per distro
  • Mount a Linux formatted disk
    • From a VHD
    • From installed disks
  • See what's new in WSL
    • Open release notes

2.3. Open Questions

  • How do we handle the Docker Desktop distros? We don't necessarily want users launching into those. Should we special case them?
  • If we want to show GUI apps in WSL how do we list them?
  • Are we ok with having a top level tab called "WSL" in Dev Home?
    • Proceeding with: Yes, but make it configurable to turn it off

2.4 Release plan

The first iteration of this feature will only deliver the P0 user can's above. After that experience is shipped we can determine whether we want to keep adding the P0.5 and P1 user can's as well.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Issue-FeatureNew feature or requestNeeds-Community FeedbackWe need additional help with how something should act / lookNeeds-SpecA spec should be written for this feature

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions