Hacking The Look: Revisited

by mojomonkee

After reading ZenLogic's "Hacking The Look" in 20:2, I decided to author a follow-up article that might shed a bit more light on the world of desktop customization in Windows.  Now, I know this isn't a customization magazine, so I'll keep it short and sweet.  Maybe your interest will be piqued and you'll want to dive into this kind of thing by article's end.

While ZenLogic's article touched on some integral customization techniques (res-hacking, registry editing, etc.), there is still much more that can be done to make your desktop truly your own.  One big thing that you can do to completely change your desktop look and have people say, "Is that UNIX?" (or even, "Is that OS X?") is to change your default Windows shell.

Windows Shells

In Windows, the desktop environment is known as a "shell."  The default shell is EXPLORER.EXE and is merely a suggestion by Microsoft on how you should run your desktop.  It's not set in stone.  There is a myriad of alternative shells you can use to completely change this look, and here are just a few that are in active development:

BlackBox4Windows:  Known as bb4win to its users, this Linux clone runs exactly like its UNIX counterpart.  With the ability for expansion with user-made "plugins" and support for native Linux themes (no porting necessary), this shell is ready to go right out of the box.  Just extract the latest nightly build to C:\BLACKBOX and you're all set to go.  For more information on bb4win, go to www.bb4win.org.

GeoShell:  GeoShell is a newcomer to the shell scene (about a year old) and uses "geobars" to load such items as Winamp controls, command line, clock, system stats, tasks, systray, etc.  Much like bb4win, these are achieved through using user-created plugins.  Load what plugins you want and unload others that you don't to achieve what you feel is your desktop.  For more information, go to www.geoshell.com.

LiteStep:  LiteStep started as a Windows clone of Afterstep but has evolved significantly from that.  Today it bears more resemblance to Enlightenment due to its extensive customizability.  You can make your desktop look, run, and feel however you want in just a short amount of time.  LiteStep is the most complicated of all the shells I've used, but it really gives you complete control over your desktop.  With hundreds (yes hundreds) of "modules" (DLLs) that you can apply, there is no end to the functionality of your desktop.  Animated auto-hide bars, draggable boxes, 32-bit alpha-blended PNG support, and ability for highly advanced scripting make the sky the limit for LiteStep.  For information concerning LiteStep, go to www.litestep.net and lsdocs.shellfront.org.

Shell Installation

Sometimes a shell comes with an installer that can set the shell as the default for you by automatically editing the registry for you.  While this may be a good idea since it allows you to keep your hands out of REGEDIT, I recommend opting out of this option and setting the shell yourself.  This allows you to learn how Windows handles shell settings for individual accounts and also lets you have control over which accounts have which shell.

Windows 2K/XP:  I recommend having a main administrator-level account that uses EXPLORER.EXE as the shell for system critical driver installations and Windows updates.  This insures that nothing goes funky because the default shell isn't loaded (Microsoft isn't fond of third-party software running at the core of the system and certain Windows updates might get b0rked if EXPLORER.EXE isn't loaded as the shell).

Once you have your explorer account all ready to go, create a new account for your alternative shell (I have one called "brian_litestep" and one called "brian_bb4win").  Log into the shell and then run REGEDIT ("Start --> Run --> regedit').  In REGEDIT, follow these steps (Thanks to Omar Hussein!):

Step 1
In: HKLM\Software\Microsoft\Windows NT\CurrentVersion\IniFileMapping\system.ini\boot

Set the 'shell' string to: USR:Software\Microsoft\Windows NT\CurrentVersion\Winlogon

Step 2
In: HKCU\Software\Microsoft\Windows NT\CurrentVersion\WinLogon

Set the 'shell' string to: C:\PATH_TO_SHELL\YOUR_SHELL.EXE

Step 3
In HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer

Set the 'DesktopProcess' DWORD to: 1

Note: If you don't have a "shell" string for Step 1 or 2, then just create it.

If this is too difficult (or you can't be bothered to mess with the registry), then make a registry file (*.REG) that will do it for you.  Open up a text editor and paste in the following information (Thanks to Paradox!):

Windows Registry Editor Version 5.00 

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\IniFileMapping\system.ini\boot]
"shell"="USR:Software\Microsoft\Windows NT\CurrentVersion\Winlogon" 

[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon]
"shell"="C:\PATH_TO_SHELL\YOUR_SHELL.EXE" 

[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer] 
"DesktopProcess"=dword:00000001 

[HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\Advanced]
"DesktopProcess"=dword:00000001 

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon] 
"shell"=- 

Editor's Note:  The '-' value in the final reg value update means "delete this value."  If deleting makes you nervous -- we know it makes us nervous -- just go into the registry and change the value's name.  We're not aware that it's possible to rename a value via the *.REG file import.

Save the file as a *.REG extension and don't forget to edit the "shell" line to your specific settings!  Double-click the *.REG file to add it to your registry and you're all set to go.

You can do this for as many accounts as you want (try out all the shells!).  This way, if you get sick of the shell and want to return to the save haven of EXPLORER.EXE, you can just delete the account and go back to the administrator account.

Windows 95/98/ME:  Since Windows 95/98/ME isn't a true multi-user OS, there can only be one shell set at a time for all users.  This has both positive and negative sides to it.  The positive is that there is only one file that you need to edit in order to set the alternative shell as the default.  The negative is that you will want to have EXPLORER.EXE loaded when installing Windows updates and other critical system upgrades since some software/driver installations rely on Explorer's services for proper installation.

Never fear!  This is an easy problem to get around.  How do we fix it?  We get a "shell manager!"  A shell manager... manages your various shells so that you can choose which one you want to use on start-up.  Think of it as the stepchild of LILO.  (Editor's Note: short for "Linux Loader")  I recommend "shellON" which is available here: www.dx13.co.uk/sov3/.  To set the shell in Windows 95/98/ME, follow these steps:

Make sure system files and hidden files are shown (so you can see the file you need to edit). 

Navigate to C:\WINDOWS and find the file "SYSTEM.INI".

Open SYSTEM.INI in Notepad (or your favorite text editor) and set the shell of your choice in the "shell=" line.  

If you wish to use just the alternative shell (e.g. bb4win) then just set it to 

     "shell=C:\BLACKBOX\BLACKBOX.EXE" 

but if you want to use a shell manager, set "shell=" to the proper executable. 

Important Note: If you ever are left with a blank screen and no way of fixing it, reboot your machine into DOS mode and edit the SYSTEM.INI file to point back to EXPLORER.EXE as your shell.  Since there is no Task Manager, it is one of the only ways to get back to your desktop to fix things you may have messed up.

[Editor's Note: The most convenient way to prepare for having to rescue yourself by editing SYSTEM.INI in DOS is to comment out the original "shell=" line, and add the one you want executed.  In this way you don't need to remember the path to the Explorer shell; to go back to normal you just comment out your new line and uncomment the old line.]

End Notes

Desktop shells are just one part of desktop customization, but they can do a lot for the way you run your desktop and up your production level by reducing the amount of clicks to get to simple tasks.  You can't really muck up your system too much, but always make sure you know what registry or system file you're editing before you reboot your system... you might lock yourself out of your OS.  If you want more information on running an alternative shell on Windows, visit the following sites:

Shouts to: #litestep, #fpn, customize, and deskmod.

Return to $2600 Index