# Widget

Ein Widget [ˈwɪʤət] ist eine Komponente eines grafischen Fenstersystems. Das Widget besteht aus einem Fenster, das Maus-, Touchscreen- und/oder Tastaturereignisse empfängt, und aus dem Objekt, das den Zustand der Komponente speichert. Widgets sind immer in ein Fenstersystem eingebunden und nutzen dieses zur Interaktion mit dem Anwender oder anderen Widgets.
Applets sind zwar ebenfalls in eine Umgebung eingebunden, verwenden jedoch im Gegensatz zum Widget nicht zwingend die vom Fenstersystem bereitgestellten Dienste und Fenster. Applets werden meist über eine – im Vergleich zur Schnittstelle des Fenstersystems – relativ grobe Plug-in-Schnittstelle in das Wirtssystem eingebunden und haben meist ihre eigene Fenster- und Ereignisverwaltung.
Widgets und zum Teil auch Applets können nicht als eigenständige Anwendungsprogramme im Rahmen eines Betriebssystems betrieben werden. Sie benötigen eine Umgebung, die über eine Programmierschnittstelle Grundfunktionen und Ressourcen bereitstellt und somit die Möglichkeiten beschränkt. Programme für den Betrieb von Widgets werden als Widget-Engines bezeichnet.
Die englische Bezeichnung widget ist ein Kofferwort, gebildet aus window, für „Fenster“, und gadget, für „Zubehörgerät“. Eine mögliche deutsche Übersetzung ist z. B. Miniprogramm, wie von KDE Plasma 6 verwendet.

## Ursprung und Entwicklung

Widgets stammen ursprünglich aus dem Projekt Athena und bezeichneten ein mit einem Fenster assoziiertes Objekt, daraus resultiert das Silbenkurzwort aus Wi(ndow) und (Ga)dget. Ein solches Windowobjekt konnte eigenständig auf Ereignisse der Tastatur und/oder Maus reagieren und sein Aussehen entsprechend anpassen. Mit den ersten „worldwideweb-Browsern“ unter X11, einem Nachfolger von MIT Athena, gelangte dieser Begriff ins Internet und wird nunmehr für unterschiedliche Technologien verwendet.
Widgets werden mittlerweile von nahezu allen grafischen Benutzeroberflächen unterstützt und sogar benötigt, damit der volle Funktionsumfang der Umgebung zugänglich ist. So sind „gOS“ oder Google ChromeOS darauf angewiesen. Unter Mac OS X seit 2005 und seit 2007 bei Windows sind Widgets verbreitet, aber nahezu „funktionsirrelevant“. Mit SuperKaramba ist auch für KDE bereits seit 2003 ein Widget-Framework verfügbar. Der Begriff Widget erlangte 2003 durch das Programm Konfabulator eine weite Verbreitung.
Parallel zu den Widgets für einzelne Betriebssysteme entwickelten sich Widgets in Form von besonderen Webanwendungen. Viele solcher Anwendungen sind recht simpel und zeigen lediglich Information aus anderen Quellen an („Syndikation“). Inhalte von Portalen wie YouTube oder Sevenload werden mit Adobe Flash eingebunden oder Fotos eines Benutzers über die Anwendung Flickr. Diese Nutzung hat mit zur Verbreitung von User-generated content und Web-2.0-Anwendungen beigetragen. Widgets zur Einbindung in Webseiten werden im Gegensatz zu anderen Widgets häufig nur als kleine Fragmente von HTML- und JavaScript-Code angeboten, die automatisch installiert werden können. Inzwischen verschwinden die Grenzen zwischen Widgets für den Desktop und Widgets im Web immer mehr, da mit entsprechenden Widget-Engines auch Web-Widgets auf dem Desktop eingesetzt werden können. Das W3C arbeitet derzeit an einem Standard für Widgets.

## Widget-Engines

Widget-Engines sind grundsätzlich Software-Module. Sie stellen die Voraussetzung für die Nutzung von Widgets dar und geben die Schnittstellen für deren Einbindung. Widgetumgebungen können heute sehr vielfältig sein. Verfügbare Widget-Engines für Desktop-Umgebungen sind:
| Name | Hersteller | Beschreibung | Technische Informationen |
| adesklets | Sylvain Fourmanoit | eine leichtgewichtige Engine für X11 | 0.6.1 (Eingestellt) unixoide GPL |
| AveDesk | Andreas Verhoeven | eine kostenlose Widget-Engine für Windows | 1.4 Windows Donationware |
| Dashboard | Apple Inc. | die in Mac OS X integrierte Widget-Engine | 1.7 macOS Proprietär |
| DesktopX | Stardock Corporation | eine bekannte Engine der Firma Stardock | 1.7 Windows Shareware |
| gDesklets | Martin Grimme und Christian Meyer | erste funktionsfähige Engine für Gnome | 0.36.3 unixoide GPL |
| Google Desktop Gadgets | Google Inc. | Widgets (dort als Gadgets bezeichnet) können unter Windows, Mac OS X und Linux auf den Desktop gebracht werden. | 5.9.X GNU/Linux, Mac OS X, Windows Proprietär |
| Google Gadgets for Linux | Google Inc. | Enthält, anders als Google Desktop, nur eine freie Widget-Engine. | 0.11.2 GNU/Linux Apache-Lizenz |
| Microsoft Gadget | Microsoft Corporation | Können als Minianwendungen ab Windows Vista in die Windows Sidebar integriert werden. Das Konzept wurde durch Einführung von Apps und einen kachelbasierten Startbildschirm in Windows 8 verworfen. | ? Windows Proprietär |
| Opera Widgets | Opera Software ASA | Der Webbrowser stellt ab der Version 9 eine eigene Widget-Engine zur Verfügung. | 10.50 GNU/Linux, Mac OS X, Windows, uvm. Proprietär |
| Plasmoids | Das KDE-Projekt | Die Standard Widget-Engine für KDE kann neben den nativen Widgets (genannt Plasmoids) auch eine Vielzahl anderer Widgets verschiedener Widget-Engines darstellen. | 4.4.X unixoide GPL |
| Screenlets | Rico Pfaus (RYX), Helder Fraga (Whise), Natan Yellin (Aantn) | eine Dashbord-ähnliche Engine für GNOME | 0.1.2 unixoide GPL |
| Serious Samurize | Adam Coulthard & Lee Wilson | ein System-Beobachtungs-Programm | 1.64.3 Windows teilweise frei |
| SuperKaramba | Das KDE-Projekt | die erste offizielle Widget-Engine des KDE-Projektes, derzeit in Form eines Plasmoids für Plasma in KDE4 unterstützt | 4.4.X unixoxide GPL |
| Yahoo! Widgets | Yahoo/ als Konfabulator von Arlo Rose und Ed Voas entwickelt. | Früher Konfabulator – wurde ursprünglich für Mac OS X entwickelt und danach auf Windows portiert. | 4.5 (Eingestellt) Mac OS X, Windows GPL |
Mittels DHTML, Ajax, Adobe Flash, Silverlight oder Java-Applets können derartige Anwendungen auch in Webseiten eingebunden werden. Verschiedene Anbieter bieten Plattformen zur Zusammenstellung von personalisierten Widgets an, etwa Netvibes, Googles personalisierbare Startseite iGoogle, pageflakes, ContentSieve, allyve, Sportbrett oder Facebook.

## Widgets auf Smartphones

Auf mobilen Geräten wie PDAs und Smartphones werden Widgets häufig verwendet.
Mobilgeräte, die auf dem Betriebssystem Android basieren, unterstützen Widgets auf dem Startbildschirm (Launcher) und unter Android 4.2 bis 4.4 auch auf dem Anmeldebildschirm in Form sogenannter Lock Screen Notification Widgets. Widgets stellen dabei meist einen Teil einer Anwendung (App) dar, der zur Anzeige wichtiger Informationen dient oder den schnellen Start von Funktionen der App ermöglicht.
Einen ähnlichen Ansatz verfolgt Microsoft mit den mit Windows Phone eingeführten Live-Kacheln. Diese stellen Informationen in einem farbigen Kachelraster dar und aktualisieren sich in einem definierten Intervall. Das Konzept wurde auch für das Betriebssystem Windows 8 für klassische Arbeitsplatzrechner übernommen und löst die bis dahin unterstützten Widgets und das Startmenü des Windows-Betriebssystems ab.
Auch Apple bietet ab Version 8 Widgets an. Sie teilen sich im Benachrichtigungszentrum (Drop Down Hub) von iOS den Platz mit vorhandenen Benachrichtigungen (Notifications).
Die meisten Hersteller stellen Dokumentationen für das Erstellen eigener, meist proprietärer Widgets bereit.