Windows 10 as a Linux Window Manager with WSL2
Tags: productivity, opensource, showdev, development
Published: 2020-12-12 18:51:46

---
title: Windows 10 as a Linux Window Manager with WSL2
published: true
description: How to use Windows 10 as a window manager to Linux with WSL2... and why.
tags: #productivity #opensource #showdev #development
//cover_image: https://direct_url_to_image.jpg
---

## So on Windows 10, this is how I roll

![Windows Toolbar for Linux Demo](https://github.com/cascadium/wsl-windows-toolbar-launcher/raw/master/assets/demo.gif)

Yes those GUI windows are all Linux apps.


## Why in the name of all that is Sacred?

Well it's actually not that complicated. I love Linux. I really do. Always have, always will. If it was my choice, I would never touch Windows because it's just not as developer friendly, and I'm a professional developer.


## But..?

But sometimes you want to run Office. And sign on to corporate services. And... you know... print and screencast during meetings. Although you can usually do all of those things on Linux, it usually involves more effort than I'm willing to invest these days. Not because of Linux, I hasten to emphasize, but because Windows and (occasionally) Mac are the only operating systems that most peripheral vendors care about these days. Which means things tend to work out of the box. And this is a productivity machine after all.


## So this is just another WSL tutorial?

Not quite... it's more of a brain dump of what I did, the project that I maintain, and how you can run every Linux UI application in a sensible way *alongside* windows. This particular solution is focused on WSL 2, but will also work on WSL 1.

I won't be doing a hand-holding tutorial (not at this point at least). This is more of a show and tell / introduction to my toolbar project.


## And the catch?

This solution does not seem to play nicely with resume from suspend / hibernate... however a workaround for this does exist, which I may write about later...


## How do I get access to this wizardry?

I'll not get into the details here but it's all documented on the [github repository](https://github.com/cascadium/wsl-windows-toolbar-launcher) (which you are welcome to star). If you can't get it working, raise and issue and I'll help if I can.


## Why did you set this up?

I started the project because I use C applications that target a linux environment a lot and although remote development has come a long way, it is still in my opinion pretty awful. Things like debuggers misbehaving, sessions getting scrambled, synchronization breaking, plugins not working when remote etc always seem to be there (for me at least). So this is effectively *local linux development on windows*. Or more practically, using Windows as a window manager for Linux.

Since WSL 2 in particular this was a big deal. With WSL 1 many things worked but not everything. WSL 2 looks and feels like proper linux and you always have much more confidence that your stuff will run well than you ever had with WSL 1.

At first I searched for a tool to let me launch WSL Linux GUI applications more natively from Windows and there are things for creating shortcuts etc. but they all seemed to be a little hacky for my taste.

So I started writing the project (which literally just generates windows shortcuts to WSL commands) and posted it to twitter with a few hashtags, created a reddit post, and answered a stackoverflow answer or two pointing to the repository.

To my surprise since it's launch almost a year ago it is up to 250 stars on Github, it is regularly downloaded in pypi and it's definitely in active use since I get issues raised regularly and even some contributions back!


## Wrapping up

This is my first post to dev.to so please be gentle... but the story here is not so much a "build it and they will come" story. Because all too often they don't come at all!

It's just a story of what I did - I wanted a problem solved, I solved it, I shared it, and now others use it too. And it feels pretty cool I highly recommend it - even if they don't come :).