Architecture
Gershwin is designed with simplicity in mind. Less, but better. This page describes key elements of the Gershwin desktop. Everything should be welcoming to switchers from other operating systems but ideally even easier to use.
Frameworks
GNUstep is the core application framework. All native Gershwin applications are written in Objective-C using GNUstep.
Desktop components
The minimum number of components viable to produce an efficient desktop should be used. Each component should be as simple as possible, and have as few dependencies as possible (besides the ones that are central to Gershwin, such as GNUstep). XDG specifications are considered overly complex but insufficient and should be avoided; they may be acceptable as legacy technology for compatibility reasons.
Workspace
File manager that manages .app bundles and provides the Desktop. Contains the Dock (application launcher), desktop icons, and file browsing. Source: gershwin-workspace/Workspace/.
WindowManager
Native X11 window manager written for Gershwin. Handles window positioning, resizing, focus management, compositing, and window switching (Overview). Source: gershwin-windowmanager/WindowManager/.
LoginWindow
Graphical login screen. Source: gershwin-components/LoginWindow/.
Terminal
Terminal emulator application. Source: gershwin-terminal/.
TextEdit
Text editor application. Source: gershwin-textedit/.
SystemPreferences
System settings application with pluggable preference panes. Source: gershwin-systempreferences/SystemPreferences/.
UIBridge
MCP server for automating and inspecting GNUstep applications at runtime. Source: gershwin-components/UIBridge/.
initgfx
Automatic graphics hardware configuration. Source: gershwin-components/initgfx/.
Applications
Applications must not need to be installed. Simply downloading them, attaching an external drive containing them, or connecting to a network share containing them must be sufficient. Multiple versions of the same application must be able to co-exist.
Custom-written applications should come as application bundles whenever possible. It is acceptable for pre-existing applications to come with legacy XDG desktop files instead.
Utilities
Gershwin comes with commonly used utilities, such as a Terminal application, a Process Monitor application, etc. These are just regular applications bundled with the system.
Preferences
Gershwin comes with preference panels for commonly used settings, such as for configuring the network, keyboard, display, and other system options.