Get a Functional and Sleek Console in Windows

As a Windows user, our core command line applications leave much to be desired. It isn’t the easiest thing to get the perfect setup when comparing ourselves to Mac users and their beautiful Terminal application. Us Windows users usually use Windows CMD, Powershell, Cygwin, or Console2. In the last article I wrote on dev environments, I was using Cygwin and Console2.

One of the downsides (for me) of using Cygwin was that I’d have to have everything in the cygwin folder that was created in the C: drive.

Now I’ve moved onto a couple other tools. With my new setup, I can just fire up a console and be in the folder where all my projects are stored. I’ve landed on a few things for my development environment and I need all of them to work together.

This is primarily for Windows users to get an ideal development environment. Obviously, this will be different for everyone, but if you use the tools listed below, this should handle most of your workflow.

Tools I Use

Benefits

  • Use a console in my directory where I hold all my projects (not that cygwin folder)
  • Haved access to all the normal CMD commands and more
  • Use Linux like commands cd, ls, etc. anywhere in the Windows filesystem
  • Control Vagrant, Node, Git, SSH, and whatever else you need
  • Have it look pretty
  • Have tabs

Let’s dive in and see how this setup works. Hopefully you can take from it and be able to adjust it for your own purposes.

Install Everything

Download and install the items above. Git Bash and ConEmu are the big ones. You can download and install Node and Vagrant at a later time if you want to use those.

Console

We will use Git Bash for our console. This comes bundled with the Linux-like commands we want, SSH, and of course Git. We use this instead of the default CMD or Powershell that comes with Windows since it also gives us SSH. You could install Putty and use SSH from there, but it’s just so much cooler to do it from the command line.

Download and install that and that will install into your Program Files/Program Files (x86) depending on your system.

Make sure you select Run Git from the Windows Command Prompt. Everything else can be default settings.

This will give you access to Git from the Windows Command Prompt. The main reason I do this is because the Sublime Text Git Plugin needs to be able to use Git from the Windows Command Prompt. If you don’t need that functionality, then it doesn’t really matter which you choose.

git-bash-install

You can start up Git Bash after it’s installed and you’ll get a nice little console window. You can run all your commands from there and you could completely stop right there and be content. But we always want better. We want tabs, the ability to make the window larger, transparency, full screen, and more to make our console as cool as our Mac brethen and their Terminal.

Next we’ll install a console emulator that will sit on top of Git Bash. It will provide us the cool features we want.

Console Emulator

Downloading and installing ConEmu is the easy part. Getting it setup can be a little daunting since there are so many options.

We’ll go through each of the important settings pages and you can tweak things from there.

ConEmu Settings

Tasks and Startup

These are the big settings and we’ll get them out of the way first. A task is the program that you want to use with ConEmu. You can set up multiple programs like, Windows CMD, Windows Powershell, or in our case, Git Bash.

Open Settings Keyboard Shortcut: Getting to the settings can be a little confusing. windows + alt + p will get you there.

Setup Git Bash Task

We’re going to create a new task named Git. We can also change our starting directory so whenever you start that task, it will open up there. I like putting all my projects into a “batcave” folder in my Documents. C:UsersChrisDocumentsbatcave.

conemu-task-settings

We are also going to set the program that will open up, Git Bash. We installed this into our Program Files directory so we’ll access it there. The --login -i modifiers grant the program access to our user info so we can run commands like ssh-keygen and generate items into our User folder. (don’t quote me on that. I saw it in a forum post a long time ago and it worked, so I ran with it. If anyone can clarify in the comments that’d be great!)

Startup

We want our console to automatically start with Git Bash. So in startup, set Specified name task to {Git}. Now whenever we open it up, we’ll have a console window in our chosen directory and ready to go.

Let’s move on to the smaller settings.

Main Settings

The main things you want to look at here is Font. For Windows 8 (and I believe 7), you’ll want to turn on Clear Type for antialiasing to make the fonts look smoother. You can also play around with different fonts. Some of my favorites are * Consolas * Ubuntu Mono * Source Code Pro

conemu-settings

You can also set a background image. This isn’t exactly my cup of tea, but I’m sure some people will like it, especially after you tweak some settings and font colors.

conemu-bg

Size & Pos

Auto save window size and position on exit: This setting is useful. I like windows to open up where I last closed them. You can also turn this setting to go Normal, Maximized, and Full Screen. I prefer to keep this Normal and then move the window around.
Pad size: This is the size of the padding around your console. By default, the text will hug right up to the border. This makes things a little nicer looking.

Appearance

Hide caption always Checking this box removes the toolbar with the minimize, maximize, and close buttons. You can change this based on your own preference. I like to make this as clean as possible.

Move The Window: Hiding the caption will make it pretty hard to move the window around. Thanks to the ConEmu for informing us on Twitter, holding ctrl + alt will allow you to drag the window.

Transparency

Turn on and adjust to your liking. This I think adds a great deal of that cool factor.

Tabs

I set these to Auto show. So when you have only one tab open, you get a very clean console. It’s a little hard to move it around and you’re gonna need keyboard shortcuts to maximize or get to the settings, but it’s so pretty!

Access Settings Keyboard Shortcut: Hiding the tab bar will hide the buttons to get to the settings. To access settings, windows + alt + p.

look-ma-no-tabs

New Tab Keyboard Shortcut: To add a new tab, windows + w.

Status bar

I’ve never really found a use for it so I turn it off.

Those are my main settings to get down to a barebones console. Play around with all those settings to your heart’s content. You could do some cool things with colors and all those other settings that I really need to dig into.

Colors

This is pretty neat. You can change out the basic colors of your console. Just play with colors -> schemes and see what works best for you.

conemu-colors

Going Forward

Go ahead and install Node, Vagrant, and any other tools you use in your daily workflow. If they are accessible from Windows CMD and Powershell, they will be accessible from this new setup. (as long as they are added to the PATH environment variable in Windows).

Let me know if you have any questions or need help setting anything specific up. I know I didn’t really touch on getting Vagrant setup or Node or any other big tools so far. Enjoy and happy console-ing!

Edit Added colors section.

Chris Sevilleja

Co-founder of Scotch.io. Slapping the keyboard until something good happens.