Jump to content

GNOME Shell

From Wikipedia, the free encyclopedia

GNOME Shell
Developer(s)The GNOME Project
Initial releaseApril 6, 2011; 13 years ago (2011-04-06)
Stable release
47.2[1] Edit this on Wikidata / 23 November 2024; 10 days ago (23 November 2024)
Repositorygitlab.gnome.org/GNOME/gnome-shell
Written inC and JavaScript[2][3]
Operating systemBSD, Linux, Unix
Available in75 languages[4]
List of languages
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
Type
LicenseGPL-2.0-or-later
Websitewiki.gnome.org/Projects/GnomeShell

GNOME Shell is the graphical shell of the GNOME desktop environment starting with version 3,[5] which was released on April 6, 2011. It provides basic functions like launching applications and switching between windows, and is also a widget engine. GNOME Shell replaced GNOME Panel[6] 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

[edit]

The first concepts for GNOME Shell were created during GNOME's User Experience Hackfest 2008 in Boston.[7][8][9]

After criticism of the traditional GNOME desktop and accusations of stagnation and lacking vision,[10] the resulting discussion led to the announcement of GNOME 3.0 in April 2009.[11] Since then Red Hat has been the main driver of GNOME Shell's development.[12]

Pre-release versions of GNOME Shell were first made available in August 2009[13] and became regular, non-default part of GNOME in version 2.28 in September 2009.[14] It was finally shipped as GNOME's default user interface on April 6, 2011.[15][16]

Design

[edit]

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.[17]

Design components

[edit]
1
2
3
4
5
6
7
GNOME Shell Overview mode
1
Activities button
2
Dash
3
Search bar
4
Notifications and messaging tray
5
System status area
6
Workspace list
7
Indicators tray

The GNOME Shell comprises the following graphical and functional elements:[18]

  • 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[19])

Software architecture

[edit]
GNOME Wiki
image icon 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.[20] According to GNOME Shell maintainer[21] Owen Taylor, it is set up as a Mutter plugin largely written in JavaScript[22] and uses GUI widgets provided by GTK+ version 3.

Features

[edit]

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

  • Clutter and Mutter support multi-touch gestures.[23]
  • Support for HiDPI monitors.[24]
  • 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.[25] GNOME 3.8 removed the fallback mode and replaced it with GNOME Shell extensions that offer a more traditional look and feel.[26]

Extensibility

[edit]

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.[27]

[edit]

Adoption

[edit]
  • Arch Linux dropped support of GNOME 2 in favor of GNOME 3 in its repositories in April 2011.[28]
  • Fedora Linux uses GNOME Shell by default since release 15, May 2011.[29]
  • Sabayon Linux uses the latest version of GNOME Shell.
  • openSUSE's GNOME edition has used GNOME Shell since version 12.1 in November 2011.[30]
  • Mageia 2 and later include GNOME Shell, since May 2012.[31]
  • Debian 8 and later features GNOME Shell in the default desktop, since April 2015.[32][33]
  • Solaris 11.4 replaced GNOME 2 with GNOME Shell in August 2018.[34][35]
  • Ubuntu uses GNOME Shell by default since 17.10, October 2017, after Canonical ceased development of Unity.[36] It has been available for installation in the repositories since version 11.10.[37] An alternative flavor, Ubuntu GNOME, was released alongside Ubuntu 12.10,[38] and gained official flavor status by Ubuntu 13.04.[39]

Reception

[edit]

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.[40]

Reviews have generally become more positive over time, with upcoming releases addressing many of the annoyances reported by users.[41][42]

See also

[edit]

References

[edit]
  1. ^ "47.2". November 23, 2024. Retrieved November 26, 2024.
  2. ^ "GNOME 3 Myths: GNOME 3.0 depends on Mono!", GNOME Live!, archived from the original on April 8, 2016, retrieved December 19, 2010
  3. ^ "GNOME/gnome-shell". GitHub. Archived from the original on October 27, 2017. Retrieved March 4, 2017. C: 48.9%; JavaScript: 47.6%.
  4. ^ Module Statistics: gnome-shell, archived from the original on April 4, 2018, retrieved February 14, 2011
  5. ^ "Planning for GNOME 3.0", GNOME Live!, archived from the original on October 3, 2016, retrieved March 23, 2011
  6. ^ Sharma, Apoorva (March 23, 2010), "Why does Gnome-shell replace the current gnome-panel", gnome-shell-list mailing list, archived from the original on January 25, 2018, retrieved August 18, 2012
  7. ^ "My glimpse at Gnome-Shell". Mad for Ubuntu. Archived from the original on May 23, 2010.
  8. ^ "User Experience Hackfest". GNOME. October 14, 2008. Archived from the original on August 1, 2020. Retrieved March 12, 2013.
  9. ^ "Timeline: The Greatest Show on Earth". Be the signal. March 15, 2011. Archived from the original on May 17, 2011. Retrieved March 12, 2013.
  10. ^ "gnome in the age of decadence". wingolog. June 7, 2008. Archived from the original on February 10, 2013. Retrieved March 12, 2013.
  11. ^ "Planning for GNOME 3.0". April 2, 2009. Archived from the original on March 7, 2012. Retrieved March 12, 2013.
  12. ^ Matthew Garrett (mjg59) wrote, October 26, 2010 18:39:00 (October 26, 2010). "mjg59: Fun facts". Mjg59.livejournal.com. Archived from the original on May 5, 2012. Retrieved March 12, 2013.{{cite web}}: CS1 maint: multiple names: authors list (link) CS1 maint: numeric names: authors list (link)
  13. ^ "ftp.gnome.org". Ftp.accum.se. Archived from the original on December 17, 2022. Retrieved March 12, 2013.
  14. ^ "GNOME 2.28 Release Notes". GNOME. Archived from the original on October 16, 2009. Retrieved March 12, 2013.
  15. ^ "GNOME 2.91.x Development Series". GNOME. March 24, 2011. Archived from the original on January 6, 2014. Retrieved March 12, 2013.
  16. ^ "GNOME 3.0 with GNOME Shell officially launched | ITProPortal.com". Thinq.co.uk. Archived from the original on December 27, 2011. Retrieved March 12, 2013.
  17. ^ "GNOME UX Design Team". Archived from the original on December 26, 2014. Retrieved November 13, 2014.
  18. ^ "GNOME Shell Design". Archived from the original on March 16, 2014. Retrieved May 21, 2014.
  19. ^ "Update StatusNotifierItem/systemtray spec (#84) · Issues · xdg / xdg-specs · GitLab". GitLab. January 17, 2022. Retrieved February 12, 2023.
  20. ^ Kissling, Kristian (July 8, 2009), "Mutter: Window Manager in GNOME's Future", Linux Pro Magazine, archived from the original on October 12, 2018, retrieved March 23, 2011
  21. ^ Cutler, Paul (July 1, 2009), Behind the Scenes with Owen Taylor, archived from the original on October 26, 2016, retrieved January 16, 2016
  22. ^ Taylor, Owen (March 23, 2009), "Metacity, Mutter, GNOME Shell, GNOME-2.28", desktop-devel-list mailing list, archived from the original on March 16, 2012, retrieved August 18, 2012, gnome-shell is set up as a Mutter plugin that is largely written in JavaScript
  23. ^ "Mutter 3.13.4 release". Archived from the original on August 9, 2014. Retrieved July 26, 2014.
  24. ^ "GNOME Shell 3.13.4". Archived from the original on August 9, 2014. Retrieved July 26, 2014.
  25. ^ Ljubunčić, Igor (April 6, 2011), Gnome 3 Fallback mode - Get your productivity back, Dedoimedo, archived from the original on November 11, 2011, retrieved November 25, 2011
  26. ^ "GNOME 3.7: what is happening now | Goings on". GNOME. December 5, 2012. Archived from the original on December 9, 2012. Retrieved March 12, 2013.
  27. ^ "Extensions", GNOME Live!, archived from the original on July 17, 2014, retrieved November 25, 2011
  28. ^ Bîru, Ionuț Mircea (April 30, 2011), "GNOME3 in extra", Arch Linux, archived from the original on January 3, 2012, retrieved December 4, 2011
  29. ^ Releases/15/FeatureList, Fedora Project, archived from the original on April 24, 2013, retrieved November 25, 2011
  30. ^ Portal:12.1, OpenSuSE Project, archived from the original on June 1, 2011, retrieved November 25, 2011
  31. ^ "Release Notes", Mageia Wiki, March 7, 2012, archived from the original on March 14, 2013, retrieved March 24, 2012
  32. ^ "/ packages / sid (unstable) / gnome / gnome-shell", Debian, archived from the original on May 2, 2012, retrieved July 10, 2012
  33. ^ "/ packages / wheezy (testing) / gnome / gnome-shell", Debian, archived from the original on July 9, 2012, retrieved July 10, 2012
  34. ^ "Oracle Solaris 11.4 Officially Released - Phoronix". www.phoronix.com. Archived from the original on June 27, 2020. Retrieved June 25, 2020.
  35. ^ Coopersmith, Alan. "Using GNOME 3 in Oracle Solaris 11.4". Oracle Solaris Blog. Archived from the original on August 1, 2020. Retrieved June 25, 2020.
  36. ^ "GNOME is now the Default Desktop in Ubuntu 17.10 Daily Builds". June 7, 2017. Archived from the original on July 19, 2017. Retrieved July 13, 2017.
  37. ^ "OneiricOcelot/ReleaseNotes - Ubuntu Wiki", Ubuntu Wiki, archived from the original on December 23, 2011, retrieved April 18, 2012
  38. ^ Andrew (October 19, 2012). "Prefer GNOME Shell? Download Ubuntu GNOME Remix 12.10 ~ Web Upd8: Ubuntu / Linux blog". Webupd8.org. Archived from the original on March 10, 2013. Retrieved March 12, 2013.
  39. ^ "Introduction to Ubuntu GNOME". Archived from the original on October 15, 2016. Retrieved April 27, 2013.
  40. ^ Taylor, Owen (March 24, 2009), "Re: Metacity, Mutter, GNOME Shell, GNOME-2.28", desktop-devel-list mailing list, archived from the original on August 31, 2012, retrieved August 18, 2012
  41. ^ Wallen, Jack (March 28, 2014). "GNOME 3.10 has resurrected what was once the darling of the Linux desktop". TechRepublic. Archived from the original on March 28, 2014.
  42. ^ Matt Hartley, Chris Fisher (January 5, 2014). "In Defense of Gnome 3". Linux Action Show. Jupiter Broadcasting. Archived from the original on March 13, 2014. Retrieved April 2, 2014.
[edit]