I searched around, and currently there are two methods suggested; installing an enhancement for Windows Subsystem for Linux and installing an XServer.
I want to know which method is the most hassle-free (easy to install AND to use), and which one is less memory-heavy.
- Mattias working as a technical architect helping mid-sized and large customers. Mainly working in the areas of Windows 10 and Management including Intune, Office 365, Azure, Windows Server and Client. I have devoted my time to modern management/enterprise client infrastructure for many years now.
- Download this game from Microsoft Store for Windows 10, Windows 8.1. See screenshots, read the latest customer reviews, and compare ratings for Gnome.
- This tutorial provides step-by-step instructions about how to install Debian 10 Buster with a GNOME desktop. Debian 10 has been finally released on the 6th of July 2019, and it has come with a lot of very great features for system administrators.
Jun 11, 2017 How to run graphical Linux applications on Bash on Ubuntu on Windows 10. June 11, 2017 June 11, 2017 by Sean Whalen. Bash on Ubuntu on Windows was introduced by Microsoft in the Windows 10 Anniversary Update. It allows users to run a full Ubuntu user space in Windows. It is a much nicer approach for most applications than Cygwin, or using a.
I just want Synaptic and CMake. Why couldn't that be a builtin feature?
Thorbjørn Ravn Andersen8 Answers
The short answer is you can not as WSL does not yet support this function. WSL is not a full Linux installation with a Linux kernel, it allows you to run some native linux commands / binaries on a Windows (Microsoft) kernel and has limitations.
See https://github.com/Microsoft/WSL/issues/2356
You can, however, install a 3rd party X server, such as xming, and ssh into your WSL.
I did not copy that tutorial here as it is fairly ubiquitous (X over ssh) and I would expect some apps simply will not work even with this technique.
PantherPantherI chose to use VcXsrv
in WSL (Windows 10 Subsystem for Linux). I recommend everyone do their research between xming
(the accepted answer) and VcXsrv before selecting one or the other for Graphical User Interface (GUI) support in Windows 10 Ubuntu 16.04.
Installation is straight forward. As of March 17, 2019 you can simply accept the defaults. If you want to call gedit
from within your Bash Shell / Terminal you need to edit ~/.bashrc
and insert this line:
I was able to run:
... to install GUI desktop software. This then allowed me to run gedit
and nautilus
. Also I was then able to install specific GUI applications through the CLI (Command Line Interface) using apt
or apt-get
commands.
When I want to try many of my Ubuntu bash scripts within WSL VcXsrv must be installed so zenity
and yad
x-windows dialog boxes are displayed for user input.
As others have noted GUI within WSL is not perfect and you can expect to spend time problem-solving some issues. Also some GUI software simply won't work in WSL.
Setup notes
I modified /etc/environment
to tweak GUI drop down menus:
/mnt/e/bin
is unusual path because it is where I store scripts used in both Windows 10 dual boot WSL and Ubuntu 16.04 dual boot. Most users would not include this on their machine.
I've had a very positive experience with VcXsrv on Win 10 Bash on Ubuntu on Windows (Ubuntu 16.04 Xenial x86_64 Linux 4.4.0-17074-Microsoft). I did not focus on running Unity desktop as it is useless and resource consuming. I just simply ran apps from bash in GUI mode from Windows10 desktop using XServer.
Install VcXsrv from here on Sourceforge
Run the VcXsrv app directly, do not launch XLaunch. You should see
localhost:0.0 - 0 clients
when you hover over the icon on Win10 TaskbarOpen Ubuntu Bash:
(results in localhost@localhost:/mnt$)
(localhost@localhost:/$ meaning this commands brings you to the beginning of the hard-drive as far as WSL can see...)
(this will install 'dbus' to create virtual connector for GUI, 'Synaptic Package Manager' and 'Nautilus' file explorer for unity-desktop
(When
session.conf
opens in vi editor)Press i to enter insert mode and add
than add:
Press ESC when you are done editing file and
:wq
to save the file.Run these commands and check their output:
You are done! Now just run synaptic, nautilus or firefox from Bash and they should load on Win10 desktop. GUI options like this are buggy but operational. You can install
ubuntu-desktop
,unity
,ccsm
,compiz
and try to run Unity Desktop for Ubuntu. I did not try to set the 'Steam' because I am still suffering rrying to run 'Unreal', Good luck :)

If someone knows how to run gnome-terminal
on XServer instead of XTerm please share...
P.S
You can add VcXsrv as a Win10 bootable
To max your sources with 'Steam' as specified in original post, tune your Windows a little for network package management (to lower latency) and CPU/GPU prioritization to make a Win10XBox… :)
Although you will run 'Steam' under 'Unix' the shell is still 'Windows' which allows you to launch 'Steam' on 'Unix' …
Tcp Prep:;
In regedit:
Here you need to go through the list of sub-keys to locate the network adapter entry that is used to connect to the Internet. If you are using DHCP, you need to look for DhcpIPAdddress
entry (with system data values NOT :0.0.0.0
) to find the correct adapter.
Once you have located the correct key right-click it and select New > Dword (32-bit) Value.
Name it TcpFrequency and click ok.
Double-click the value afterwards and set its Decimal value to 1. (To restore the default setting, change the value to 2 or delete the key)Now navigate to the following key: HKEY_LOCAL_MACHINESoftwareMicrosoftMSMQ
Right-click on the key again and select New > Dword (32-bit) Value.
Name the new parameter TcpDelay
Double-click it afterwards and change its Decimal value to 1. (To restore the key at a later point in time change it to 0 or delete the key)
Nagle’s Algorithm
Nagle’s algorithm combines several small packets into a single, larger packet for more efficient transmissions. This is designed to improve throughput efficiency of data transmission. Disabling “nagling” can help reduce latency/ping in some games. Nagle’s algorithm is enabled in Windows by default.To implement this tweak, modify the following registry keys.
For the {NIC-id}
, look for the one with your IP address listed; under this {NIC-id}
key create following DWORD value:
- TcpFrequency and set it to 1 to disable “nagling” for gaming.
- TCPDelay and set it also to 1 to disable “nagling”
- TcpTicks and set it to 0
Note:
Some reports say that the tweaks did reduce latency when playing Dota 2 and League of Legends but it doesn’t work for some. I have tried it and my latency improved from 110 to 90ms (SEA Server) when playing Dota 2.
Network Throttling Index
Windows implements a network throttling mechanism, the idea behind such throttling is that processing of network packets can be a resource-intensive task. It is beneficial to turn off such throttling for achieving maximum throughput.
To implement this tweak, run regedit and modify the registry
Under SystemProfile, create a DWORD value and name it to NetworkThrottlingIndex then set its Hexadecimal value to ffffffff for gaming and max throughput: ffffffff completely disables throttling.
System Gaming Responsiveness (Not so sure about this one :)
Multimedia streaming and some games that uses “Multimedia Class Scheduler” service (MMCSS) can only utilize up to 80% of the CPU. The “Multimedia Class Scheduler” service (MMCSS) ensures prioritized access to CPU resources, without denying CPU resources to lower-priority background applications.
To implement this tweak, run regedit and modify the registry key
From there, create a new DWORD and name it to SystemResponsiveness set its decimal value to 00000000 for pure gaming/streaming.
In the same Registry hive as the above tweak, you can also change the priority of Games. To implement this tweak, go to
and change the following registry values:
- “GPU Priority” change its values to 8 for gaming.
- “Priority” set to 1 for gaming.
All cheers for 'unknown' (pardon me was a while since I copied your directions) author of this Windows=Xbox tweak...
PPS: If XServer fails on what you would like to do try to find the workaround with Docker.
ZannaEven though a full GUI desktop environment is not ‘officially’ supported by Microsoft, it can work.
Gnome For Windows 10 Free
Turn Windows features on or off
Enable Windows Subsystem for Linux
Restart Computer
Launch Microsoft Store
Search for Ubuntu
Select Ubuntu 18.04 under Apps
Click Get
Launch Ubuntu and wait for install
Set username and password
Run the following Commands:
Create and modify .xsession
Add text:
Save and exit vi
You will need a second account on Ubuntu
Modify startwm.sh
Comment out the bottom two lines
Add text:
Save and exit vi
Gnome Linux
In Windows, restart Ubuntu and run:
In Windows run mstsc.exe
Computer: 127.0.0.1:3390
Leave username blank
Connect
Session: Xorg
username: remote
password: password
Enjoy xfce!
When done, close the remote desktop connection
Return to the Ubuntu command line
Since you want it easy... There is an app in the Microsoft Store called x410. It's basically a Cygwin X11 server without the use of Cygwin itself. After installment - that is zero config - you can run WSL X11 Apps! (or even whole desktops). You might want to insert the following lines into your .bashrc (from your WSL user account) so you can run the apps from your bash terminal.
I bought x410 on salve for about 5euro's.. So if it's too much, perhaps wait for an sale!
If you want an effortless off the shelf solution, use MobaXTerm. It's a great, multitabbed terminal emulator with direct support for WSL, and has a built-in optimized X server. I use synaptic all the time on Moba. Even RStudio.
I chose Panther's answer not only because it's the only, but also because it's the correct answer; there is no hassle-free (straightforward) way to get gui apps running.
Also, I used this tutorial, with a few changes:
- I didn't install
xfce
, because I don't know why I would need adesktop. - Chose
Multiple Windows
inXLaunch
(No DE, hence no need for onegiant window) - No need for mkdir fix and no need for a separate terminal.
What gui apps did I install? Only Synaptic and CMake, since I really can't think of anything else I would need on wsl.
I don't do VM/Dual Boot, for the very same reason Panther pointed out; I need a convenient (to me) dev environment, not a full flex OS.
- install Fedora in VirtualBox on your Windows machine with NAT networking
- in WSL
sudo service ssh start
- from Fedora run
ssh -Y 10.0.2.2
Usually the host of a VirtualBox guest can be reached at 10.0.2.2
Now you can any WSL X program on your Fedora desktop, even with seamless Windows.
protected by Community♦Apr 13 at 12:11
Thank you for your interest in this question. Because it has attracted low-quality or spam answers that had to be removed, posting an answer now requires 10 reputation on this site (the association bonus does not count).
Would you like to answer one of these unanswered questions instead?
Not the answer you're looking for? Browse other questions tagged guiwindows-subsystem-for-linux or ask your own question.
You'll need this
Windows 10 with the latest Creators Update.
Hardware: A 64-bit processor and at least 1GB free on your C drive.
“Oh Lordy, no, not that Linux again!” cries out the rightly indignant Maximum PC reader. “Stop trying to foist that beardy, communist-inspired, open-source nonsense on us!” No one wants to install a whole operating system, just to mess around with a bit of terminal-based garbage, so Microsoft did the right thing, and brought Linux inside Windows, using the Windows Subsystem for Linux. Partnering with one of the leading Linux developers, Canonical, it developed the WSL to enable you to effectively install the core of the Ubuntu Linux OS inside of Windows. No mess, no fuss, just pure, simple Windows, with added Linux on top, erm, inside.
Gnome
“Why?” we hear you despairingly cry. Because developers love it. It enables them to directly install and run common open-source tools, commands, and server services without leaving Windows. It also enables you to monkey around with Linux from the comfort of Windows, without even needing to fire up a virtual machine. So it’s free, it’s easy to get up and running, won’t take up much space, it’ll expand your knowledge, and help freak out your friends! What’s not to love? Let’s give it a try, and explain how you can have some open source fun along the way.
Prepare your PC
Setting up and running the WSL has become somewhat simpler than when it was first introduced back in 2016, as long as your version of Windows 10 has the Fall 2017 Creators Update, which is Windows build 16215, aka Redstone 3. The most complex step is doing the following: In search, type “powershell,” right-click this, and select “Run as administrator” (see image below). Enter the following command, and restart your system:
Install Linux
Head to the Windows Store and search for “Linux.” Boom—a whole new section dedicated to Linux on Windows. Will wonders never cease? We’re only interested in Ubuntu here—OpenSUSE is another major Linux distro, but it uses a different installer system (known as package management) to Ubuntu. So choose Ubuntu, and click “Get it” (see image below). If you run into an error at this point, ensure you ran the PowerShell command, you have a 64-bit CPU, that you have the correct build of Windows 10, and it’s installed on the C: drive under “Default Save Locations” in “Settings.”
Setting up Linux
Before you can do anything, you need to create a user account for Ubuntu; enter a suitable username and password. Now begin the obscure terminal incantations to start the Linux magic. These first two ensure Ubuntu has the latest packages, and is up to date, so type:
You’ll see a list of scrolling text, which refers to the online repositories where Ubuntu stores OS files, ensuring you have the latest list, then ensuring Ubuntu has them installed (see below). Typically, it asks you once it’s updated them whether it’s OK to install the updates.
Install a GUI
At this point, all you have is the basic Bash shell—that’s the text-based terminal to you, which is super-powerful, but more for developers and server environments, which we’re likely not living in or with. The cool part is that the Linux world uses a graphical system called X to generate its GUI. X uses a server/client model, which means you can access interfaces over network connections or across subsystems. We’ll install a Windows-based X server, and the Linux client will be able to launch GUI-based X tools.
Download and install Xming from here. Allow the firewall exception as well.
Tweak Ubuntu
That’s the Windows side taken care of. On the Linux side—you’ve run Ubuntu, right?—we need to point any GUI activity at the correct display. Type:
To permanently set this display environmental variable, type:
That adds the directive to a script that’s run each time you start Ubuntu, technically the Bash shell part. Now we need to install a graphical program:
This takes a while. Then type:
To run the program.
Gnome Shell For Windows 10
Install a desktop
If you research this online, you may find references to Dbus fixes; these are no longer required, because it’s now part of the default Ubuntu install. This means we’re able to dive in and install a Linux desktop—we’re opting for a lightweight one called Xfce4. Run each command here in turn:
Prep your desktop
We’re going to do a bit of housekeeping to keep things neat, so run the command:
In the text editor, enter the lines of code that follow. When done, press Ctrl-O and hit Return to save it, and Ctrl-x to exit the text editor.
Run:
This will make the file we’ve just created executable. Then:
This will “link” that file with another standard X configuration file. Start your newly installed Linux desktop with the following command:
On the first run, a dialog pops up—select to use the default. The Xfce4 desktop appears over the Windows 10 one, so you might want to ensure the Ubuntu window isn’t full-screen, because the window bar can be blocked. You should spot an “Application” menu top-left, there’s a dock at the bottom, with a taskbar running along the top. To quit, use the “Log out” option in the top-left menu (see image below).
You won’t find too much to play with at this point, because it’s a Linux desktop running on a largely sparse distro. You can add programs, such as Firefox, via sudo apt-get install firefox and this then appears under the “Internet” menu. Have fun!
Begone Linux and other tricks
Previously, removing the WSL was a case of running PowerShell as Administrator, and typing lxrun /uninstall /full. Now, if Windows 10 is up to date, all you need to do is remove it from the Start menu/Windows Store. By the time we’ve finishing installing bits, the Linux install will be pushing 1GB, so it’s not something you’ll want hanging around your C drive.
We’re frankly doing things here with the WSL that it was never designed to do. In fact, trying to get these things working in earlier builds was far more of a bind than they are now. So, if you find you’re having a few glitches here and there, it’s to be expected.
We’re going to leave you here, but there’s plenty of other things you can do with the WSL. For instance, running sudo apt-get install compiz-core and sudo apt-get install compizconfig-settingsmanager adds a host of visual effects settings that you can monkey around with. You also might notice there’s no sound, and while it is possible to add this, it’s rather tricky, and probably not worth your hassle. Long story short: Linux uses a server/client sound system called PulseAudio, and you need to install both a Windows version (tricky), and redirect the output to your host Windows machine. Just for the pleasure of likely hearing out-of-sync sound.
This article was originally published in Maximum PC issue 149. For more quality articles about all things PC hardware, you can subscribe to Maximum PC now.