:GNOME Shell

{{Short description|Graphical shell of the GNOME desktop environment}}

{{Use mdy dates|date=June 2017}}

{{Infobox software

| title = GNOME Shell

| name = GNOME

| screenshot = File:GNOME Shell.png

| caption = GNOME Shell 46 (released in March 2024)

| developer = The GNOME Project

| released = {{Start date and age|2011|04|06}}

| latest release version = {{wikidata|property|edit|reference|Q1343860|P548=Q2804309|P348}}

| latest release date = {{start date and age|{{wikidata|qualifier|Q1343860|P548=Q2804309|P348|P577}}}}

| repo = {{URL|https://gitlab.gnome.org/GNOME/gnome-shell}}

| programming language = C and JavaScript{{cite web

| url = https://github.com/GNOME/gnome-shell

| title = GNOME/gnome-shell

| website = GitHub

| quote = C: 48.9%; JavaScript: 47.6%.

| access-date = March 4, 2017

| archive-date = October 27, 2017

| archive-url = https://web.archive.org/web/20171027092238/https://github.com/GNOME/gnome-shell

| url-status = live

}}

| operating system = BSD, Linux, Unix

| language = Afrikaans, Arabic, Aragonese, Assamese, Asturian, Basque, Belarusian, Bengali, Bosnian, Brazilian Portuguese, British English, Bulgarian, Catalan, Chinese, Czech, Danish, Dutch, Esperanto, Estonian, Finnish, French, Friulian, Galician, German, Greek, Gujarati, Hebrew, Hindi, Hungarian, Icelandic, Indonesian, Interlingua, Irish, Italian, Japanese, Kannada, Kazakh, Khmer, Kirghiz, Korean, Kurdish, Latvian, Lithuanian, Macedonian, Malay, Malayalam, Marathi, Nepali, Norwegian Bokmål, Norwegian Nynorsk, Occitan, Oriya, Persian, Polish, Portuguese, Punjabi, Romanian, Russian, Scottish Gaelic, Serbian, Serbian Latin, Sinhala, Slovak, Slovenian, Spanish, Swedish, Tajik, Tamil, Telugu, Thai, Turkish, Uighur, Ukrainian, Uzbek (Cyrillic), Vietnamese

| language count = 75

| language footnote =

| genre = {{unbulleted list

| Graphical Shell

| Linux on the desktop}}

| license = GPL-2.0-or-later

| website = {{URL|https://wiki.gnome.org/Projects/GnomeShell}}

}}

GNOME Shell is the graphical shell of the GNOME desktop environment starting with version 3, which was released on April 6, 2011. It provides basic functions like launching applications and switching between windows. GNOME Shell replaced GNOME Panel and some ancillary components of GNOME 2.

GNOME Shell is written in C and JavaScript as a plugin for Mutter.

In contrast to the KDE Plasma Workspaces, a software framework intended to facilitate the creation of multiple graphical shells for different devices, the GNOME Shell is intended to be used on desktop computers with large screens operated via keyboard and mouse, as well as portable computers with smaller screens operated via their keyboard, touchpad or touchscreen.

History

The first concepts for GNOME Shell were created during GNOME's User Experience Hackfest 2008 in Boston.{{cite web|title=My glimpse at Gnome-Shell|publisher=Mad for Ubuntu |archive-url=https://web.archive.org/web/20100523200336/http://www.madforubuntu.com/apps-and-tools/my-glimpse-at-gnome-shell/ |archive-date=May 23, 2010 |url=http://www.madforubuntu.com/apps-and-tools/my-glimpse-at-gnome-shell/}}{{cite web |url=https://wiki.gnome.org/Events/Summit/2008/GUIHackfest |title=User Experience Hackfest |publisher=GNOME |date=October 14, 2008 |access-date=March 12, 2013 |archive-date=August 1, 2020 |archive-url=https://web.archive.org/web/20200801085059/https://wiki.gnome.org/Events/Summit/2008/GUIHackfest |url-status=live }}{{cite web |url=http://bethesignal.org/blog/2011/03/15/timeline-gnome-user-experience-hackfest-2008/ |title=Timeline: The Greatest Show on Earth |publisher=Be the signal |date=March 15, 2011 |access-date=March 12, 2013 |archive-date=May 17, 2011 |archive-url=https://web.archive.org/web/20110517033841/http://bethesignal.org/blog/2011/03/15/timeline-gnome-user-experience-hackfest-2008/ |url-status=live }}

After criticism of the traditional GNOME desktop and accusations of stagnation and lacking vision,{{cite web |url=http://wingolog.org/archives/2008/06/07/gnome-in-the-age-of-decadence |title=gnome in the age of decadence |publisher=wingolog |date=June 7, 2008 |access-date=March 12, 2013 |archive-date=February 10, 2013 |archive-url=https://web.archive.org/web/20130210004142/http://wingolog.org/archives/2008/06/07/gnome-in-the-age-of-decadence |url-status=live }} the resulting discussion led to the announcement of GNOME 3.0 in April 2009.{{cite web |url=http://mail.gnome.org/archives/desktop-devel-list/2009-April/msg00004.html |title=Planning for GNOME 3.0 |date=April 2, 2009 |access-date=March 12, 2013 |archive-date=March 7, 2012 |archive-url=https://web.archive.org/web/20120307191311/http://mail.gnome.org/archives/desktop-devel-list/2009-April/msg00004.html |url-status=live }} Since then Red Hat has been the main driver of GNOME Shell's development.{{cite web|author=Matthew Garrett (mjg59) wrote, October 26, 2010 18:39:00 |url=http://mjg59.livejournal.com/128650.html |title=mjg59: Fun facts |publisher=Mjg59.livejournal.com |date=October 26, 2010 |access-date=March 12, 2013 |url-status=dead |archive-url=https://web.archive.org/web/20120505082557/http://mjg59.livejournal.com/128650.html |archive-date=May 5, 2012 |df=mdy-all }}

Pre-release versions of GNOME Shell were first made available in August 2009{{cite web |url=http://ftp.accum.se/pub/GNOME/sources/gnome-shell/2.27/ |title=ftp.gnome.org |publisher=Ftp.accum.se |access-date=March 12, 2013 |archive-date=December 17, 2022 |archive-url=https://web.archive.org/web/20221217022353/http://ftp.accum.se/pub/GNOME/sources/gnome-shell/2.27/ |url-status=live }} and became regular, non-default part of GNOME in version 2.28 in September 2009.{{cite web |url=http://library.gnome.org/misc/release-notes/2.28/ |title=GNOME 2.28 Release Notes |publisher=GNOME |access-date=March 12, 2013 |archive-date=October 16, 2009 |archive-url=https://web.archive.org/web/20091016053903/http://library.gnome.org/misc/release-notes/2.28/ |url-status=live }} It was finally shipped as GNOME's default user interface on April 6, 2011.{{cite web |url=https://wiki.gnome.org/TwoPointNinetyone/ |title=GNOME 2.91.x Development Series |publisher=GNOME |date=March 24, 2011 |access-date=March 12, 2013 |archive-date=January 6, 2014 |archive-url=https://web.archive.org/web/20140106215657/https://wiki.gnome.org/TwoPointNinetyone |url-status=live }}{{cite web|url=http://www.thinq.co.uk/2011/04/06/gnome-30-gnome-shell-officially-launched/ |title=GNOME 3.0 with GNOME Shell officially launched | ITProPortal.com |publisher=Thinq.co.uk |access-date=March 12, 2013 |url-status=dead |archive-url=https://web.archive.org/web/20111227122435/http://www.thinq.co.uk/2011/04/06/gnome-30-gnome-shell-officially-launched/ |archive-date=December 27, 2011 |df=mdy }}

Design

{{Seealso|Adwaita (design language)}}

As graphical shell (graphical front-end/graphical shell/UX/UI) of the GNOME desktop environment, its design is guided by the GNOME UX Design Team.{{cite web |url=https://wiki.gnome.org/Design/ |title=GNOME UX Design Team |access-date=November 13, 2014 |archive-date=December 26, 2014 |archive-url=https://web.archive.org/web/20141226015520/https://wiki.gnome.org/Design |url-status=live }}

=Design components=

{{overlay

| columns = 2

| image = GNOME Shell.png

| float = right

| width = 400

| height = 225

| legend1title = {{center|GNOME Shell Overview mode}}

| overlay1 = Activities button

| overlay1top = 1

| overlay1left = 1

| overlay2 = Dash

| overlay2top = 220

| overlay2left = 195

| overlay3 = Search bar

| overlay3top = 8

| overlay3left = 150

| overlay4 = Notifications and messaging tray

| overlay4top = 1

| overlay4left = 195

| overlay5 = System status area

| overlay5top = 1

| overlay5left = 392

| overlay6 = Workspace list

| overlay6top = 110

| overlay6left = 392

| overlay7 = Indicators tray

| overlay7top = 205

| overlay7left = 0

}}

The GNOME Shell comprises the following graphical and functional elements:{{cite web |url=https://wiki.gnome.org/Projects/GnomeShell/Design |title=GNOME Shell Design |access-date=May 21, 2014 |archive-date=March 16, 2014 |archive-url=https://web.archive.org/web/20140316080502/https://wiki.gnome.org/Projects/GnomeShell/Design |url-status=live }}

  • Top bar
  • System status area
  • Activities Overview
  • Dash
  • Window picker
  • Application picker
  • Search
  • Notifications and messaging tray
  • Application switcher
  • Indicators tray (deprecated, waiting on new specification{{Cite web |title=Update StatusNotifierItem/systemtray spec (#84) · Issues · xdg / xdg-specs · GitLab |url=https://gitlab.freedesktop.org/xdg/xdg-specs/-/issues/84 |access-date=2023-02-12 |website=GitLab |date=January 17, 2022 |language=en}})

Software architecture

{{external media|title=GNOME Wiki|image1=[https://wiki.gnome.org/Projects/GnomeShell/Technology?action=AttachFile&do=get&target=tech-components-diagram.png Projects/GnomeShell/Technology]}}

GNOME Shell is tightly integrated with Mutter, a compositing window manager and Wayland compositor. It is based upon Clutter to provide visual effects and hardware acceleration. According to GNOME Shell maintainer Owen Taylor, it is set up as a Mutter plugin largely written in JavaScript and uses GUI widgets provided by GTK+ version 3.

=Features=

Changes to the user interface (UI) include, but are not limited to:

  • Clutter and Mutter support multi-touch gestures.{{cite web |url=https://mail.gnome.org/archives/ftp-release-list/2014-July/msg00088.html |title=Mutter 3.13.4 release |access-date=July 26, 2014 |archive-date=August 9, 2014 |archive-url=https://web.archive.org/web/20140809044738/https://mail.gnome.org/archives/ftp-release-list/2014-July/msg00088.html |url-status=live }}
  • Support for HiDPI monitors.{{cite web |url=https://mail.gnome.org/archives/ftp-release-list/2014-July/msg00087.html |title=GNOME Shell 3.13.4 |access-date=July 26, 2014 |archive-date=August 9, 2014 |archive-url=https://web.archive.org/web/20140809044255/https://mail.gnome.org/archives/ftp-release-list/2014-July/msg00087.html |url-status=live }}
  • A new Activities overview, which houses:
  • A dock (called "Dash") for quickly switching between and launching applications
  • A window picker, similar to macOS's Mission Control, also incorporating a workspace switcher/manager
  • An application picker which allows for reordering application icons and creating application groups.
  • A search bar which handles launching applications, searching for files, and performing web searches.
  • "Snapping" windows to screen borders to make them fill up a half of the screen or the whole screen
  • A single window button by default, Close, instead of three (configurable). Minimization has been removed due to the lack of a panel to minimize to, in favor of workspace window management. Maximization can be accomplished using the afore-mentioned window snapping, or by double-clicking the window title bar.
  • A fallback mode is offered in versions 3.0–3.6 for those without hardware acceleration which offers the GNOME Panel desktop. This mode can also be toggled through the System Settings menu. GNOME 3.8 removed the fallback mode and replaced it with GNOME Shell extensions that offer a more traditional look and feel.{{cite web |url=http://blogs.gnome.org/mclasen/2012/12/05/gnome-3-7-what-is-happening-now/ |title=GNOME 3.7: what is happening now | Goings on |publisher=GNOME |date=December 5, 2012 |access-date=March 12, 2013 |archive-date=December 9, 2012 |archive-url=https://web.archive.org/web/20121209013058/http://blogs.gnome.org/mclasen/2012/12/05/gnome-3-7-what-is-happening-now/ |url-status=live }}

=Extensibility=

The functionality of GNOME Shell can be changed with extensions, which can be written in JavaScript. Users can find and install extensions using the GNOME extensions website. Some of these extensions are hosted in GNOME's git repository, though they are not official.

=Gallery=

{{Multiple image

| image1 = GNOME 48.0 on GNOME OS.png

| align = center

| image2 = GNOME 48.0 on GNOME OS (2).png

| image3 = GNOME 48.0 on GNOME OS (3).png

| image4 =

}}

Adoption

  • Arch Linux dropped support of GNOME 2 in favor of GNOME 3 in its repositories in April 2011.
  • Fedora Linux uses GNOME Shell by default since release 15, May 2011.
  • CentOS Steam uses the latest version of GNOME Shell
  • Sabayon Linux uses the latest version of GNOME Shell.
  • openSUSE's GNOME edition has used GNOME Shell since version 12.1 in November 2011.
  • Mageia 2 and later include GNOME Shell, since May 2012.
  • Debian 8 and later features GNOME Shell in the default desktop, since April 2015.
  • Solaris 11.4 replaced GNOME 2 with GNOME Shell in August 2018.{{Cite web|title=Oracle Solaris 11.4 Officially Released - Phoronix|url=https://www.phoronix.com/scan.php?page=news_item&px=Solaris-11.4-Released|access-date=2020-06-25|website=www.phoronix.com|archive-date=June 27, 2020|archive-url=https://web.archive.org/web/20200627145601/https://www.phoronix.com/scan.php?page=news_item&px=Solaris-11.4-Released|url-status=live}}{{Cite web|last=Coopersmith|first=Alan|title=Using GNOME 3 in Oracle Solaris 11.4|url=https://blogs.oracle.com/solaris/using-gnome-3-in-oracle-solaris-114|publisher=Oracle Solaris Blog|access-date=June 25, 2020|archive-date=August 1, 2020|archive-url=https://web.archive.org/web/20200801051955/https://blogs.oracle.com/solaris/using-gnome-3-in-oracle-solaris-114|url-status=live}}
  • Ubuntu uses GNOME Shell by default since 17.10, October 2017, after Canonical ceased development of Unity.{{Cite web|url=http://www.omgubuntu.co.uk/2017/06/ubuntu-17-10-daily-builds-gnome|title=GNOME is now the Default Desktop in Ubuntu 17.10 Daily Builds|date=June 7, 2017|access-date=July 13, 2017|archive-date=July 19, 2017|archive-url=https://web.archive.org/web/20170719124151/http://www.omgubuntu.co.uk/2017/06/ubuntu-17-10-daily-builds-gnome|url-status=live}} It has been available for installation in the repositories since version 11.10. An alternative flavor, Ubuntu GNOME, was released alongside Ubuntu 12.10,{{cite web |author=Andrew |url=http://www.webupd8.org/2012/10/prefer-gnome-shell-download-ubuntu.html |title=Prefer GNOME Shell? Download Ubuntu GNOME Remix 12.10 ~ Web Upd8: Ubuntu / Linux blog |publisher=Webupd8.org |date=October 19, 2012 |access-date=March 12, 2013 |archive-date=March 10, 2013 |archive-url=https://web.archive.org/web/20130310195150/http://www.webupd8.org/2012/10/prefer-gnome-shell-download-ubuntu.html |url-status=live }} and gained official flavor status by Ubuntu 13.04.{{cite web|url=https://wiki.ubuntu.com/UbuntuGNOME|title=Introduction to Ubuntu GNOME|access-date=April 27, 2013|archive-date=October 15, 2016|archive-url=https://web.archive.org/web/20161015053652/https://wiki.ubuntu.com/UbuntuGNOME/|url-status=live}}

=Reception=

{{See also|GNOME 3#Reception}}

GNOME Shell has received mixed reviews: it has been criticized for a variety of reasons, mostly related to design decisions and reduced user control over the environment. For example, users in the free software community have raised concerns that the planned tight integration with Mutter will mean that users of GNOME Shell will not be able to switch to an alternative window manager without breaking their desktop. In particular, users might not be able to use Compiz with GNOME Shell while retaining access to the same types of features that older versions of GNOME allowed.

Reviews have generally become more positive over time, with upcoming releases addressing many of the annoyances reported by users.{{cite web | title=GNOME 3.10 has resurrected what was once the darling of the Linux desktop | last=Wallen | first=Jack | url=http://www.techrepublic.com/article/gnome-3-10-has-resurrected-what-was-once-the-darling-of-the-linux-desktop/ | publisher=TechRepublic | url-status=live | date=March 28, 2014 | archive-date=March 28, 2014 | archive-url=https://web.archive.org/web/20140328234824/http://www.techrepublic.com/article/gnome-3-10-has-resurrected-what-was-once-the-darling-of-the-linux-desktop/ }}{{cite web|title=In Defense of Gnome 3|url=http://www.jupiterbroadcasting.com/48967/in-defense-of-gnome-3-las-s30e04/|work=Linux Action Show|publisher=Jupiter Broadcasting|access-date=April 2, 2014|author=Matt Hartley, Chris Fisher|date=January 5, 2014|archive-date=March 13, 2014|archive-url=https://web.archive.org/web/20140313113912/http://www.jupiterbroadcasting.com/48967/in-defense-of-gnome-3-las-s30e04/|url-status=live}}

See also

{{Portal bar|Linux|Free and open-source software}}

References

{{reflist|30em|refs=

{{citation |url=http://l10n.gnome.org/module/gnome-shell/ |title=Module Statistics: gnome-shell |access-date=February 14, 2011 |archive-date=April 4, 2018 |archive-url=https://web.archive.org/web/20180404073127/https://l10n.gnome.org/module/gnome-shell/ |url-status=live }}

{{citation |url=http://www.archlinux.org/news/gnome3-in-extra/ |title=GNOME3 in extra |first=Ionuț Mircea |last=Bîru |work=Arch Linux |date=April 30, 2011 |access-date=December 4, 2011 |archive-date=January 3, 2012 |archive-url=https://web.archive.org/web/20120103071848/http://www.archlinux.org/news/gnome3-in-extra/ |url-status=live }}

{{citation |url=https://thegnomejournal.wordpress.com/2009/07/01/behind-the-scenes-with-owen-taylor |title=Behind the Scenes with Owen Taylor |first=Paul |last=Cutler |date=July 1, 2009 |access-date=January 16, 2016 |archive-date=October 26, 2016 |archive-url=https://web.archive.org/web/20161026235331/https://thegnomejournal.wordpress.com/2009/07/01/behind-the-scenes-with-owen-taylor/ |url-status=live }}

{{citation |url=http://packages.debian.org/sid/gnome-shell |title=/ packages / sid (unstable) / gnome / gnome-shell |work=Debian |access-date=July 10, 2012 |archive-date=May 2, 2012 |archive-url=https://web.archive.org/web/20120502152808/http://packages.debian.org/sid/gnome-shell |url-status=live }}

{{citation |url=http://packages.debian.org/wheezy/gnome-shell |title=/ packages / wheezy (testing) / gnome / gnome-shell |work=Debian |access-date=July 10, 2012 |archive-date=July 9, 2012 |archive-url=https://web.archive.org/web/20120709000734/http://packages.debian.org/wheezy/gnome-shell |url-status=live }}

{{citation |url=http://fedoraproject.org/wiki/Releases/15/FeatureList |title=Releases/15/FeatureList |publisher=Fedora Project |access-date=November 25, 2011 |archive-date=April 24, 2013 |archive-url=https://web.archive.org/web/20130424211153/http://fedoraproject.org/wiki/Releases/15/FeatureList |url-status=live }}

{{citation |url=https://wiki.gnome.org/ThreePointZero/Plan |title=Planning for GNOME 3.0 |work=GNOME Live! |access-date=March 23, 2011 |archive-date=October 3, 2016 |archive-url=https://web.archive.org/web/20161003140800/https://wiki.gnome.org/ThreePointZero/Plan |url-status=live }}

{{citation |title=Gnome 3 Fallback mode - Get your productivity back |url=http://www.dedoimedo.com/computers/gnome-3-fallback.html |first=Igor |last=Ljubunčić |publisher=Dedoimedo |date=April 6, 2011 |access-date=November 25, 2011 |archive-date=November 11, 2011 |archive-url=https://web.archive.org/web/20111111103605/http://www.dedoimedo.com/computers/gnome-3-fallback.html |url-status=live }}

{{citation |url=https://wiki.gnome.org/Engagement/GNOME3Myths#GNOME_3.0_depends_on_Mono.21 |title=GNOME 3 Myths: GNOME 3.0 depends on Mono! |work=GNOME Live! |access-date=December 19, 2010 |archive-date=April 8, 2016 |archive-url=https://web.archive.org/web/20160408020318/https://wiki.gnome.org/Engagement/GNOME3Myths#GNOME_3.0_depends_on_Mono.21 |url-status=live }}

{{citation |url=https://wiki.gnome.org/Projects/GnomeShell/Extensions |title=Extensions |work=GNOME Live! |access-date=November 25, 2011 |archive-date=July 17, 2014 |archive-url=https://web.archive.org/web/20140717071358/https://wiki.gnome.org/Projects/GnomeShell/Extensions |url-status=live }}

{{citation |url=https://wiki.mageia.org/en/Mageia_2_beta2 |title=Release Notes |work=Mageia Wiki |date=March 7, 2012 |access-date=March 24, 2012 |archive-date=March 14, 2013 |archive-url=https://web.archive.org/web/20130314041529/https://wiki.mageia.org/en/Mageia_2_beta2 |url-status=live }}

{{citation |url=http://www.mail-archive.com/desktop-devel-list@gnome.org/msg15587.html |title=Re: Metacity, Mutter, GNOME Shell, GNOME-2.28 |work=desktop-devel-list mailing list |first=Owen |last=Taylor |date=March 24, 2009 |access-date=August 18, 2012 |archive-date=August 31, 2012 |archive-url=https://web.archive.org/web/20120831010046/http://www.mail-archive.com/desktop-devel-list@gnome.org/msg15587.html |url-status=live }}

{{citation |url=http://www.linuxpromagazine.com/Online/News/Mutter-Window-Manager-in-GNOME-s-Future |title=Mutter: Window Manager in GNOME's Future |first=Kristian |last=Kissling |work=Linux Pro Magazine |date=July 8, 2009 |access-date=March 23, 2011 |archive-date=October 12, 2018 |archive-url=https://web.archive.org/web/20181012193403/http://www.linuxpromagazine.com/Online/News/Mutter-Window-Manager-in-GNOME-s-Future |url-status=live }}

{{citation |url=http://mail.gnome.org/archives/desktop-devel-list/2009-March/msg00106.html |title=Metacity, Mutter, GNOME Shell, GNOME-2.28 |work=desktop-devel-list mailing list |first=Owen |last=Taylor |date=March 23, 2009 |quote=gnome-shell is set up as a Mutter plugin that is largely written in JavaScript |access-date=August 18, 2012 |archive-date=March 16, 2012 |archive-url=https://web.archive.org/web/20120316034025/http://mail.gnome.org/archives/desktop-devel-list/2009-March/msg00106.html |url-status=live }}

{{citation |url=http://en.opensuse.org/Portal:12.1 |title=Portal:12.1 |publisher=OpenSuSE Project |access-date=November 25, 2011 |archive-date=June 1, 2011 |archive-url=https://web.archive.org/web/20110601002247/http://en.opensuse.org/Portal:12.1 |url-status=live }}

{{citation |url=http://mail.gnome.org/archives/gnome-shell-list/2010-March/msg00092.html |title=Why does Gnome-shell replace the current gnome-panel |first=Apoorva |last=Sharma |work=gnome-shell-list mailing list |date=March 23, 2010 |access-date=August 18, 2012 |archive-date=January 25, 2018 |archive-url=https://web.archive.org/web/20180125134500/https://mail.gnome.org/archives/gnome-shell-list/2010-March/msg00092.html |url-status=live }}

{{citation |url=https://wiki.ubuntu.com/OneiricOcelot/ReleaseNotes |title=OneiricOcelot/ReleaseNotes - Ubuntu Wiki |work=Ubuntu Wiki |access-date=April 18, 2012 |archive-date=December 23, 2011 |archive-url=https://web.archive.org/web/20111223145418/https://wiki.ubuntu.com/OneiricOcelot/ReleaseNotes |url-status=live }}

}}