# Workbench (AmigaOS)

Workbench is the desktop environment and graphical file manager of AmigaOS developed by Commodore International for their Amiga line of computers. Workbench provides the user with a graphical interface to work with file systems and launch applications. It uses a workbench metaphor (in place of the more common desktop metaphor) for representing file system organisation.
"Workbench" was also the name originally given to the entire Amiga operating system up until version 3.1. From release 3.5 the operating system was renamed "AmigaOS" and subsequently "Workbench" refers to the native file manager only.

## Overview

Timeline of Workbench :
| 1985 | Workbench 1.0 |
| 1986–1987 |
| 1988 | Workbench 1.3 |
| 1989 |
| 1990 | Workbench 2.0 |
| 1991 |
| 1992 | Workbench 2.1 |
| 1992 | Workbench 3.0 |
| 1993 |
| 1994 | Workbench 3.1 Commodore's last release |
| 1995 |
| 1996 | Workbench 3.1 Re-release by Escom |
| 1997–1998 |
| 1999 | Amiga OS 3.5 |
| 2000 | Amiga OS 3.9 |
| 2001–2005 |
| 2006 | Amiga OS 4.0 |
| 2007–2020 |
| 2021 | Amiga OS 3.2 |
The Amiga Workbench uses the metaphor of a workbench (i.e. a workbench for manual labor), rather than the now-standard desktop metaphor, for representing file system organization. The desktop itself is called Workbench and uses the following representations: drawers (instead of folders) for directories, tools for executable programs, projects for data files, and a trash can as a folder intended to contain deleted files. These representations may be considered somewhat unusual by a modern user, but at the time there were no commonly accepted metaphors and Commodore chose to use different idioms from their competitors (Apple had already pursued legal action to prevent other software companies from offering graphical user interfaces similar to its own). Workbench is a spatial file manager in the sense that it uses a spatial metaphor to represent files and folders as if they are real physical objects. Under this concept, each drawer (folder) opens in its own window, rather than within a single browser under the now more common navigational concept.
Workbench utilizes the Amiga's native windowing system called Intuition to provide the graphical user interface. Intuition manages the rendering of screens, windows, and gadgets (graphical elements, equivalent to widgets). Later versions of AmigaOS enhanced the interface with more complex object-oriented widget systems, such as gadtools.library and BOOPSI (AmigaOS 2.0 and later) and ReAction (AmigaOS 3.5 and later). Intuition also handles user input events, such as, input from the keyboard and mouse. Workbench requires a two button mouse, where right click operates pull-down menus and left click is used for all other purposes.
The underlying AmigaOS allows the Workbench to launch multiple applications that can execute concurrently. This is achieved through Exec, the Amiga's multi-tasking kernel, which handles memory management, message passing, and task scheduling. Applications launched from Workbench could report their success back to Workbench, but this was not a requirement and few actually did. Workbench itself has always been a disk-based component, though much of the underlying functionality is stored in the Amiga's Kickstart firmware, usually stored in ROM. As a consequence, it is necessary to boot from a system disk to launch Workbench. This setup streamlines the process of launching games (which typically do not require Workbench) and ensures that memory is not used unnecessarily by the OS in memory-limited systems. Workbench was shipped with all Amiga models from Commodore. Workbench was provided either on floppy disk or later (as part of AmigaOS) on CD-ROM. Initially, Workbench was designed to be launched and operate from floppy disk (or other removable media). Later versions could be installed on hard disk, for which an installer was developed for use with AmigaOS 2.0 and later. AmigaOS (including Workbench) often came pre-installed on systems shipped with hard disks.

## Versions

Up until and including release 3.1 of the Amiga's operating system, Commodore itself used the specific term Workbench to refer to the entire Amiga operating system of itself – Distinctively, AmigaDOS was more referred to specifically in connexion with the Amiga's Command-line interface CLI, called Shell. As a consequence Workbench was commonly used to refer to both, the operating system and the file manager component. For end users, Workbench was often synonymous with the Amiga's OS.
Notably from the first versions of 3rd-party releases from licenced contractors like version 3.5 onwards, the OS was successively called "AmigaOS" and pre-3.5 versions may also retroactively referred to as "AmigaOS" (rather than Workbench). Subsequently, "Workbench" refers to the native graphical file manager only, in contrast to the Amiga's ROM-located parts of the OS in its "Kickstart".
From its inception, Workbench offered a highly customizable interface. The user could change the aspect of program icons replacing it with newer ones with different color combinations. Users could also take a "snapshot" of icons and windows so the icons will remain on the desktop at coordinates chosen by user and windows will open at the desired size.

### Workbench 1.x

Workbench 1.0 was released with the first Amiga, the Amiga 1000, in 1985. The 1.x versions of Workbench used a blue-and-orange color scheme, designed to give high contrast on even the worst of television screens (the colors can be changed by the user). Versions 1.1 consists mostly of bug fixes and, like version 1.0, was distributed for the Amiga 1000 only.
The display was highly customizable for the era. The user was free to create and modify system and user icons, while Atari TOS featured only default system icons whose appearance could not be modified and customizing icons on the Macintosh required using ResEdit. Icons can be of arbitrary size and design and can have two image states to produce a pseudo-animated effect when selected. Users could customize four display colors and choose from two resolutions: 640×200 or 640×400 (interlaced) on NTSC, or 640×256 or 640×512 on PAL systems. In later revisions, the TV or monitor overscan could be adjusted.
Several features were deprecated in later versions. For example, the gauge meter showing the free space on a file system was replaced with a percentage in Workbench 2.0. Under Workbench 1.x, right clicking on icons opens a display of the files metadata, whereas from Workbench 2.0 right clicking activates pull-down menus only. The default "busy" pointer (a comic balloon showing "Zzz...") was replaced with a stopwatch in later versions.

### Workbench 2.0, 2.1

Workbench 2.0 was released with the launch of the Amiga 3000 in 1990. Until AmigaOS 2.0 there was no unified look and feel design standard and application developers had to write their own widgets (both buttons and menus) if they wished to enhance the already-meager selection of standard basic widgets provided by Intuition. With Workbench 2.0 gadtools.library was created, which provided standard widget sets. The Amiga User Interface Style Guide, was published which explained how applications should be laid out for consistency. Intuition was improved with BOOPSI (Basic Object Oriented Programming system for Intuition) which enhanced the system with an object-oriented interface to define a system of classes in which every class individuate a single widget or describes an interface event. It can be used to program object oriented interfaces into Amiga at any level. As of Workbench 2.0 all files became visible as icons without the need of associated .info files, thus streamlining the process of starting executables in the GUI.
Workbench 2.0 also added support for public screens. Instead of the Workbench screen being the only shareable screen, applications could create their own named screens to share with other applications.
Workbench 2.0 included and integrated ARexx, allowing users to control the system and other programs from user scripts.
Workbench 2.0 introduced AmigaGuide, a simple text-only hypertext markup scheme and browser, for providing online help inside applications. It also introduced Installer, a standard software installation program, driven by a LISP-like scripting language.
Finally, Workbench 2.0 rectified the problem of applications hooking directly into the input-events stream to capture keyboard and mouse movements, sometimes locking up the whole system. Workbench 2.0 provided Commodities, a standard interface for modifying or scanning input events. This included a standard method for specifying global "hotkey" key-sequences, and a Commodities Exchange registry for the user to see which commodities were running.

### Workbench 3.0, 3.1

Version 3.0 was originally shipped with the Amiga 1200 and Amiga 4000 computers. Version 3.0 added datatype support and Workbench could load any background image in any format, as long as the required datatype was installed. This feature was also used in Multiview. Its capabilities were directly related to the datatypes installed in Devs:Datatypes. Localisation was added to allow Workbench, and any installed programs that had localization, to appear in any supported language. The established AmigaGuide hypertext system gained more usability by using document links pointing to mediafiles, for example pictures or sounds, all recognized by the datatypes.

### Workbench 3.5, 3.9

Following Commodore's demise and around six years after Workbench 3.1 was released, Haage & Partner were commissioned to update AmigaOS, which was released in 1999 as a software-only update for existing m68k-systems with at least a 68020.
The Workbench look and feel, though still largely based on the earlier 3.1 release, was revised somewhat, with an improved user interface based on ReAction, improved icon rendering and official support for true color backdrops. These releases included support for existing third-party GUI enhancements, such as NewIcons, by integrating these patches into the system. The 3.5 and 3.9 releases included a new set of 256-color icons and a choice of desktop wallpaper. These replaced the default all-metal gray 4/8 color scheme used on AmigaOS from release 2.0 to 3.1.
The 3.9 release of Workbench was again developed by Haage&Partner and released in 2000. The main improvements were the introduction of a program start bar called AmiDock, revised user interfaces for system settings and improved utility programs.

### Workbench 4.0, 4.1

This new Workbench, called Workbench 4.0, has been rewritten to become fully PowerPC compatible. It was part of AmigaOS 4.0, and released in 2006. Since the fourth Developer Pre-Release Update screens are now draggable in any direction. Drag and drop of Workbench icons between different screens is also possible.
Additionally, Workbench 4.0 includes a new version of Amidock, TrueType/OpenType fonts and movie player with DivX and MPEG-4 support.
In AmigaOS 4.1, a new Startup preferences feature was added which replaced the WBStartup drawer. Additional enhancements include: a new icon set to complement higher screen resolutions, new window themes including drop shadows, AmiDock with true transparency, scalable icons, and a Workbench auto-update feature.

## Workbench icons

The icons that Workbench uses to represent the files in a volume or a drawer are stored in special .info files, with the name of the .info file matching the name of the file it represents. For example, the icon for NotePad, a text editor, is found in the file NotePad.info. This .info extension is the only file extension required by AmigaOS.
The .info file contains the icon image and its spatial position within its parent window. The icon also specifies the type of the file, as used by Workbench. Workbench recognises five different file types:
* Tool: An executable program.
* Project: A data file of an executable program. The program which created the file is named in the icon file; double-clicking on the icon loads the program that created it.
* Drawer: A directory containing files, and other drawers.
* Volume: A physical disk or a RAM disk.
* Garbage: The Trashcan – a deleted file backup, which works in a similar way to the 'Recycle bin' in Microsoft Windows.
An additional three file types are available and are intended for future expansion:
* Device: designed for displaying information about attached devices.
* Kick: The icon of a bootable disk.
* App Icon: An icon which will be used as (part of) the GUI for an application.
Of these three file types, only "App Icons" currently are used by any part of Workbench/AmigaOS.
While an icon may represent or suggest a file type, the type of the related file is specified by its very own properties, along with the restrictions (AmigaDOS: protection flags) given to this file. For example, if you add a tool icon to a text document file, AmigaOS will tell you the file "is not executable" or "is not of required type" as it has no 'e'-protection-flag (AmigaDOS: Hold, Script, Pure, Archived, Read, Writeable, Executable, Deletable) nor does it have the startup header of an executable. Also, stripping an 'application' from its counterpart icon file (application.info) will not render this application useless; it still remains executable, it will run, only missing the (required) options and arguments delivered from workbench via icons "tool types", e.g. stack size, public screen, etc.
Starting in Workbench 2.x, a file without a .info counterpart (such as a file on non-native media) is represented by the default system icon for one of the five types listed above. These default icons are also customizable. Icon-less files are only displayed in this manner if the drawer is configured to [Show All Files] – if this option is not set (which is the case in Workbench 1.x), such files will not appear at all and can only be seen from a CLI.
Tool (application) files can include "tool types" in the .info file. These are used as configuration options for the program. Each tool type is a single line of text, which can optionally include parameters written after an = sign. Tool types can be commented out by writing them in parentheses. For example, the tooltype "CX_POPKEY=ctrl alt f1" defines that the application (a Commodity) will activate the user interface in response to the key sequence Ctrl-Alt-F1.
The colours used in the icon are normally only stored as indices to the Amiga Workbench screen's current palette. Because of this, the icons' colour scheme is inherently tied to the chosen hues in the screen's palette, and choosing non-standard colours can give the icons an ugly appearance. This problem was partly solved by a third-party system called NewIcons, which adds additional features to the standard .info files. Unlike normal Workbench icons, NewIcons include actual RGB colour information, and the system tries its best to match the icons' colour hues to those in the screen palette.
Since AmigaOS 3.5, Workbench supports icons with up to 256 colors. This release of AmigaOS features the GlowIcons icon set by Matt Chaput. With AmigaOS 3.5, a screen-palette-independent system is used. The 4.0 icons, designed by Martin Merz, can use a 24-bit palette.
Both AROS and MorphOS support PNG icons natively. PNG allows using full 24-bit palette with alpha blending. On Amiga Workbench PNG icons are supported through plugins.

## Comparison to other file managers

In comparison to the competing Mac OS and Atari, the early Amiga Workbench (pre-Workbench 2.04) featured, as the default, a 4 color blue desktop screen with color icons at 640 × 200 NTSC American standard or 640 × 256 on European PAL television sets, in contrast to the 512 × 342 black and white interface presented by the Mac. The Amiga user was also free to create and modify system and program icons, while Atari TOS featured only default system icons whose appearance could not be modified.
Workbench contributed many other unique features/philosophies to intuitive GUI design (starting with version 2.04/2.1):
* Menu item indenting, which immediately indicated the item was a "toggle" function, eliminating guesswork for the user.
* The concept of tri-level information using bevel shading to simulate a 3d appearance. Indented controls indicated information-only text, surface-level controls represented labels for GUI elements, and raised GUI elements indicated data editable by, or interactive with, the user.
* Much like the "File" and "Edit" menus became standard on most GUIs, Workbench implemented the concept of a "Settings" menu designed to standardize the location for all options within an application.
* Standardized buttons for OS-level preferences or settings dialog boxes through "Save", "Use", and "Cancel" provided a simple and consistent means for short- and long-term settings use.
* Standardized preference settings for user-level import and export through a ".prefs" extension and file format.
* Commodities Exchange: a consistent programming standard and GUI for easy launch, control, and removal of all TSRs or background-process utilities/mini-apps.
* Datatypes: a modular and user-customizable data identification system that the OS used to recognize, launch, edit, and provide a means of importing and exporting data between OS and applications alike.
* Locale: an OS and application-wide GUI that provided the means for implementing user-selectable language, time, and other locale-specific settings.

## Criticisms

The freedom in customization and the multitude of color settings and aspects available to the user were sometimes seen as chaotic. Customization permitted icons of a vastly different size and appearance than those of the original system icons. Before Workbench 2.0, there were no user interface design guidelines, so the look and feel of menu options could be different from one application to the next (i.e. the layout of basic items like Load, Save, Open, Close, Quit, etc.). This was seen as a problem with the Amiga by its detractors. The historical GUI site GUIdebook calls Amiga Workbench a "unique (if slightly chaotic) GUI for Amiga machines".

## Use in fictional media

The Ren'Py visual novel Digital: A Love Story uses an Amiga Workbench 1.0 design (known as Amie Workbench within the game).