Install Ubuntu on WSL2 on Windows 11 with GUI support

Key Value
Summary Run Graphical Applications with Ubuntu on WSL2 for Windows 11
Categories wsl2
Difficulty 1
Author jean-baptiste.lallement@canonical.com

Overview

Duration: 1:00

Windows Subsystem for Linux (WSL) allows you to install a complete Ubuntu terminal environment in minutes on your Windows machine, allowing you to develop cross-platform applications without leaving windows.

What you will learn:

  • How to enable and install WSL on Windows 11
  • How to install and run a simple graphical application that uses WSLg
  • How to install and run a much more advanced application that uses WSLg

Note: For Windows 10 users please refer to our alternative tutorial here.

What you will need:

  • A Windows 11 physical or virtual machine with all the updates installed

Note: This tutorial doesn’t cover GPU acceleration which is covered in a tutorial of its own.

Install WSL

Duration: 3:00

We saw in the tutorial Install Ubuntu WSL on Windows 10 that WSL can be installed from the command line. In Windows 11, it is also available directly from the Microsoft store as an application. Installation from the store will install the latest version of WSL with all the latest features.

Prerequisites

Make sure the following prerequisites are met before installing:

  • You are running Windows 11 (build 22000 or higher)
  • Virtual Machine Platform optional feature is enabled

To check the build number, open the Windows menu by pressing the Windows key, then type about in the search field, as shown in the following screenshot:

And select the line About your PC to launch the System / About page.

The OS build number must be higher than 22000. If it is not, then WSL cannot be installed by following this tutorial. Follow the instructions here instead.

The second prerequisite to verify is the Virtual Platform feature.

Search for Windows features.

Open the control panel and scroll down to Virtual Machine Platform.

After installation of the Virtual Machine Platform component, you must restart Windows 11 before proceeding with the installation of WSL components and an Ubuntu application.

Installation of WSL from the Microsoft Store

Duration: 3:00

WSL components are now available as a preview version directly from the Microsoft Store like other Windows applications.

To install the WSL application from the Microsoft Store, open it and search for Windows subsystem.

Click on the item Windows Subsystem for Linux Preview to open the corresponding application page.

Click on Get to download and install the application.

Upon installation, you can click on Open, but it will not do much since there is no Linux distribution installed.

However, if you really want to open the WSL application without installing a distribution, you’ll see a nice and short help message that you must follow in order to make something useful with WSL:

You can now proceed with the installation of Ubuntu.

Download Ubuntu

Duration: 4:00

WSL supports a variety of Linux distributions including the latest Ubuntu release, Ubuntu 20.04 LTS, and Ubuntu 18.04 LTS. You can find them by opening the Microsoft Store app and searching for Ubuntu.

Choose the distribution you prefer and then select Get.

Which version should I choose?
There are three types of Ubuntu releases published to the Microsoft Store:

  • Ubuntu with a version number e.g. Ubuntu 20.04. This will always be 20.04 and upgrades won’t be proposed once 22.04 is released.
  • Ubuntu without a version number. This is the latest LTS version of Ubuntu after the first point release. At the time of writing, it is Ubuntu 20.04. It will remain Ubuntu 22.04 until the first point release of Ubuntu, for example 22.04.1. An upgrade to 22.04 will be proposed for existing users once 22.04.1 is released.
  • Ubuntu Preview is a daily build of the latest development version of Ubuntu. You should install it if you want to live on the edge but not for production workload as it doesn’t receive the same amount of QA as stable releases and may break at any time.

Ubuntu will then install on your machine.

Once installed, you can either launch the application directly from the store or search for Ubuntu in your Windows search bar.

Configure Ubuntu

Duration: 5:00

Congratulations, you now have an Ubuntu terminal running on your Windows machine!

Once it has finished its initial setup, you will need to create a username and password (this does not need to match your Windows user credentials).

Finally, it’s always good practice to install the latest updates with the following commands, entering your password when prompted.

sudo apt update

Then

sudo apt full-upgrade

Press Y when prompted.

Install and use a GUI package

Duration: 5:00

On Windows 11, WSL comes with WSLg enabled by default. WSLg allows you to run graphical linux applications.

To check that you have the latest package lists, type:

sudo apt update

Then, start with some basic X11 applications:

sudo apt install x11-apps

To run the xeyes, a “follow the mouse” application, type:

xeyes &

The & at the end of the line will execute the command asynchronously. In other words, the shell will run the command in the background and return to the command prompt immediately.

The first launch of a GUI application takes a few seconds while WSL is initializing the graphics stack. Next executions of GUI applications are much faster.

Leave xeyes opened and run the calculator xcalc with:

xcalc

When you move the cursor over the calculator, xeyes follows the cursor. This shows that several GUI applications can interact together.

Note that applications running under WSLg display a little penguin at the bottom right corner of their icons in the Windows taskbar. That’s one way you can distinguish applications running on Windows or Ubuntu (besides the window decoration and styling).

Close xeyes and xcalc by pressing the cross icon on the top right corner of each X application window.

Xcalc and xeyes are very basic X Windows applications but there are plenty of choices in the Linux ecosystem corresponding to your needs and available out of the box on Ubuntu.

In the following example, we will use GNU Octave to perform numerical computation.

ⓘ GNU Octave is software featuring a high-level programming language, primarily intended for numerical computations. Octave helps in solving linear and nonlinear problems numerically, and for performing other numerical experiments using a language that is mostly compatible with MATLAB. [GNU / Octave ]

We will use it to calculate and draw a beautiful Julia fractal. The goal here is to use Octave to demonstrate how WSLg works, not to go through the theory of fractals.

First thing is to install the software like we did for x11-apps, from the terminal prompt run:

sudo apt install octave

Then start the application:

octave --gui &

Do not forget the ampersand & at the end of the line, so the application is started in the background and we can continue using the same terminal window.

In Octave, click on the New script icon to open a new editor window and copy/paste the following code:

#{

Inspired by the work of Bruno Girin ([Geek Thoughts: Fractals with Octave: Classic Mandelbrot and Julia](http://brunogirin.blogspot.com/2008/12/fractals-with-octave-classic-mandelbrot.html))

Calculate a Julia set

zmin: Minimum value of c

zmax: Maximum value of c

hpx: Number of horizontal pixels

niter: Number of iterations

c: A complex number

#}

function M = julia(zmin, zmax, hpx, niter, c)

%% Number of vertical pixels

vpx=round(hpx*abs(imag(zmax-zmin)/real(zmax-zmin)));

%% Prepare the complex plane

[zRe,zIm]=meshgrid(linspace(real(zmin),real(zmax),hpx),

linspace(imag(zmin),imag(zmax),vpx));

z=zRe+i*zIm;

M=zeros(vpx,hpx);

%% Generate Julia

for s=1:niter

mask=abs(z)<2;

M(mask)=M(mask)+1;

z(mask)=z(mask).^2+c;

end

M(mask)=0;

end

This code is the function that will calculate the Julia set.

Save it to a file named julia.m. Since it is a function definition, the name of the file must match the name of the function.

Open a second editor window with the New Script button and copy and paste the following code:

Jc1=julia(-1.6+1.2i, 1.6-1.2i, 640, 128, -0.75+0.2i);

imagesc(Jc1)

axis off

colormap('default');

This code calls the function defined in julia.m. You can later change the parameters if you want to explore the Julia fractal.

Save it to a file named juliatest.m.

And finally, press the button Save File and Run.

After a few seconds, depending on your hardware and the parameters, a Julia fractal is displayed.

Like Octave, this window is displayed using WSLg completely transparently to the user.

Enjoy!

Enjoy Ubuntu on WSL!

Duration: 1:00

That’s it! In this tutorial, we’ve shown you how to install WSL and Ubuntu on Windows 11, set up your profile, install a few packages, and run a graphical application.

We hope you enjoy working with Ubuntu inside WSL. Don’t forget to check out our blog for the latest news on all things Ubuntu.

Further Reading

4 Likes

This should be
octave --gui &
(two short dashes instead of one long dash)

Apart from that, great guide :slight_smile: Thanks!

Fixed, thanks for highlighting!

I need to double-check, but I believe the installing wsl2 step can be simplified to the single command wsl --install on a previously not-enabled system. This should, IIRC, enable the right Windows features without manually searching for and enabling “Virtual Machine Platform” in the Add/Remove Windows Features screen, and will download and install Ubuntu from the store automatically with just the one command. It will also download the latest WSL2 from the store and enable WSLg and the latest WSL2 kernel.

2 Likes

I installed “Ubuntu” from the Microsoft Store, expecting Ubuntu 22.04 LTS to be installed. Instead, Ubuntu 20.04 LTS was installed. This article needs to be updated to mention Ubuntu 22.04, and the Microsoft Store entry needs to be updated to Ubuntu 22.04

Hi Flimm,

Thanks for the comment! For Ubuntu WSL we’ve opted to follow the same upgrade path as the Desktop OS following the LTS -> LTS path, with the default distro remaining on 20.04 until the first point release of 22.04.1. At that point the Ubuntu app will jump to 22.04.1 and existing users will be prompted to upgrade.

You can still use 22.04 on WSL today with the Ubuntu 22.04 LTS app or by running ‘sudo do-release-upgrade -d’ in your existing Ubuntu app.

I appreciate the language wasn’t clear and I’ve tweaked the copy above and we’re updating the Ubuntu app store description to reflect this.

Thanks for your feedback :slight_smile:

3 Likes