Blog

Cmder with WSL

Assuming you've just come my guide on getting barebones WSL set up (or you have a WSL already), you might agree with me that the terminal is simply... ugly. Here, I'll go through installing the wonderful Cmder to give us more customization options.

This guide is just focused on getting Cmder and WSL playing nice, but see this other guide for information on Cmder and Windows' normal consoles.

Installing Cmder

First up in installing Cmder itself. Head over to Cmder's website and download the full package. It'll come as a .zip file, and installation is as simple as unpacking it somewhere—right click on it and select "Extract All..."

I'd suggest being wise about where you extract Cmder to, since that is where the program will live. Most programs live in C:\Program Files\, but that folder has trickier Windows permissions that Cmder and WSL have trouble playing nice with.

I put Cmder's folder in my Windows user folder—C:\Users\Jack\—so that Cmder.exe is under C:\Users\Jack\Cmder\. If your user folder has spaces or odd characters, it might make sense to put Cmder's folder right at the root of your disk, like C:\Cmder\.

Once the files are extracted, I navigated to the folder and dragged the Cmder application to my task bar for easy access (you're welcome to make a desktop shortcut or whatever makes the most sense: depending on where you extracted to, Windows search might not see Cmder automatically).

Using Cmder

When you open Cmder for the first time, you'll probably see a warning like the following:

It is safe to "Unblock and Continue"—this window is simply ConEmu (one of the programs that makes up Cmder) warning us that Windows might complain about us running files we downloaded from the internet. Moving past that warning (and any security pop-ups that Windows shows you), you should see Cmder open up.

You may encounter an issue with something ccalled wslbridge that Cmder uses to connect to WSL. It will complain about permission being denied for a wslbridge-backend file in your Cmder folder. If you get this error, do the following:

  1. Copy the path to the problematic file (it starts with /mnt and ends with backend)
  2. Open up a normal WSL terminal (run bash from a command prompt or the start menu)
  3. Run the following: chmod +x path where path is what you just copied (you can right click in the WSL terminal to paste your clipboard)
  4. exit the WSL terminal and relaunch Cmder

Well, we at least have colors now! The main thing to note, though, is that this isn't our Ubuntu Linux shell. This is the normal Windows command prompt, which is the default that Cmder uses.

To use our WSL shell, we have to tell Cmder to run a different 'task' on startup. If we click the three bar icon in the bottom right, we can access the settings menu.

Cmder provides us with a ton of options, and we'll get to this in a minute, but right now we just want to change the "Choose your startup task..." option. In that dropdown you should see a {WSL::bash} option.

Select that, save the settings with the button in the bottom right, and close and re-open Cmder. If everything works, you'll see the Linux shell.

Customizing Cmder

Now that we have Cmder up and running, we can make it a bit more inviting. What's below is all totally optional; feel free to explore the different settings and make it your own.

Cmder has tabs that let you run multiple consoles at once, just like a web browser with multiple pages. By default it places those tabs at the bottom, but I like to move them to the top. The option is in in Settings, General, Tab bar, where there is a "Tabs on bottom" box you can un-check. On that same screen, I also like to increase the "Tab font" size from 16 to 18 and check the "Elavated consoles: suffix" box.

Next up: the background. I'm personally not a fan of the transparency, so I like to disable it entirely under Settings, General, Transparency. Moving both sliders to "Opaque" works, or you can un-check both "Alpha transparency" boxes.

Cmder also lets us easily change the entire color scheme. Under Settings, General there's a "Choose color scheme" dropdown with a little preview of the colors next to it. Your preferences here might change as we customize more of the shell: I'm a fan of Luke Maciak's solarized theme.

I'm personally not a fan of the scrollbar sometimes appearing, so I set it to be hidden under Settings, General, Apppearance.

Lastly, I like to change the fonts. Under Settings, General, Fonts, we have just about every option we could want. If you plan to use Zsh like I do, I recommend using a Powerline font (a good guide for installing them is right here). I'm a fan of Fira Mono for Powerline with a size of 18.

Next Steps

The end result is definitely more appealing than the default WSL console window, but we can do more: next, we'll have our Linux shell take advantage of Cmder's support for colors by installing Zsh. Later, we'll get Cmder going with the normal Windows consoles too.

GuidesJack WarrenConsole