Skip to content

Edit this page

Open and issue

Terminator

Installing an X Server

To run an X Window application, you will need to have an X Server installed and running on your Windows 10 machine. The most popular application is: VcXsrv

After installing, VcXsrv creates a desktop shortcut. To start the server in multi-window mode run the following command in a command prompt (not in the Bash terminal):

"C:\Program Files\VcXsrv\vcxsrv.exe" :0 -ac -terminate -lesspointer -multiwindow -clipboard -wgl -dpi auto

The first time you run the above command you will have to Allow Access when the Windows defender notice appears.

Configuring Terminator

Once VcXsrv is installed, the next step is to install Terminator on WSL Bash.

First, make sure you have updated packages:

sudo apt update && sudo apt upgrade

Then install:

sudo apt-get install terminator

Terminator will not initalize a config file so you will need to do this manually (you will get an error at the next step if you do not have a config file set):

mkdir -p ~/.config/terminator
touch ~/.config/terminator/config

Try launching Terminator by specifying the X Display to connect to (:0) in the linux shell:

DISPLAY=$(awk '/nameserver/ {print $2}' /etc/resolv.conf):0 terminator &

If you receive an error about D-Bus (No D-BUS daemon running) then press CTRL+C to abort the previous command and run the following:

sudo apt-get install dbus-x11
sudo service dbus start

Once you have completed the above run the previous command again:

DISPLAY=$(awk '/nameserver/ {print $2}' /etc/resolv.conf):0 terminator &

A nice Terminator window should pop up.

Installing Zsh

The next step is to install Zsh with oh-my-zsh. Installation is straightfoward (perform in the original linux terminal, not in terminator):

sudo apt-get install curl wget git zsh
curl -L https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh | bash

You may receive a message Password: chsh: PAM: Authentication failure you can ignore this.

Set the theme to "ys" at line 11 by replacing robbyrussell in .zshrc:

vi ~/.zshrc
ZSH_THEME="ys"

If you have never used vi editor before, you will need to press the i key to enter inout mode to make changes. Once you have made the change you will need to exit input mode by pressing esc. In order to exit the editor and save you need to press : followed by wq to exit the editor with save.

The only problem with Bash in WSL is it will always run Bash instead of Zsh. To get around that, add this to the end of your ~/.bashrc which will launch zsh instead when it starts up:

vi ~/.bashrc
if [ -t 1 ]; then
  exec zsh
fi

Terminator Colorscheme

The next thing is to change the default Terminator colorscheme to Solarized Dark. The easiest way to do this, is to use the awesome node package base16-builder. You need to first install Node.js:

curl -sL https://deb.nodesource.com/setup_10.x | sudo bash -
sudo apt install nodejs

Once you have installed Node.js you can then run the base-16builder install:

sudo npm install --global base16-builder

You need to change directory access to the configstore directory just created:

sudo chown -R [your_username] /home/[your_username]/.config/configstore

Now you need to apply the scheme to the terminator config file:

mkdir -p .config/terminator
base16-builder -s solarized -t terminator -b dark > .config/terminator/config

Dircolors

To change the dircolors you can use Solarized dircolors on Github and downloaded them to .dir_colors:

wget https://raw.githubusercontent.com/seebi/dircolors-solarized/master/dircolors.256dark
mv dircolors.256dark .dir_colors

Finally, added this to your .zshrc to eval the Solarized dircolors on startup:

vi ~/.zshrc
if [ -f ~/.dir_colors ]; then
  eval `dircolors ~/.dir_colors`
fi

Launching Terminator Directly

To launch a hidden command window using the WShell Object in VBS you need to type the folowing script into a text document.

Right click on your desktop and create a new text doc. Then copy the following and save the file with the .vbs extension (e.g. startTerminator.vbs):

args = "-ac" & " -l " & """DISPLAY=$(awk '/nameserver/ {print $2}' /etc/resolv.conf):0 terminator"""
WScript.CreateObject("Shell.Application").ShellExecute "bash", args, "", "open", 0

Move this .vbs file into a safe place such as "C:\Users[your_username]\Documents\scripts". Right click on the file and 'Send to' the desktop as a shortcut. Right click on the new shortcut and select properties. In the 'Target' field type (you will just need to add C:\Windows\System32\wscript.exe to the beginning):

C:\Windows\System32\wscript.exe C:\Users\[your_username]\Documents\scripts\startTerminator.vbs

Click 'Apply'. You can then set the icon of the shortcut by saving this icon file to the same place you saved the startTerminator.vbs file. Right click on the shortcut again, properties and at the bottom select 'Change Icon...'. From here you can select the icon file you just downloaded.

In the 'Start in' field type:

%USERPROFILE%

It's impossible to have Termiator start in your Linux home directory through this method since that path is not "known" to Windows. To get around it, add this to your .zshrc so it CD's to your home directory on startup:

vi ~/.zshrc
if [ -t 1 ]; then
  cd ~
fi

If you get an error about EPOCHREALTIME and/or EPOCHSECONDS, add the following to .zshrc on the line right before the command source $ZSH/oh-my-zsh.sh (around line 73):

unset EPOCHREALTIME EPOCHSECONDS

Other customizations

If you want to further modify your terminator theme you can add lines to the file ~/.config/terminator/config.

To change the opening size of the terminal window add the variable size under layouts:

vi ~/.config/terminator/config
[global_config]
  always_split_with_profile = True
[layouts]
  [[default]]
    [[[child1]]]
      parent = window0
      profile = Base16 Solarized Dark
      type = Terminal
    [[[window0]]]
      parent = ""
      position = 2200:450
      size = 1400, 470
      type = Window

Close terminator and re-open.