Virtual desktop

Last updated
Virtual desktops rendered as the faces of a cube.

In this example a Unix-like operating system is using the X windowing system and the Compiz cube plugin to decorate the KDE desktop environment. Compiz-fusion-3d-desktop-cube.png
Virtual desktops rendered as the faces of a cube.

In this example a Unix-like operating system is using the X windowing system and the Compiz cube plugin to decorate the KDE desktop environment.

In computing, a virtual desktop is a term used with respect to user interfaces, usually within the WIMP paradigm, to describe ways in which the virtual space of a computer's desktop environment is expanded beyond the physical limits of the screen's display area through the use of software. This compensates limits of the desktop area and is helpful in reducing clutter of running graphical applications.

Contents

There are two major approaches to expanding the virtual area of the screen. Switchable virtual desktops allow the user to make virtual copies of their desktop view-port and switch between them, with open windows existing on single virtual desktops. Another approach is to expand the size of a single virtual screen beyond the size of the physical viewing device. Typically, scrolling/panning a subsection of the virtual desktop into view is used to navigate an oversized virtual desktop.

Overview

Switching desktops

Switchable desktops were designed and implemented at Xerox PARC as "Rooms" by Austin Henderson and Stuart Card in 1986 [1] and (unknowingly to the authors until their publication) was conceptually similar to earlier work by Patrick Peter Chan in 1984. This work was covered by a US patent. [2]

Switchable desktops were introduced to a much larger audience by Tom LaStrange in swm (the Solbourne Window Manager, for the X Window System) in 1989. ("Virtual Desktop" was originally a trademark of Solbourne Computer.) [3] Rather than simply being placed at an x, y position on the computer's display, windows of running applications are then placed at x, y positions on a given virtual desktop “context”. They are then only accessible to the user if that particular context is enabled. A switching desktop provides a pager for the user to switch between "contexts", or pages of screen space, only one of which can be displayed on the computer's display at any given time. Several X window managers provide switching desktops.

Oversized desktops

Other kinds of virtual desktop environments do not offer discrete virtual screens, but instead make it possible to pan around a desktop that is larger than the available hardware is capable of displaying. This facility is sometimes referred to as panning, scrolling desktops or view-port. For example, if a graphics card has a maximum resolution that is higher than the monitor's display resolution, the virtual desktop manager may allow windows to be placed "off the edge" of the screen. The user can then scroll to them by moving the mouse pointer to the edge of the display. The visible part of the larger virtual screen is called a viewport.

Implementation

Virtual desktop managers are available for most graphical user interface operating systems and offer various features, such as placing different wallpapers for each virtual desktop and use of hotkeys or other convenient methods to allow the user to switch amongst the different screens.

Amiga

The first platform to implement multiple desktop display as a hardware feature was Amiga 1000, released in 1985. All Amigas supported multiple in-memory screens displayed concurrently via the use of the graphics co-processor, AKA the "Copper". The Copper was a simple processor that could wait for a screen position and write to hardware registers. Using the GUI implemented in system ROM API's, programs could transparently display multiple independent screens, from non-consecutive memory, without moving the memory. This hardware-based scrolling does not use blitting, but something more like what is sometimes called hardware panning. The video output is simply told (once, or many times) where to display (scanline) and from what screen memory address. A screen can move to any position, or display any portion, by modifying the wait, or fetch position. Typically a single byte value. The Copperlist did need to be sorted in vertical and horizontal wait position in order to function. Note: See http://www.faqs.org/faqs/amiga/books/ for a list of reference material.

Each desktop or 'screen' could have its own colour depth (number of available colours) and resolution, including use of interlacing. The display chipset ('graphics card' on a PC) could switch between these desktop modes on the fly, and during the drawing of a single screen, usually with three pixel deep line between each desktop shown on the screen. However, if one interlaced (flickering) desktop was displayed, all desktops onscreen would be similarly affected.

This also allowed the OS to seamlessly mix "Full Screen" and Windowed "desktop"-style applications in a single environment.

Some programs, VWorlds [4] (an astronomy simulator) being an example, used the multiple desktops feature to overlay a set of controls over the main display screen. The controls could then be dragged up and down in order to show more or less of the main display.

Unix and Unix-like with X11 or Wayland

Dynamic virtual desktops in GNOME Shell v40. Workspaces are automatically added or deleted as the existing ones are respectively consumed or freed. GNOME Shell v40 showing workspaces in overview mode.png
Dynamic virtual desktops in GNOME Shell v40. Workspaces are automatically added or deleted as the existing ones are respectively consumed or freed.

Almost all Unix and Unix-like systems use either the X Window System or the Wayland protocol to provide their windowing environment, with the latter becoming more prevalent on Linux-based systems as of the early 2020s. These systems are unique in that the decoration, placement, and management of windows are handled by a separate, replaceable program known as a window manager on the former or a compositor on the latter. This separation allowed third-party developers to introduce a host of different window manager features, resulting in the early development of virtual desktop capabilities in X. The first implementation of virtual desktops for Unix was vtwm in 1990. IXI Limited's Panorama was an early example of a commercial virtual desktop product for Unix. [5] Many of today's X window managers and Wayland compositors now include virtual desktop capabilities.

Configurations range from as few as two virtual desktops to several hundred. The most popular desktop environments, GNOME and KDE, use multiple virtual desktops called workspaces. These may exist in a fixed number or be created on the fly as they are populated. Some window managers, like FVWM, offer separate "desks" that allow the user to organize applications even further. For example, a user may have separate desks labeled "Work" and "Home", with the same programs running on both desks, but fulfilling different functions. Some window managers such as dwm and Sawfish support "tagging" (or window rules for KDE) where applications can be configured to always launch on a particular desktop, screen, and position, supporting automatic organization and consistent navigation.

OS/2

IBM's personal computer OS/2 operating system included multiple desktops (up to 4 natively) in the OS/2 Warp 4 release in 1996. This functionality has also been provided by the open source XWorkplace project, with support for up to 100 virtual desktops. XWorkplace is included with the ArcaOS distribution of OS/2. [6]

Windows

Virtual desktop in Windows 11 showing four open apps in the same desktop, with a thumbnail showing another desktop Virtual Desktops in Windows 11.png
Virtual desktop in Windows 11 showing four open apps in the same desktop, with a thumbnail showing another desktop

Windows 10 and 11 offer virtual desktops through a system known as "Task View". [7] [8]

Prior to Windows 10, Microsoft Windows did not implement virtual desktops natively in a user-accessible way. There are objects in the architecture of Windows known as "desktop objects" that are used to implement separate screens for logon and the secure desktop sequence (Ctrl+Alt+Delete). There is no native and easy way for users to create their own desktops or populate them with programs. [9] However, there are many third-party (e. g. VirtuaWin, Dexpot and others) and some partially supported Microsoft products that implement virtual desktops to varying degrees of completeness.

Microsoft offers a utility called Desktops which allows users running Windows Vista or Windows Server 2008 or later operating systems to run applications on up to 4 virtual desktops. Unlike nearly all other virtual desktop solutions for Windows, this utility actually uses native "desktop objects," as discussed above. Because of this, it does not offer the ability to move programs between desktops, or in fact to stop using virtual desktops at all, short of logging off, [10] and Windows Aero only works on the primary desktop object.

Microsoft had previously provided a Virtual Desktop PowerToy for Windows XP, which simulates many desktops with the more common method of hiding and showing windows in groups, each group being a different desktop. However, the functionality provided is less comprehensive than that of many other virtual desktop solutions (e. g. maintain a window in a given desktop even when its application bar button flashes, etc.). As with all virtual desktop utilities that work by hiding and showing windows, application compatibility problems are common, because application developers do not expect virtual desktops to be in use on the Windows platform.

Historically, software packaged with some video card drivers provided virtual desktop functionality, such as in Nvidia's nView product (this product has been discontinued for GeForce card owners since Vista). Some of these programs provide eye-candy features similar to those available on Compiz.

Many desktop shell replacements for Windows, including LiteStep, Emerge Desktop and others, also support virtual desktops via optional modules.

Classic Mac OS

On the classic Mac OS, scrolling desktops were made available to Macintosh users by a 3rd party extension called Stepping Out created by Wes Boyd (the future founder of Berkeley Systems) in 1986. The code for this extension was integrated by Apple into a later version of the Mac OS, although the ability to create virtual desktops larger than the screen was removed. The code was used instead as an assist for visually impaired users to zoom into portions of the desktop and view them as larger, more easily discerned images.

macOS

Despite its Unix underpinnings, macOS does not use the X Window System for its GUI, and early versions had no provision for virtual desktops. Beginning with Mac OS X 10.5 Leopard in late 2007, macOS has shipped with native virtual desktop support, called Spaces, which allows up to 16 virtual desktops. It allows the user to associate applications with a particular "Space". As of OS X 10.7 Lion, this functionality has been moved into Mission Control.

BeOS

BeOS included an implementation of virtual desktops called "Workspaces". Up to 32 different Workspaces were supported.

Related Research Articles

<span class="mw-page-title-main">Graphical user interface</span> User interface allowing interaction through graphical icons and visual indicators

A graphical user interface, or GUI, is a form of user interface that allows users to interact with electronic devices through graphical icons and visual indicators such as secondary notation. In many applications, GUIs are used instead of text-based UIs, which are based on typed command labels or text navigation. GUIs were introduced in reaction to the perceived steep learning curve of command-line interfaces (CLIs), which require commands to be typed on a computer keyboard.

<span class="mw-page-title-main">History of the graphical user interface</span>

The history of the graphical user interface, understood as the use of graphic icons and a pointing device to control a computer, covers a five-decade span of incremental refinements, built on some constant core principles. Several vendors have created their own windowing systems based on independent code, but with basic elements in common that define the WIMP "window, icon, menu and pointing device" paradigm.

<span class="mw-page-title-main">Operating system</span> Software that manages computer hardware resources

An operating system (OS) is system software that manages computer hardware and software resources, and provides common services for computer programs.

<span class="mw-page-title-main">X Window System</span> Windowing system for bitmap displays on UNIX-like systems

The X Window System is a windowing system for bitmap displays, common on Unix-like operating systems.

In computing, a desktop environment (DE) is an implementation of the desktop metaphor made of a bundle of programs running on top of a computer operating system that share a common graphical user interface (GUI), sometimes described as a graphical shell. The desktop environment was seen mostly on personal computers until the rise of mobile computing. Desktop GUIs help the user to easily access and edit files, while they usually do not provide access to all of the features found in the underlying operating system. Instead, the traditional command-line interface (CLI) is still used when full control over the operating system is required.

<span class="mw-page-title-main">X window manager</span> Type of window manager

An X window manager is a window manager that runs on top of the X Window System, a windowing system mainly used on Unix-like systems.

<span class="mw-page-title-main">Windowing system</span> Software that manages separately different parts of display screens

In computing, a windowing system is a software suite that manages separately different parts of display screens. It is a type of graphical user interface (GUI) which implements the WIMP paradigm for a user interface.

<span class="mw-page-title-main">Mission Control (macOS)</span> Feature of the macOS operating system

Mission Control is a feature of the macOS operating system. Dashboard, Exposé, and Spaces were combined and renamed Mission Control in 2011 with the release of Mac OS X 10.7 Lion. Exposé was first previewed on June 23, 2003, at the Apple Worldwide Developers Conference as a feature of the then forthcoming Mac OS X 10.3 Panther.

The taskbar is a graphical user interface element that has been part of Microsoft Windows since Windows 95, displaying and facilitating switching between running programs. The taskbar and the associated Start Menu were created and named in 1993 by Daniel Oran, a program manager at Microsoft who had previously collaborated on great ape language research with the behavioral psychologist B.F. Skinner at Harvard.

<span class="mw-page-title-main">Window manager</span> Type of system software

A window manager is system software that controls the placement and appearance of windows within a windowing system in a graphical user interface. Most window managers are designed to help provide a desktop environment. They work in conjunction with the underlying graphical system that provides required functionality—support for graphics hardware, pointing devices, and a keyboard—and are often written and created using a widget toolkit.

<span class="mw-page-title-main">Xinerama</span> Extension for X Window System

Xinerama is an extension to the X Window System that enables X applications and window managers to use two or more physical displays as one large virtual display.

Workspace is a term used in various branches of engineering and economic development.

In computing, hardware overlay, a type of video overlay, provides a method of rendering an image to a display screen with a dedicated memory buffer inside computer video hardware. The technique aims to improve the display of a fast-moving video image — such as a computer game, a DVD, or the signal from a TV card. Most video cards manufactured since about 1998 and most media players support hardware overlay.

A menu bar is a graphical control element which contains drop-down menus.

<span class="mw-page-title-main">Tiling window manager</span> Window manager with non-overlapping frames

In computing, a tiling window manager is a window manager with an organization of the screen into mutually non-overlapping frames, as opposed to the more common approach of coordinate-based stacking of overlapping objects (windows) that tries to fully emulate the desktop metaphor.

A compositing manager, or compositor, is software that provides applications with an off-screen buffer for each window. The compositing manager composites the window buffers into an image representing the screen and writes the result into the display memory. A compositing window manager is a window manager that is also a compositing manager.

<span class="mw-page-title-main">Spaces (software)</span> Virtual desktop feature of Mac OS X

Spaces was a virtual desktop feature of Mac OS X, introduced in Mac OS X 10.5 Leopard. It was announced by Steve Jobs during the opening keynote at the Worldwide Developers Conference on August 7, 2006. As of Mac OS X 10.7 Lion, it has been incorporated into Mission Control.

<span class="mw-page-title-main">Task View</span> Task switcher and virtual desktop system

Task View is a task switcher and virtual desktop system introduced in Windows 10 and is among the first features new to Windows 10. Task View allows a user to quickly locate an open window, quickly hide all windows and show the desktop, and to manage windows across multiple monitors or virtual desktops. Clicking the Task View button on the taskbar or swiping from the left side of the screen displays all open windows and allows users to switch between them, or switch between multiple workspaces. It was first previewed on September 30, 2014, at a Windows 10 press event in downtown San Francisco. A redesigned Task View with support for giving different wallpapers on each desktop has been introduced in Windows 11.

Comparison of user features of operating systems refers to a comparison of the general user features of major operating systems in a narrative format. It does not encompass a full exhaustive comparison or description of all technical details of all operating systems. It is a comparison of basic roles and the most prominent features. It also includes the most important features of the operating system's origins, historical development, and role.

References

  1. D. Austin Henderson, Jr.; Stuart Card (1 July 1986). "Rooms: the use of multiple virtual workspaces to reduce space contention in a window-based graphical user interface". ACM Transactions on Graphics . 5 (3): 211–243. doi: 10.1145/24054.24056 . S2CID   1157369.
  2. User interface with multiple workspaces for sharing display system objects, US Patent 5,533,183
  3. Thomas E. LaStrange (1990). swm: An X window manager shell (PDF). USENIX Summer.
  4. "Aminet - misc/Sci/VWorlds30.lha".
  5. "IXI to launch Panorama virtual workspace windowing system that extends beyond confines of the monitor". Computergram International . Computer Business Review. 9 March 1993.
  6. "Current Release Timetamp ArcaOS 5.0 Blue Lion". 20 December 2016. Retrieved 2020-08-24.
  7. "Microsoft Unveils Windows 10 with New Start Menu". Tom's Guide. 30 September 2014. Retrieved 30 September 2014.
  8. "Windows 10 is the official name for Microsoft's next version of Windows". The Verge. 30 September 2014. Retrieved 30 September 2014.
  9. "Desktops". Microsoft Docs. 19 August 2020.
  10. "Desktops v2.01". Microsoft Learn. 12 October 2021.