A Linux Dev Environment on Windows with WSL, Docker, tmux and VSCode
Tags: docker, productivity, windows, vscode
Published: 2019-01-02 13:27:11

---
title: "A Linux Dev Environment on Windows with WSL, Docker, tmux and VSCode"
published: true
description: "I've spent a full year using WSL and I am still convinced it is the ultimate development environment set up if you use Windows."
tags: docker,productivity,windows,vscode
cover_image: https://thepracticaldev.s3.amazonaws.com/i/xlnngd7e7hdr5bzvv4av.jpg
canonical_url: https://nickjanetakis.com/blog/a-linux-dev-environment-on-windows-with-wsl-docker-tmux-and-vscode
---

**This article was originally posted on December 21st 2018 at: https://nickjanetakis.com/blog/a-linux-dev-environment-on-windows-with-wsl-docker-tmux-and-vscode**

---

Over the last 5+ years I've tried all sorts of setups. Everything ranging from
dual booting Linux to using a[VMware based Linux VM](https://nickjanetakis.com/blog/create-an-awesome-linux-development-environment-in-windows-with-vmware) and now [I'm happily using WSL](https://nickjanetakis.com/blog/using-wsl-and-mobaxterm-to-create-a-linux-dev-environment-on-windows).

I wrote about using WSL over a year ago and I've been using it ever since. Over the last year, I've evolved my development environment and the video below is the latest iteration.

The last video I recorded of my dev environment was nearly 3 years ago, so I was long overdue for making a new video. Enjoy!

## Demo Video Showing Everything

{% youtube 5gu8wWX3Ob4 %}

#### Timestamped Table of Contents

- 1:08 -- Why use Windows?
- 1:44 -- Terminal set up (Ubuntu 18.04 WSL / tmux)
- 4:09 -- Dealing with Windows updates and restoring terminal sessions
- 5:38 -- The tools I use blog post
- 6:22 -- Virtual desktops
- 7:28 -- Reverse searching your terminal history
- 7:47 -- Dotfiles link on GitHub
- 7:57 -- Visual Studio Code
- 9:26 -- Splitting and resizing windows
- 10:13 -- Modifying a web app workflow
- 13:19 -- Multiple clipboards with Ditto
- 14:37 -- Searching and launching apps with Keypirinha
- 15:19 -- Browser and screen sharing tools
- 16:47 -- Chatting on IRC with HexChat
- 17:26 -- Managing passwords on the command line with pass
- 17:55 -- Finance tracking with GnuCash
- 18:26 -- Various hardware I use
- 18:58 -- Recap of everything

## Reference Links to Install and Configure Everything

- [The tools I use](https://nickjanetakis.com/blog/the-tools-i-use)
- [Getting set up with WSL](https://nickjanetakis.com/blog/using-wsl-and-mobaxterm-to-create-a-linux-dev-environment-on-windows)
- [Ubuntu WSL terminal](https://nickjanetakis.com/blog/conemu-vs-hyper-vs-terminus-vs-mobaxterm-terminator-vs-ubuntu-wsl)
- [tmux tutorial](https://nickjanetakis.com/blog/who-else-wants-to-boost-their-productivity-with-tmux)
- [Reverse search bash history with fzf](https://nickjanetakis.com/blog/fuzzy-search-your-bash-history-in-style-with-fzf)
- [Dotfiles on GitHub](https://github.com/nickjj/dotfiles)
- [VSCode extensions and settings](https://nickjanetakis.com/blog/my-favorite-vscode-extensions-and-settings)
- [Configuring Docker with WSL](https://nickjanetakis.com/blog/setting-up-docker-for-windows-and-wsl-to-work-flawlessly)
- [Multiple clipboards with Ditto](https://nickjanetakis.com/blog/boosting-software-developer-productivity-with-a-clipboard-manager)
- [Searching and launching apps quickly with Keypirinha](http://keypirinha.com/)
- [IRC with Hex Chat](https://nickjanetakis.com/blog/ancient-babylonians-may-have-invented-irc-2000-years-ago)
- [Command line password manager using pass](https://nickjanetakis.com/blog/managing-your-passwords-on-the-command-line-in-linux-with-pass)
- [Tracking finances with GnuCash](https://nickjanetakis.com/blog/using-gnucash-as-a-freelancer-to-track-finances-and-prepare-taxes)


## Final Thoughts

It's nothing but smiles all the way down. I've never been this happy and more productive before when it comes to my development environment.

I'm super thankful Microsoft has stepped up their game. I'm excited for the future.

**What do you think? Am I missing anything interesting? Let me know below.**