Blog

Cmder Windows Integration

One of the great elements of Cmder is how it enables better Windows integration with the various consoles. Here, I’ll go over the different features and their quirks.

The Cmder GitHub wiki has instructions on getting Cmder working in programs like VS Code, Sublime Text 3, and IntelliJ. I won't focus on those integrations here, but I will mention that I highly suggest using environment variables in setting up the above. However, there's a small number of instances where a program prefers a static path, so that's a troubleshooting step to keep in mind.

Context Menu

There's two routes to getting integration with the right-click menu: via the overall Cmder package or via its ConEmu component. There's pros and cons to each approach.

  • Via Cmder
    • Opens Cmder normally
    • Starts your default Cmder shell
    • Only one available
  • Via ConEmu
    • Doesn't actually open Cmder: opens a ConEmu window directly
      • This works totally fine, but will have a different icon than Cmder and won't stack with Cmder windows in the taskbar
    • Customize what task is started
    • Make as many as you want

My default and most-used shell in Cmder is WSL, so I prefer the Cmder route for context menu integration. Cmder's readme includes basic instructions:

  1. Open a terminal as an Administrator
  2. Navigate to the directory you have placed Cmder
  3. Execute .\cmder.exe /REGISTER ALL If you get a message "Access Denied" ensure you are executing this command in an Administrator prompt.

Following those instructions yields the result shown below. It will be in the context menu when you click in a folder space (like in blank space in explorer or on the desktop) or specifically on a folder.

If you want more customization, Cmder has instructions on making a customizable registry file that you can load in. If you decide to go that route after already using the /REGISTER command, you can use .\cmder.exe /UNREGISTER ALL to undo it.

Task Bar Jump List

Windows allows programs to make "jump lists" that show up when you right click on their icon in the task bar.

We can set up Cmder's jump list to link to tasks we have made.

It is important to note that since this functionality is implemented by the underlying ConEmu software, it faces some of the same issues as using ConEmu to add context menu shortcuts: the new windows won't stack with other Cmder windows on the taskbar. That said, I prefer having the functionality there if I need it.

To set up the jump list in Cmder, go to Settings, Startup, Tasks, and check the "Taskbar jump lists" box for any task you want to appear. When you're done, head over to General, Task bar and look at the "Windows 7 taskbar (Jump list)" area. We want to check the "Add ConEmu Tasks" box, uncheck the "Autoupdate" box, and click the update button.

Why not autoupdate?

There's a nice trick we can play with customizing the order of the jump list, and it relies on the jump list not updating on its own.

When we click the "Update Now!" button, the jump list is loaded with the tasks to be shown in the order that they exist in the list in the task settings. After you've set the jump list, you can rearrange the tasks to set how they'll appear when you open a new console normally.

For example, I inversed the order for the jump list so that my most frequently used task (WSL bash) is at the bottom of the list near my cursor.

Next Steps

If you've gone through my other console guides, I suggest getting SSH keys set up across both Windows and WSL to get better and more seamless security.

GuidesJack WarrenConsole