LiteStep

Last updated
LiteStep
Developer(s) The LiteStep Team
Preview release
0.25.0 Alpha / September 2, 2014 [1]
Repository
Written in C and C++
Operating system Microsoft Windows (32-bit)
Type Operating system shell
License GNU General Public License
Website www.lsdev.org   OOjs UI icon edit-ltr-progressive.svg

LiteStep is a Windows Shell replacement for Windows 9x and up, licensed under the terms of the GNU General Public License (GPL).

Contents

LiteStep replaces the Windows Shell which provides access to the graphical user interface on Windows-based computers. Depending on the theme used, it can replace or remove shell elements, such as the start menu and taskbar. It can also be used to create informational-type displays. Aside from the core executable, LiteStep is made up of modules, some of which are included with the initial installation. Other modules, which a theme may require to function properly, are automatically downloaded. The modules and core provide users with the ability to create anything from minimal environments, to elaborate and heavily scripted desktops. Customizations are provided in the form of themes, which may be created or modified with a text editor. A theme for LiteStep is a collection of configurations, scripts, and/or images which are distributed in a file with the zip or lsz extension. The lsz file extension is a renamed zip file, which is associated with the LiteStep Theme Installer.

History

LiteStep was inspired by AfterStep, which in turn was inspired by NeXTSTEP. [2] [3] LiteStep was initially developed by Francis Gastellu as a closed-source project until April 1998 (version b23), and was then entirely rewritten (versions 24 and up). LiteStep later inspired DarkStep, [4] which supports scripting, and PureLS. LiteStep also inspired Phil Stopford in 1999 to start LDE(X), [5] which was a complete and production-stable LiteStep-based Windows interface replacement. LiteStep is one of the oldest remaining Windows shell replacements.

LiteStep skinned to look like Ubuntu. Ubuntu litestep theme.PNG
LiteStep skinned to look like Ubuntu.

Over time, and due to the rise of popularity in freeform skinning, LiteStep desktop designs have tended to drift away from the AfterStep layouts seen under pre-0.24 versions, and LiteStep theming has become an art form in itself, being referred to as an "OS equivalent of an expandable Leatherman multi-tool". [6]

Example

Theme.rc

The following is an example of an OTS2 theme.rc configuration file to be loaded at LiteStep's execution. OTS2 is the second generation of the Open Theme Standard, which is to be followed for themes to be compatible with the LiteStep structure. [7] The theme.rc file is the entry point for all LiteStep themes.

;Lines preceded by a semicolon are not parsed by the LiteStep core.  ;This indicates to the LiteStep core that the theme is OTS2 compliant. OTSMajorVersion 2 OTSMinorVersion 0  ThemeName   "Name of Theme Here" ThemeAuthor "Name of Author Here"  ; This defines a variable named "ConfigDir" to shorten defining where configuration files are located, in the next section. ConfigDir   "$ThemeDir$Config\"  ;The "Include" command tells the LiteStep core to parse the defined file. Configuration files are defined at the user's disrection for organization purposes. Include     "$ConfigDir$themevars.rc" Include     "$ConfigDir$xlabel.rc" Include     "$ConfigDir$lsxcommand.rc" Include     "$ConfigDir$xpopup.rc" Include     "$ConfigDir$xtaskbar.rc" Include     "$ConfigDir$xtray.rc" Include     "$ConfigDir$vwm.rc"  ;*NetLoadModule module-ver# tells the NetLoadModule2.dll to load the following modules for use with the loaded theme. *NetLoadModule  jdesk-0.75 *NetLoadModule  xpopup-2.1 *NetLoadModule  lsxcommand-2.0.2 *NetLoadModule  rabidvwm-1.2.2 *NetLoadModule  xtray-2.2.2 *NetLoadModule  xtaskbar-2.3.4 *NetLoadModule  xlabel-4.3

Explanation

The LiteStep interface is composed of modules, most having the extension .dll. They are loaded by themes through a text configuration file named theme.rc. To load different modules you would write a line like this, to invoke LiteStep's NetLoadModule.dll:

*NetLoadModule ModuleName-version#

NetLoadModule.dll is itself a module that is loaded in a default LiteStep setup. The command *NetLoadModule tells NetLoadModule.dll to load a module for use in the current theme.

LiteStep and its themes rely on variables, with many already hardcoded into the core. Variables are surrounded with $...$. $LiteStepDir$, for example, is the directory that litestep.exe resides in.

Other variables can be manually set by writing a line in any configuration file like this:

Firefox     "C:\progra~1\Mozill~1\firefox.exe"

You could then use the variable $Firefox$ instead of the full path to the executable.

Module configurations can span over different files for the sake of organization. The command "include," seen below, tells LiteStep to load the specified file. The variable $ThemeDir$ is the directory of the theme being currently used. Put together with "Config\someconfig.rc" will result in the settings of file someconfig.rc being loaded from \Theme\Config\someconfig.rc.

include "$ThemeDir$Config\someconfig.rc"

Modules are what make LiteStep look and behave the way you want it to. There are graphical modules that are used to build GUI elements and non-graphical modules used to create hotkeys, watch window classes for scripted events, and create LiteStep-specific commands called !bang commands. !bang commands are a way to execute event-driven functions within a given theme. These commands can reference files, folders, namespaces, executables, or elements of the theme itself. Many !bang commands are hardcoded into the LiteStep core, and others may be provided through user scripts or through the currently loaded modules. Bangs are the primary way you control the modules. !bangs can be triggered through a hotkey, popup menu, shortcut, or through module-specific events.

Some of the most popular modules include:

See also

Notes

  1. 2014-09-02 experimental build , retrieved 2014-12-09
  2. LiteStep Development
  3. AfterStep
  4. "DarkStep Inspiration", Wired
  5. LDE(X), archived from the original on 2005-01-28
  6. "GUIs Just Want to Have Fun", Wired
  7. Open Theme Standard

Related Research Articles

<span class="mw-page-title-main">GNU GRUB</span> Boot loader package

GNU GRUB is a boot loader package from the GNU Project. GRUB is the reference implementation of the Free Software Foundation's Multiboot Specification, which provides a user the choice to boot one of multiple operating systems installed on a computer or select a specific kernel configuration available on a particular operating system's partitions.

An environment variable is a user-definable value that can affect the way running processes will behave on a computer. Environment variables are part of the environment in which a process runs. For example, a running process can query the value of the TEMP environment variable to discover a suitable location to store temporary files, or the HOME or USERPROFILE variable to find the directory structure owned by the user running the process.

<span class="mw-page-title-main">Windows 9x</span> Series of Microsoft Windows computer operating systems

Windows 9x is a generic term referring to a series of Microsoft Windows computer operating systems produced from 1995 to 2000, which were based on the Windows 95 kernel and its underlying foundation of MS-DOS, both of which were updated in subsequent versions. The first version in the 9x series was Windows 95, which was succeeded by Windows 98 and then Windows Me, which was the third and last version of Windows on the 9x line, until the series was superseded by Windows XP.

<span class="mw-page-title-main">Configuration file</span> Software file used to configure the initial settings for a computer program

In computing, configuration files are files used to configure the parameters and initial settings for some computer programs. They are used for user applications, server processes and operating system settings.

Btrieve is a transactional database software product. It is based on Indexed Sequential Access Method (ISAM), which is a way of storing data for fast retrieval. There have been several versions of the product for DOS, Linux, older versions of Microsoft Windows, 32-bit IBM OS/2 and for Novell NetWare.

CONFIG.SYS is the primary configuration file for the DOS and OS/2 operating systems. It is a special ASCII text file that contains user-accessible setup or configuration directives evaluated by the operating system's DOS BIOS during boot. CONFIG.SYS was introduced with DOS 2.0.

AUTOEXEC.BAT is a system file that was originally on DOS-type operating systems. It is a plain-text batch file in the root directory of the boot device. The name of the file is an abbreviation of "automatic execution", which describes its function in automatically executing commands on system startup; the filename was coined in response to the 8.3 filename limitations of the FAT file system family.

<span class="mw-page-title-main">Windows Registry</span> Database for Microsoft Windows

The Windows Registry is a hierarchical database that stores low-level settings for the Microsoft Windows operating system and for applications that opt to use the registry. The kernel, device drivers, services, Security Accounts Manager, and user interfaces can all use the registry. The registry also allows access to counters for profiling system performance.

thinBasic is a BASIC-like computer programming language interpreter with a central core engine architecture surrounded by many specialized modules. Although originally designed mainly for computer automation, thanks to its modular structure it can be used for wide range of tasks.

In computer science, a static library or statically-linked library is a set of routines, external functions and variables which are resolved in a caller at compile-time and copied into a target application by a compiler, linker, or binder, producing an object file and a stand-alone executable. This executable and the process of compiling it are both known as a static build of the program. Historically, libraries could only be static. Static libraries are either merged with other static libraries and object files during building/linking to form a single executable or loaded at run-time into the address space of their corresponding executable at a static memory offset determined at compile-time/link-time.

Dynamic-link library (DLL) is Microsoft's implementation of the shared library concept in the Microsoft Windows and OS/2 operating systems. These libraries usually have the file extension DLL, OCX, or DRV . The file formats for DLLs are the same as for Windows EXE files – that is, Portable Executable (PE) for 32-bit and 64-bit Windows, and New Executable (NE) for 16-bit Windows. As with EXEs, DLLs can contain code, data, and resources, in any combination.

In computing, a dynamic linker is the part of an operating system that loads and links the shared libraries needed by an executable when it is executed, by copying the content of libraries from persistent storage to RAM, filling jump tables and relocating pointers. The specific operating system and executable format determine how the dynamic linker functions and how it is implemented.

The booting process of Windows NT is the process run to start Windows NT. The process has been changed between releases, with the biggest changes being made with Windows Vista. In versions before Vista, the booting process begins when the BIOS loads the Windows NT bootloader, NTLDR. Starting with Vista, the booting process begins with either the BIOS or UEFI load the Windows Boot Manager, which replaces NTLDR as the bootloader. Next, the bootloader starts the kernel, which starts the session manager, which begins the login process. Once the user is logged in, File Explorer, the graphical user interface used by Windows NT, is started.

In computer programming, DLL injection is a technique used for running code within the address space of another process by forcing it to load a dynamic-link library. DLL injection is often used by external programs to influence the behavior of another program in a way its authors did not anticipate or intend. For example, the injected code could hook system function calls, or read the contents of password textboxes, which cannot be done the usual way. A program used to inject arbitrary code into arbitrary processes is called a DLL injector.

In computing, a hidden folder or hidden file is a folder or file which filesystem utilities do not display by default when showing a directory listing. They are commonly used for storing user preferences or preserving the state of a utility and are frequently created implicitly by using various utilities. They are not a security mechanism because access is not restricted – usually the intent is simply to not "clutter" the display of the contents of a directory listing with files the user did not directly create.

The booting process of Microsoft Windows varies between different releases.

<span class="mw-page-title-main">PowerShell</span> Cross-platform command-line interface and scripting language for system and network administration

PowerShell is a task automation and configuration management program from Microsoft, consisting of a command-line shell and the associated scripting language. Initially a Windows component only, known as Windows PowerShell, it was made open-source and cross-platform on August 18, 2016, with the introduction of PowerShell Core. The former is built on the .NET Framework, the latter on .NET.

Side-by-side assembly technology is a standard for executable files in Windows 98 Second Edition, Windows 2000, and later versions of Windows that attempts to alleviate problems that arise from the use of dynamic-link libraries (DLLs) in Microsoft Windows. Such problems include version conflicts, missing DLLs, duplicate DLLs, and incorrect or missing registration. In side-by-side, Windows stores multiple versions of a DLL in the %systemroot%\WinSxS directory, and loads them on demand. This reduces dependency problems for applications that include a side-by-side manifest.

<span class="mw-page-title-main">Architecture of Windows 9x</span>

The Windows 9x series of operating systems refers to the monolithic kernel which powers these operating systems. The basic code is similar in function to MS-DOS. As a 16-/32-bit hybrid, it requires support from MS-DOS to operate.

ASP.NET Web Forms is a web application framework and one of several programming models supported by the Microsoft ASP.NET technology. Web Forms applications can be written in any programming language which supports the Common Language Runtime, such as C# or Visual Basic. The main building blocks of Web Forms pages are server controls, which are reusable components responsible for rendering HTML markup and responding to events. A technique called view state is used to persist the state of server controls between normally stateless HTTP requests.