2

I'm struggling to understand what the GNOME Shell is, and how it differs to a desktop environment.

This question has been asked before. For example: Differences between GNOME 2 and GNOME 3

But I'm still unclear. In the above post, the response is

What is GNOME Shell: GNOME Shell is the core user interface of the GNOME desktop environment.

However, in my mind, the core user interface of the desktop environment IS the desktop environment.

There is a link there to a wiki page on general graphical shells. I'm aware this may apply generally to any graphical OS / distro, but since I'm starting to use Ubuntu, and that there is a distinct concept of a gnome shell, I thought I'd keep the question ubuntu-centric.

  1. What exactly is the GNOME Shell?

  2. What would the desktop environment be without the GNOME Shell?

  3. What would the GNOME Shell be without a DE?

muru
  • 197,895
  • 55
  • 485
  • 740
fangled
  • 31
  • GNOME Shell is the default interface in GNOME 3. GNOME Shell’s desktop includes a minimal interface with just a top bar. By default, there’s no way to launch applications or view open windows without pulling up the Activities screen. – JoKeR Apr 21 '20 at 08:54

2 Answers2

1

First, read: What is the difference between a desktop environment and a window manager?

In particular:

A desktop environment gives you an overall user experience. It has the panels, the system menus, the starters, the status applets. It needs a window manager, of course, to manage the windows. It might offer a default file explorer and viewer. To streamline, it might even contain default editor, terminal program, or even e-mailer, all made to look alike and work together.

Or from Wikipedia:

[A] desktop environment typically consists of several separate components, including a window manager (such as Mutter or KWin), a file manager (such as Files or Dolphin), a set of graphical themes, together with toolkits (such as GTK+ and Qt) and libraries for managing the desktop.

The GNOME desktop environment, then, can be though of as having:

  • GNOME Shell as the UI for accessing:
  • Nautilus (Files) for the file manager
  • Evince for document viewing
  • GNOME Terminal
  • Evolution for emails
  • ...

Once that's done:

  1. What exactly is the GNOME Shell?

GNOME Shell is a combination of window manager, panel and items for that panel (all of which would be separate on something like Xfce) (and the actual desktop, which would traditionally have been handled by the file manager).

  1. What would the desktop environment be without the GNOME Shell?

Everything else mentioned above.

  1. What would the GNOME Shell be without a DE?

Mostly useless. You need other things to actually do anything - and GNOME Shell coordinates and handles the access of those things while you're using them.

muru
  • 197,895
  • 55
  • 485
  • 740
  • thanks - What do you mean by "Starters" - are these the items in the starter menu bottom left? Also, for number 2, the DE without the shell would be what? I know you said everything else. but without a window manager, panels, items, etc whats left ? – fangled Apr 21 '20 at 11:17
  • @fangled "startes" is from the other post, I'd say it means application launchers. Whats left? "- Nautilus (Files) for the file manager
    • Evince for document viewing
    • GNOME Terminal
    • Evolution for emails
    • ..." The actual applications that you'd be using.
    – muru Apr 21 '20 at 11:38
  • thanks. I'll be honest with you, I'm still not 100% clear, because my brain cannot compute. That said, I've taken your answer, and also add the wiki page link .. https://en.wikipedia.org/wiki/GNOME_Shell , and also add the wiki page link ... https://en.wikipedia.org/wiki/Mutter_(software) where it is noted that gnomeshell is a plugin to mutter ( written in javascript) and I think I'm beginning to kind of understand. Thanks very much. – fangled Apr 22 '20 at 08:56
  • @fangled let me see if I can restate: GNOME Shell is just the UI you use for starting and accessing applications like the file manager, browser etc. The desktop environment as a whole is both this UI and those applications. The UI by itself is can't do much without the applications, and the DE without the UI has no way to access the applications. – muru Apr 22 '20 at 09:01
  • ok thanks - then, I wonder if it makes more sense to call gnome-shell an "addon" to a basic gnome desktop with minimal or no user functionality, so, perhaps the answer to q3 (gnome-shell without a desktop) is that it doesn't make sense, as its a plugin to the desktop? – fangled Apr 22 '20 at 09:06
  • @fangled in that sense everything is an addon to the desktop. It's a component, like all the other components (file manager, terminal, mail client, etc.) – muru Apr 22 '20 at 09:08
1

I've taken your answer @Muru, and also add the wiki page link .. en.wikipedia.org/wiki/GNOME_Shell , and also add the wiki page link ... en.wikipedia.org/wiki/Mutter_(software) where it is noted that gnome-shell is a plugin to mutter ( written in javascript) and I think I'm beginning to kind of understand.

I wonder if it makes more sense to call gnome-shell a configurable, feature-rich "addon" to a basic gnome desktop ( which without the shell would have minimal or no user functionality), so, perhaps the answer to q3 (gnome-shell without a desktop) is that it doesn't make sense, as its a plugin to the desktop?

It sounds like it is a fundamental mandatory component to the gnome desktop. Without the gnome shell, I'm guessing a user would not be able to do anything at all, apart from click on any icons/apps that happen to be already sitting on the desktop.

TBH, the wiki page is actually quite rich in it's definition which I have copied over to here below.

https://en.wikipedia.org/wiki/GNOME_Shell

Design Components

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

Top bar
System status area
Activities Overview
Dash
Window picker
Application picker
Search
Notifications and calendar tray
Application switcher
Indicators tray (deprecated)

Software architecture 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

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
    Search
"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

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]

fangled
  • 31