DarkStep ver 0.96 ~~~~~~~~~~~~~~~~~ Table of Contents ----------------- Part 1 - Introduction Part 2 - Installation a) Win9x b) WinNT/W2K c) In Explorer Part 3 - DarkStep Specific Syntax Part 4 - Step.rc Explained a) [Startup] b) [Environment] c) [Config] d) [Themes] e) [LiteStep] Part 5 - !Bang Commands Part 6 - Hotkeys Part 7 - Command Line Options Part 8 - Bug Reports/Suggestions Part 9 - Future Plans Part 10 - Credits/Thanks Part 1 - Introduction What is DarkStep? It's a program which replaces Explorer as the shell under Win9x, NT and W2K. DarkStep will sometimes be called a clone of another shell replacement, LiteStep, because I used to work on LiteStep before leaving the development team and starting work on DarkStep. To an extent that description would be apt because DarkStep was written with certain of the shortcomings of LiteStep in mind. DarkStep was written from the ground up using code from many sources such as public domain software libraries, code on Internet forums as well as some brilliant stuff done for message passing for LiteStep by one of the dev team members - Bryan Killian. DarkStep was conceived as a themer's shell because while LiteStep offered a lot of customizability, the user had to know quite a bit about the internal workings of LiteStep in order to change a theme or to get all the customizability of LiteStep working. DarkStep on the other hand, aims at providing the same sort of customizability as LiteStep while also providing ease of use so that a user will be able to switch themes on the fly without having to actually get their hands dirty so to speak by messing with configuration files and stuff :-) The above goal is achieved by way of an API which makes it easy for developers to read from and write to multiple configuration files so that they can separate theme specific info from config specific info in such a way that switching themes will not affect the way a user has their shell set up. Incidentally, if you are familiar with LiteStep, you might be surprised to learn that DarkStep does not come bundled with any modules at all. DarkStep depends on third-party developers to supply all the extra functionality that the user will require and on booting up with no modules at all will provide a user with a bare desktop with basic functionality via a console that can be invoked by pressing CTRL+ALT+R. DarkStep will work with most LiteStep modules as well as native DarkStep modules though certain functionality may be missing from LiteStep modules that you may see in native DarkStep modules due to the way the two shells operate. DarkStep is not an open source project though an SDK will be available for module developers with any extra help necessary provided. While it is not an open source project, DarkStep will never be a commercial application either - it is rather what you might term "Donationware" It is completely and utterly free without any restrictions for you to use and distribute but if you like it and would like to send me books, clothes, money, hardware etc as thanks, I will not say no :-) Some might question this attitude in this day and age of open source projects but I have decided to keep this project closed source mostly because of the fact that I've seen the code that I and others worked on for LiteStep for so long being used without a word of thanks or any mention by others in closed source projects. That sort of attitude has soured me on open sourcing and as I worked very hard to shape DarkStep into what it is, I don't want the same thing to happen with DarkStep ... Part 2 - Installation Copy all the files in the distribution zip file into a directory of your choice such as C:\DarkStep. You can use a shell switcher such as LiteSpawn to do all the work of allowing you to switch between DarkStep and Explorer or you can follow the following instructions depending on whether you use Win9x or NT - the procedure for W2K is the same as for NT. a) Win9x: 1) Open the system.ini file to be found in your Windows directory (usually C:\Windows) in a text editor like notepad or type sysedit at the run dialog box. 2) In the [boot] section find the line shell=Explorer.exe 3) Either change the line to shell=C:\DarkStep\darkstep.exe where c:\DarkStep is the path where you have unzipped DarkStep to, or you can put a semicolon (;) in front of shell=Explorer.exe, hit return, and on the new line type shell=C:\DarkStep\darkstep.exe again where C:\DarkStep is the path where you have unzipped DarkStep to. 4) Save the file and either reboot your system or if you have multiple profiles logoff and log back in. b) NT/W2K: 1) To make DarkStep the system wide shell: a) Open up regedit and goto: HKLM\Software\Microsoft\Windows NT\CurrentVersion\WinLogon\Shell b) Change the value from Explorer to DarkStep 2) To make DarkStep the shell for the current user: a) Open up regedit and create the key: HKCU\Software\Microsoft\Windows NT\CurrentVersion\Winlogon\Shell b) Give this new key the value DarkStep. c) In Explorer: 1) Add the line ExplorerNoWarn=on to the step.rc file. 2) Run DarkStep.exe Part 3 - DarkStep specific syntax Within the DarkStep step.rc file all bool values MUST be followed by either on/1 or off/0. If nothing is specified after a boolean command for a native DarkStep module, the setting always defaults to off. The bool values for all LiteStep modules should also be changed in the above manner but always use on in the case of LiteStep modules. If a setting is not specified for a LiteStep module, the setting could be on or off depending on the internal default for that module. ex: NoTaskbar The above example should be changed to "NoTaskbar on" in the case of DarkStep, otherwise a taskbar WOULD be displayed as the internal default is OFF for this particular setting. ex: NoSystray 0 (There WILL be a systray) Part 4 - Step.Rc Explained This section will help you to know what goes where within DarkStep's step.rc. The brackets [] after each boolean value ARE NOT used, they are only there to show you that either on or off is available to you in this area. Also, each DarkStep native module must have its own section. For example, for dstasks.dll, you will need to add a [DSTasks] section to your step.rc. a) [StartUp] Section Your LoadModule lines and core variables are defined in the [StartUp] section. Variables that are represented by bools (0 or 1) need to have either on/1 or off/0 to function. ex: ExplorerNoWarn on (No warning when running in Explorer) 1) Variables o ExplorerNoWarn [on/off] This variable allows for the warning of running DarkStep within the Explorer shell. When the on flag is set, DarkStep will not warn you. When the off flag is set, a popup box will be brought up when you execute DarkStep within the Explorer shell. o HideApplication [on/off] This toggles whether or not you can see DarkStep running in a task manager. When the flag is set on, it will not show up. When the flag is set off, it will show up. o NoSplashScreen [on/off] This toggles whether or not the splashscreen is displayed on bootup of DarkStep. When the flag is set on, there will be no splashscreen. When the flag is set off, a splash screen will show up when you first load DarkStep 2) LoadModule All load module lines go within this section, even LiteStep ones. ex: LoadModule C:\DarkStep\systray.dll ex: LoadModule C:\LiteStep\vwm.dll b) [Environment] Section In the environment section, you define all your E-Variables. E-Variables allow you to define a single word to represent frequently used values such as paths. E-Variables should be in the form of [Variable] [value]. No dollar sign should appear within this section. You can invoke the variable later in the step.rc by doing $[variable]$. You do not need to redefine system environment variables such as PATH, WINDIR or COMSPEC in the [Environment] section but can still use them as if you'd defined them there. Set Variable ex: DSDir c:\DarkStep Usage ex: *Popup "Module Installer" $DSDir$\modinst.exe *Popup "Dos" $COMSPEC$ *Popup "NotePad" $WinDir$\NotePad.Exe c) [Config] Section This section is for all those settings that can't be changed with a recycle. Confused? What that means is, normally you can change a setting in your Step.Rc, recycle and the new setting takes effect - but not so with any of the settings in the [Config] section. The only way for these setting changes to take effect is to quit DarkStep and reload it, or simply reboot your computer. These are the settings that can currently go in this section: o PixmapPath [path] This setting is used to define the path to your image directory, even the ones for LiteStep modules. The line should look something like: PixmapPath C:\DarkStep\Images. o RunScripts [on/off] This is where you specify whether you want to run DarkStep's scripting engine or not. If you set it to off, you will not be able to run any scriptlets nor will the built-in !script !bang be defined. The default for this setting is "off". o ScriptEngine [engine name] You can specify which script engine to use using this setting. Your scriptlets should be written in the scripting language supported by the script engine specified here. If no script engine is defined, jscript will be assumed. d) [Themes] Section This section is used to specify the theming files for DarkStep modules that support config separation into user and themer settings. The settings in this section will be file locations for each module's theme file. e) [LiteStep] Section This is where you will use all of your LiteStep module step.rc commands. All *commands like *Popup and all module calls like LSCommandOnTop should be placed in here. Part 5 - Bang commands Bang commands are commands that are called to do a specific function. An example would be !RUN, this bang command would bring up the run dialog box. o !SCRIPT Runs a scriptlet which is given as a parameter to the command. You have to specify the full path to the scriptlet file and you have to have scripting enabled in the [Config] section for this to work. ex: !SCRIPT C:\DarkStep\test.js o !SHUTDOWN Brings up the windows shutdown dialog box. o !RECYCLE Refreshes DarkStep, modules, and the step.rc. You would use this when you make step.rc changes and wish the changes to take effect. o !LOGOFF Logs you off the current user as if you had selected Log Off Current User within windows. o !QUIT Shuts down darkstep and all running modules. WARNING - Unless you are running a program to catch crashes such as LiteSpawn, you will be left without a shell! o !RUN Brings up the windows run dialog box. o !CASCADEWINDOWS Cascades all running windows on the current virtual window. o !MINIMIZEWINDOWS Mimimizes all running windows on the current virtual window. o !RESTOREWINDOWS Restores all minimized windows on the current virtual window back to the way they were before being minimized. o !UNLOADMODULE Unloads a current running module. ex: !UNLOADMODULE C:\DarkStep\systray.dll o !RELOADMODULE Reloads a module. ex: !RELOADMODULE C:\DarkStep\systray.dll o !ABOUT Brings up a dialog box displaying the current version of DarkStep and all loaded modules. o !SPLASH Displays the DarkStep splash screen. o !BANGLIST Displays a listing of all currently available bang commands from all loaded modules and DarkStep core files. Will not work if !ABOUT dialog box is open. Part 6 - Hotkeys The hotkeys listed below are hard coded core hotkeys only. o ctrl+alt+r Invoking this set of keys brings up the DarkStep Console window. Within this window you can type in !Bang commands and programs. ex: !Splash ex: c:\windows\notepad.exe o F8 By holding down the F8 key on startup or recycle, you will be asked whether to load each module specified in the [StartUp] section individually. Part 7 - Command Line Options The command line options below are hard coded core options only. You can invoke them by typing darkstep.exe -[command here] in a dos prompt, command line program, and/or binding it to another module such as shortcuts. o -nostartup Adding this to a command line startup of DarkStep will disable the loading of startup group programs. ex: c:\darkstep\darkstep - nostartup o -ask Ask whether to load each module specified in the [StartUp] section individually. ex: c:\darkstep\darkstep -ask Part 8 - Bug reports/suggestions There are several ways to get support or to offer suggestions: - You can stop in #ds_help on any EFNet IRC server and ask one of the ops - You can join the support@darkstep.com (http://darkstep.com/mailman/listinfo/support) or general@darkstep.com (http://darkstep.com/mailman/listinfo/general) mailing lists - You can use the web board at www.darkstep.com - You can e-mail me at FahimF@email.com Part 9 - Future Plans I plan to add support for other graphic formats besides BMP. I really hadn't planned beyond that as the 1.0 version of DarkStep was supposed to coincide with the addition of multi-image format support. Then will probably come some form of a GUI configurator and theme switcher if somebody doesn't beat me to it :-) After that, I guess it will all be left to the natural evolution of software Part 10 - Credits/Thanks - MHolmesIV (Bryan Killian) for his IPC code for LiteStep that he allowed me to use in DarkStep - IMatix for their SFL library parts of which I modified to build my Step.Rc reading/writing routines - PaintLib - CodeGuru - BaT (Lapo) for the excellent logo - TinOmen, MorpheusX and jorje for all the help they provided in hammering out a theme compatible Step.Rc format - TinOmen, demigod, Bob Wells, BaT, dethnite and all the other beta testers who've been invaluable in finding bugs before I released DarkStep to the public - Ender and jugg who sat with me on IRC and did a great job of beta testing the final private release before the first public beta - demigod who took my poor attempt at documentation and turned it into this great looking and pretty thorough document that you are reading - Bob Wells who's been invaluable as the man behind the DarkStep.Com domain and who's done an awesome web site for DarkStep at www.darkstep.com Fahim (FahimF@email.com) DarkStep documentation rewritten and formatted by demigod for Fahim Farook. contact: demigod@darkstep.com last updated: 3/13/00 12:18PM