Wez's Evil Shell


  1. Download the installer
  2. Using administrative privileges, double click on the msi file to install it.
  3. If this is the first time you've ever installed a shell replacement, you should reboot now so that Windows knows to use per-user shell settings.

This will install the shell and set the registry to allow each user to chose their own shell. It does not modify the shell of the person that ran the installer.

For each user that wants to use the shell, you should take the following steps:

  1. Log in as that user
  2. Use the start menu and click on Start | Programs | Evil, as in Dr. | Shell | Set Shell
  3. Log out, log in, and you're running the shell.


Once installed, the default configuration will leave you with a desktop that is mostly empty, with a partially transparent toolbar in the bottom right corner.

The partially transparent toolbar is known as the slit, and it contains your quicklaunch icons (the "dock"), the system "tray" icons and a clock.

To launch an application, click on its shortcut icon in the dock. The shortcut icon will change into the window application icon and a small arrow will appear next to it to indicate that it is now a running application. Clicking on the icon will now bring the application to the front.

Application windows are grouped together, so if you have multiple web browser windows open, you'll see only a single icon in the dock. Clicking the icon will bring the front-most instance of the application to the front of the screen. If you want to activate one of the other windows, you may right click on the icon to select the one that you want.

Start Menu?

You'll notice that the start button and taskbar are not present, so how to do you get at the equivalent functionality? Right-clicking on the desktop or on the slit will popup a context menu (you may also press Win-S). The default context menu contains sub-menus to allow you to access your programs, your documents, configure you system (I call it Tweakage), or to shutdown/restart/log-off.

Workspaces (aka Virtual Desktops)

EvilDesk supports Windows-friendly workspace management, allowing you to partition your desktop into up to 32 separate workspaces. Workspaces allow you to group different sets of applications together, so you might want your email and web browser applications on one Workspace, and have development related applications together on another workspace.

The replacement alt-tab task switch that is part of EvilDesk is workspace aware, showing you only the applications that are on the current workspace. You may press Enter while alt-tab is held down to cycle to the next workspace and view the applications that are active there.

In the default configuration, you may only access workspaces 1 through 4.

You can move windows between workspaces either by using the system menu or by bringing up the workspace context menu using the Win-W hotkey combination.


Win-R pops up the launcher which is combination of the "Run..." dialog and a smart application finder. You may type in a command and press enter to launch it. While you type, the launch will suggest applications or documents to launch. Use the cursor up/down keys to select a suggestion and enter to launch it. If you typed or selected a filesystem path, you may use the left/right cursor keys to navigate the filesystem.

Press escape to cancel the launcher window.


The following hotkeys are defined in the default configuration:

Win E
Opens up an explorer window for file management.
Win R
Opens up the launcher for launching commands.
Alt F1
Alt F2
Alt F3
Alt F4
Switches to Workspace 1, 2, 3 or 4
Win W
Displays the Workspace menu for the current window. You may use this menu to move the window to an alternate workspace, make it appear on all workspaces (Sticky) and also toggle transparency of the window.
Displays the task switching window. Alt-Tab moves forwards through the list, Alt-Shift-Tab moves backwards. The list of tasks is limited to the tasks on the current workspace. While Alt is held down, you may press Enter to cycle to the next workspace. When you release Alt, the highlighted task will be activated, switching the workspace if required.


The shell has a plugin based architecture, and ships with a number of standard plugins. They are all loaded in the default configuration (which happens to be what I use). You can customize the extensions by editing the .evdm file and adding or removing LOAD lines as appropriate.

General Plugin Configuration

Evildesk is configured using a configuration file that is documented in detail here. Some configuration information is also stored in the registry for the convenience of the user.

The plugins that dock with a slit will load into the current slit (defined by the SLIT directive in the .evdm file).


The tray plugin provides the System Notification Area, commonly referred to as the tray. There are currently no configuration options for the tray. The tray has moderate bottom gravity.


The clock plugin displays the day, date and time. If your MUA (Mail User Agent, or Email Application) registers its unread mail counts with the shell, the total number of unread messages will also be displayed above the date. The clock has strong bottom gravity.

The following configuration options are available. The DateFormat value accepts any valid date format allowed by GetDateFormat(). The MailFormat value can accept a single %d specifier; the %d will be replaced by the number of unread mail items for your user account.

# Displays the date, time and unread mail count
LOAD clock
# SET clock DateFormat "ddd MMM dd"
# SET clock MailFormat "Mail: %d"
# SET clock Font "Trebuchet MS,18,italic"
# SET clock Font.fg "#fff"
# SET clock Font.shadow "#444"


If you're a user of the PuTTY SSH client, you might enjoy this plugin. It adds provides a PuTTY menu item that can be added to the context menu. The PuTTY menu lists your saved PuTTY sessions. Clicking on the session name will launch that session using PuTTY. To load this plugin, you need to add a LOAD putty line to your .evdm file, and then add the context menu using something like this:

	SubMenu   "PuTTY"		 putty
	Execute   "Task Manager" "runas" "taskmgr.exe"

By default, it will assume that you have installed PuTTY under c:\Program Files\PuTTY\putty.exe. If your putty binary is in a different location, you can configure an alternate path by setting the putty.exe configuration value:

# Registers a "putty" contextmenu
LOAD putty
# SET putty "putty.exe" "C:\\Program Files\\PuTTY\\putty.exe"
# SET putty "New.Session" "New Session"
All content is Copyright © 2004-2009 Wez Furlong, unless otherwise attributed.
Stay up to date with this and other projects by the same author.