graphics shell vs graphical shell












3














From Understanding The Linux Kernel




Unix is a multiprocessing operating system with preemptable processes. Even when
no user is logged in and no application is running, several system processes monitor
the peripheral devices. In particular, several processes listen at the system terminals
waiting for user logins. When a user inputs a login name, the listening process runs a
program that validates the user password. If the user identity is acknowledged, the process creates another process that runs a shell into which commands are entered.
When a graphical display is activated, one process runs the window manager, and
each window on the display is usually run by a separate process. When a user creates a graphics shell, one process runs the graphics windows and a second process
runs the shell into which the user can enter the commands. For each user command,
the shell process creates another process that executes the corresponding program.




What does "graphics shell" mean here?



Is gnome shell a graphics shell?



Is my earlier question Where does "graphical shell" stand in the hierarchy of "windowing system, window manager, desktop environment"?
related to the one here? The question links to https://en.wikipedia.org/wiki/Shell_(computing)#GUI, which says




Graphical shells provide means for manipulating programs based on graphical user interface (GUI), by allowing for operations such as opening, closing, moving and resizing windows, as well as switching focus between windows. Graphical shells may be included with desktop environments or come separately, even as a set of loosely coupled utilities.




Does "the shell" near the end mean a "graphics shell"? Is it a command line shell running in a terminal emulator?










share|improve this question
























  • "Is it a command line shell running in a terminal emulator?" Probably yes.
    – sebasth
    Sep 16 '18 at 16:53










  • judging by that fragment, that's not a great read. It's clear that in the mind of the author 'graphics shell' means 'xterm running bash', but I guess that's not the answer you're looking for.
    – mosvy
    Sep 16 '18 at 17:05






  • 2




    +1 to save the question. While it seems obvious, it is not worthy the downvotes.
    – Rui F Ribeiro
    Sep 16 '18 at 18:29


















3














From Understanding The Linux Kernel




Unix is a multiprocessing operating system with preemptable processes. Even when
no user is logged in and no application is running, several system processes monitor
the peripheral devices. In particular, several processes listen at the system terminals
waiting for user logins. When a user inputs a login name, the listening process runs a
program that validates the user password. If the user identity is acknowledged, the process creates another process that runs a shell into which commands are entered.
When a graphical display is activated, one process runs the window manager, and
each window on the display is usually run by a separate process. When a user creates a graphics shell, one process runs the graphics windows and a second process
runs the shell into which the user can enter the commands. For each user command,
the shell process creates another process that executes the corresponding program.




What does "graphics shell" mean here?



Is gnome shell a graphics shell?



Is my earlier question Where does "graphical shell" stand in the hierarchy of "windowing system, window manager, desktop environment"?
related to the one here? The question links to https://en.wikipedia.org/wiki/Shell_(computing)#GUI, which says




Graphical shells provide means for manipulating programs based on graphical user interface (GUI), by allowing for operations such as opening, closing, moving and resizing windows, as well as switching focus between windows. Graphical shells may be included with desktop environments or come separately, even as a set of loosely coupled utilities.




Does "the shell" near the end mean a "graphics shell"? Is it a command line shell running in a terminal emulator?










share|improve this question
























  • "Is it a command line shell running in a terminal emulator?" Probably yes.
    – sebasth
    Sep 16 '18 at 16:53










  • judging by that fragment, that's not a great read. It's clear that in the mind of the author 'graphics shell' means 'xterm running bash', but I guess that's not the answer you're looking for.
    – mosvy
    Sep 16 '18 at 17:05






  • 2




    +1 to save the question. While it seems obvious, it is not worthy the downvotes.
    – Rui F Ribeiro
    Sep 16 '18 at 18:29
















3












3








3


1





From Understanding The Linux Kernel




Unix is a multiprocessing operating system with preemptable processes. Even when
no user is logged in and no application is running, several system processes monitor
the peripheral devices. In particular, several processes listen at the system terminals
waiting for user logins. When a user inputs a login name, the listening process runs a
program that validates the user password. If the user identity is acknowledged, the process creates another process that runs a shell into which commands are entered.
When a graphical display is activated, one process runs the window manager, and
each window on the display is usually run by a separate process. When a user creates a graphics shell, one process runs the graphics windows and a second process
runs the shell into which the user can enter the commands. For each user command,
the shell process creates another process that executes the corresponding program.




What does "graphics shell" mean here?



Is gnome shell a graphics shell?



Is my earlier question Where does "graphical shell" stand in the hierarchy of "windowing system, window manager, desktop environment"?
related to the one here? The question links to https://en.wikipedia.org/wiki/Shell_(computing)#GUI, which says




Graphical shells provide means for manipulating programs based on graphical user interface (GUI), by allowing for operations such as opening, closing, moving and resizing windows, as well as switching focus between windows. Graphical shells may be included with desktop environments or come separately, even as a set of loosely coupled utilities.




Does "the shell" near the end mean a "graphics shell"? Is it a command line shell running in a terminal emulator?










share|improve this question















From Understanding The Linux Kernel




Unix is a multiprocessing operating system with preemptable processes. Even when
no user is logged in and no application is running, several system processes monitor
the peripheral devices. In particular, several processes listen at the system terminals
waiting for user logins. When a user inputs a login name, the listening process runs a
program that validates the user password. If the user identity is acknowledged, the process creates another process that runs a shell into which commands are entered.
When a graphical display is activated, one process runs the window manager, and
each window on the display is usually run by a separate process. When a user creates a graphics shell, one process runs the graphics windows and a second process
runs the shell into which the user can enter the commands. For each user command,
the shell process creates another process that executes the corresponding program.




What does "graphics shell" mean here?



Is gnome shell a graphics shell?



Is my earlier question Where does "graphical shell" stand in the hierarchy of "windowing system, window manager, desktop environment"?
related to the one here? The question links to https://en.wikipedia.org/wiki/Shell_(computing)#GUI, which says




Graphical shells provide means for manipulating programs based on graphical user interface (GUI), by allowing for operations such as opening, closing, moving and resizing windows, as well as switching focus between windows. Graphical shells may be included with desktop environments or come separately, even as a set of loosely coupled utilities.




Does "the shell" near the end mean a "graphics shell"? Is it a command line shell running in a terminal emulator?







linux shell gui






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Dec 21 '18 at 16:54

























asked Sep 16 '18 at 16:12









Tim

26.1k74246455




26.1k74246455












  • "Is it a command line shell running in a terminal emulator?" Probably yes.
    – sebasth
    Sep 16 '18 at 16:53










  • judging by that fragment, that's not a great read. It's clear that in the mind of the author 'graphics shell' means 'xterm running bash', but I guess that's not the answer you're looking for.
    – mosvy
    Sep 16 '18 at 17:05






  • 2




    +1 to save the question. While it seems obvious, it is not worthy the downvotes.
    – Rui F Ribeiro
    Sep 16 '18 at 18:29




















  • "Is it a command line shell running in a terminal emulator?" Probably yes.
    – sebasth
    Sep 16 '18 at 16:53










  • judging by that fragment, that's not a great read. It's clear that in the mind of the author 'graphics shell' means 'xterm running bash', but I guess that's not the answer you're looking for.
    – mosvy
    Sep 16 '18 at 17:05






  • 2




    +1 to save the question. While it seems obvious, it is not worthy the downvotes.
    – Rui F Ribeiro
    Sep 16 '18 at 18:29


















"Is it a command line shell running in a terminal emulator?" Probably yes.
– sebasth
Sep 16 '18 at 16:53




"Is it a command line shell running in a terminal emulator?" Probably yes.
– sebasth
Sep 16 '18 at 16:53












judging by that fragment, that's not a great read. It's clear that in the mind of the author 'graphics shell' means 'xterm running bash', but I guess that's not the answer you're looking for.
– mosvy
Sep 16 '18 at 17:05




judging by that fragment, that's not a great read. It's clear that in the mind of the author 'graphics shell' means 'xterm running bash', but I guess that's not the answer you're looking for.
– mosvy
Sep 16 '18 at 17:05




2




2




+1 to save the question. While it seems obvious, it is not worthy the downvotes.
– Rui F Ribeiro
Sep 16 '18 at 18:29






+1 to save the question. While it seems obvious, it is not worthy the downvotes.
– Rui F Ribeiro
Sep 16 '18 at 18:29












1 Answer
1






active

oldest

votes


















5














The term graphics shell can be both a graphical shell or a command line shell running under it. Meaning, the user graphical interface (GUI) or the command line that controls the GUI functions.



First, let's begin with the shell, what "shell" means: the definition of the word "shell" means a program, or even a group of programs working together, it controls the operating system, and the hardware, so the shell is really the software gives you direct control over the computer.



A graphical shell is a shell that presents output as 2D or 3D graphics, as opposed to plain text. In other words, it is the graphical user interface (GUI) that include windows, menus ...etc that the provide more flexible interaction between the user and the system instead of the plain dull-text offered by terminal interface.



However, given that the core of the GUI is built as a shell, then all its functions can be controlled by the command line. For example, the command genome-shell is the graphical shell for the GNOME desktop, this command provides core user interface functions for the GNOME desktop that can be adjusted by a command line. Another example, is nautilus which is the main GUI interface of files explorer in Gnome, this interface is available as a command line called nautilus. This command line has the following functions:



$ nautilus --help
Usage:
nautilus [OPTION...] [URI...]

Help Options:
-h, --help Show help options
--help-all Show all help options
--help-gapplication Show GApplication options
--help-gtk Show GTK+ Options

Application Options:
-c, --check Perform a quick set of self-check tests.
--version Show the version of the program.
-w, --new-window Always open a new window for browsing specified URIs
-n, --no-default-window Only create windows for explicitly specified URIs.
-q, --quit Quit Nautilus.
-s, --select Select specified URI in parent folder.
--display=DISPLAY X display to use


Meaning, you can control the GUI functions through the command line.



In Linux, a graphical shell is usually made of a couple of layers of software. The operating system should provide graphics drivers, and keyboard and mouse drivers. Then on top of the drivers, you have a windowing system like X11 or Wayland. It
creates higher-level wrappers around input (like providing keyboard layouts), to manage the memory that store the 2D images that are transmitted to the display driver, and to provide apps with capabilities to paint to these 2D images in memory.



Above the windowing system you have a window manager, and this is how an application translates keyboard and mouse events into system calls that manipulate the windows that the apps are painting to. This includes tasks such as launching, pausing, hiding, showing, and closing apps, detecting when an app has failed and cleaning up after it.



There are dozens of popular window managers, including Unity, Gnome Shell, Xfwm, OpenBox, i3, Xmonad and many others.



Apps can draw graphics as they see fit, however app developers usually prefer to make use of a common set of drawing tools, so their app looks consistent with all other apps running on the system. These are software libraries that you import into your app. You then call their functions to draw menus, buttons, text input, and display images like PNG and JPG images.



These common drawing tools are called "widget toolkits." The two most popular widget toolkits on Linux are Gtk+ and Qt. You can use both Gtk+ and Qt at the same time, and this is often why different apps on Linux can sometimes have inconsistencies in their look and feel.



These layers are pretty specific to the Linux software ecosystem. Mac OS, Windows, and Android all do things differently, but they all tend to integrate each of these layers into a single monolithic graphical shell software. It simplifies things, but also prevents a lot of customization.



The reason Linux complicates things is because people prefer to have choices, and they enjoy to customize their shells. If you are managing your own Linux distribution, it is a good idea to put some effort into choosing your default set of apps so that they all use the same widget toolkits, and provide a consistent look and feel.



On top of the graphical shell, you can build graphical apps, such as file system browsers, app launchers, notification and system status apps, and system configuration ("control panel") apps. These apps taken collectively make up what we call the "desktop environment."






share|improve this answer



















  • 2




    Congrats for synthesising such a nice read, hope you do not mind the grammar tweaks.
    – Rui F Ribeiro
    Sep 16 '18 at 18:28








  • 1




    @Rui F Ribeiro. Fantastic revisions! thank you so much! ;-)
    – user88036
    Sep 16 '18 at 18:48











Your Answer








StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "106"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);

StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});

function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f469406%2fgraphics-shell-vs-graphical-shell%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown

























1 Answer
1






active

oldest

votes








1 Answer
1






active

oldest

votes









active

oldest

votes






active

oldest

votes









5














The term graphics shell can be both a graphical shell or a command line shell running under it. Meaning, the user graphical interface (GUI) or the command line that controls the GUI functions.



First, let's begin with the shell, what "shell" means: the definition of the word "shell" means a program, or even a group of programs working together, it controls the operating system, and the hardware, so the shell is really the software gives you direct control over the computer.



A graphical shell is a shell that presents output as 2D or 3D graphics, as opposed to plain text. In other words, it is the graphical user interface (GUI) that include windows, menus ...etc that the provide more flexible interaction between the user and the system instead of the plain dull-text offered by terminal interface.



However, given that the core of the GUI is built as a shell, then all its functions can be controlled by the command line. For example, the command genome-shell is the graphical shell for the GNOME desktop, this command provides core user interface functions for the GNOME desktop that can be adjusted by a command line. Another example, is nautilus which is the main GUI interface of files explorer in Gnome, this interface is available as a command line called nautilus. This command line has the following functions:



$ nautilus --help
Usage:
nautilus [OPTION...] [URI...]

Help Options:
-h, --help Show help options
--help-all Show all help options
--help-gapplication Show GApplication options
--help-gtk Show GTK+ Options

Application Options:
-c, --check Perform a quick set of self-check tests.
--version Show the version of the program.
-w, --new-window Always open a new window for browsing specified URIs
-n, --no-default-window Only create windows for explicitly specified URIs.
-q, --quit Quit Nautilus.
-s, --select Select specified URI in parent folder.
--display=DISPLAY X display to use


Meaning, you can control the GUI functions through the command line.



In Linux, a graphical shell is usually made of a couple of layers of software. The operating system should provide graphics drivers, and keyboard and mouse drivers. Then on top of the drivers, you have a windowing system like X11 or Wayland. It
creates higher-level wrappers around input (like providing keyboard layouts), to manage the memory that store the 2D images that are transmitted to the display driver, and to provide apps with capabilities to paint to these 2D images in memory.



Above the windowing system you have a window manager, and this is how an application translates keyboard and mouse events into system calls that manipulate the windows that the apps are painting to. This includes tasks such as launching, pausing, hiding, showing, and closing apps, detecting when an app has failed and cleaning up after it.



There are dozens of popular window managers, including Unity, Gnome Shell, Xfwm, OpenBox, i3, Xmonad and many others.



Apps can draw graphics as they see fit, however app developers usually prefer to make use of a common set of drawing tools, so their app looks consistent with all other apps running on the system. These are software libraries that you import into your app. You then call their functions to draw menus, buttons, text input, and display images like PNG and JPG images.



These common drawing tools are called "widget toolkits." The two most popular widget toolkits on Linux are Gtk+ and Qt. You can use both Gtk+ and Qt at the same time, and this is often why different apps on Linux can sometimes have inconsistencies in their look and feel.



These layers are pretty specific to the Linux software ecosystem. Mac OS, Windows, and Android all do things differently, but they all tend to integrate each of these layers into a single monolithic graphical shell software. It simplifies things, but also prevents a lot of customization.



The reason Linux complicates things is because people prefer to have choices, and they enjoy to customize their shells. If you are managing your own Linux distribution, it is a good idea to put some effort into choosing your default set of apps so that they all use the same widget toolkits, and provide a consistent look and feel.



On top of the graphical shell, you can build graphical apps, such as file system browsers, app launchers, notification and system status apps, and system configuration ("control panel") apps. These apps taken collectively make up what we call the "desktop environment."






share|improve this answer



















  • 2




    Congrats for synthesising such a nice read, hope you do not mind the grammar tweaks.
    – Rui F Ribeiro
    Sep 16 '18 at 18:28








  • 1




    @Rui F Ribeiro. Fantastic revisions! thank you so much! ;-)
    – user88036
    Sep 16 '18 at 18:48
















5














The term graphics shell can be both a graphical shell or a command line shell running under it. Meaning, the user graphical interface (GUI) or the command line that controls the GUI functions.



First, let's begin with the shell, what "shell" means: the definition of the word "shell" means a program, or even a group of programs working together, it controls the operating system, and the hardware, so the shell is really the software gives you direct control over the computer.



A graphical shell is a shell that presents output as 2D or 3D graphics, as opposed to plain text. In other words, it is the graphical user interface (GUI) that include windows, menus ...etc that the provide more flexible interaction between the user and the system instead of the plain dull-text offered by terminal interface.



However, given that the core of the GUI is built as a shell, then all its functions can be controlled by the command line. For example, the command genome-shell is the graphical shell for the GNOME desktop, this command provides core user interface functions for the GNOME desktop that can be adjusted by a command line. Another example, is nautilus which is the main GUI interface of files explorer in Gnome, this interface is available as a command line called nautilus. This command line has the following functions:



$ nautilus --help
Usage:
nautilus [OPTION...] [URI...]

Help Options:
-h, --help Show help options
--help-all Show all help options
--help-gapplication Show GApplication options
--help-gtk Show GTK+ Options

Application Options:
-c, --check Perform a quick set of self-check tests.
--version Show the version of the program.
-w, --new-window Always open a new window for browsing specified URIs
-n, --no-default-window Only create windows for explicitly specified URIs.
-q, --quit Quit Nautilus.
-s, --select Select specified URI in parent folder.
--display=DISPLAY X display to use


Meaning, you can control the GUI functions through the command line.



In Linux, a graphical shell is usually made of a couple of layers of software. The operating system should provide graphics drivers, and keyboard and mouse drivers. Then on top of the drivers, you have a windowing system like X11 or Wayland. It
creates higher-level wrappers around input (like providing keyboard layouts), to manage the memory that store the 2D images that are transmitted to the display driver, and to provide apps with capabilities to paint to these 2D images in memory.



Above the windowing system you have a window manager, and this is how an application translates keyboard and mouse events into system calls that manipulate the windows that the apps are painting to. This includes tasks such as launching, pausing, hiding, showing, and closing apps, detecting when an app has failed and cleaning up after it.



There are dozens of popular window managers, including Unity, Gnome Shell, Xfwm, OpenBox, i3, Xmonad and many others.



Apps can draw graphics as they see fit, however app developers usually prefer to make use of a common set of drawing tools, so their app looks consistent with all other apps running on the system. These are software libraries that you import into your app. You then call their functions to draw menus, buttons, text input, and display images like PNG and JPG images.



These common drawing tools are called "widget toolkits." The two most popular widget toolkits on Linux are Gtk+ and Qt. You can use both Gtk+ and Qt at the same time, and this is often why different apps on Linux can sometimes have inconsistencies in their look and feel.



These layers are pretty specific to the Linux software ecosystem. Mac OS, Windows, and Android all do things differently, but they all tend to integrate each of these layers into a single monolithic graphical shell software. It simplifies things, but also prevents a lot of customization.



The reason Linux complicates things is because people prefer to have choices, and they enjoy to customize their shells. If you are managing your own Linux distribution, it is a good idea to put some effort into choosing your default set of apps so that they all use the same widget toolkits, and provide a consistent look and feel.



On top of the graphical shell, you can build graphical apps, such as file system browsers, app launchers, notification and system status apps, and system configuration ("control panel") apps. These apps taken collectively make up what we call the "desktop environment."






share|improve this answer



















  • 2




    Congrats for synthesising such a nice read, hope you do not mind the grammar tweaks.
    – Rui F Ribeiro
    Sep 16 '18 at 18:28








  • 1




    @Rui F Ribeiro. Fantastic revisions! thank you so much! ;-)
    – user88036
    Sep 16 '18 at 18:48














5












5








5






The term graphics shell can be both a graphical shell or a command line shell running under it. Meaning, the user graphical interface (GUI) or the command line that controls the GUI functions.



First, let's begin with the shell, what "shell" means: the definition of the word "shell" means a program, or even a group of programs working together, it controls the operating system, and the hardware, so the shell is really the software gives you direct control over the computer.



A graphical shell is a shell that presents output as 2D or 3D graphics, as opposed to plain text. In other words, it is the graphical user interface (GUI) that include windows, menus ...etc that the provide more flexible interaction between the user and the system instead of the plain dull-text offered by terminal interface.



However, given that the core of the GUI is built as a shell, then all its functions can be controlled by the command line. For example, the command genome-shell is the graphical shell for the GNOME desktop, this command provides core user interface functions for the GNOME desktop that can be adjusted by a command line. Another example, is nautilus which is the main GUI interface of files explorer in Gnome, this interface is available as a command line called nautilus. This command line has the following functions:



$ nautilus --help
Usage:
nautilus [OPTION...] [URI...]

Help Options:
-h, --help Show help options
--help-all Show all help options
--help-gapplication Show GApplication options
--help-gtk Show GTK+ Options

Application Options:
-c, --check Perform a quick set of self-check tests.
--version Show the version of the program.
-w, --new-window Always open a new window for browsing specified URIs
-n, --no-default-window Only create windows for explicitly specified URIs.
-q, --quit Quit Nautilus.
-s, --select Select specified URI in parent folder.
--display=DISPLAY X display to use


Meaning, you can control the GUI functions through the command line.



In Linux, a graphical shell is usually made of a couple of layers of software. The operating system should provide graphics drivers, and keyboard and mouse drivers. Then on top of the drivers, you have a windowing system like X11 or Wayland. It
creates higher-level wrappers around input (like providing keyboard layouts), to manage the memory that store the 2D images that are transmitted to the display driver, and to provide apps with capabilities to paint to these 2D images in memory.



Above the windowing system you have a window manager, and this is how an application translates keyboard and mouse events into system calls that manipulate the windows that the apps are painting to. This includes tasks such as launching, pausing, hiding, showing, and closing apps, detecting when an app has failed and cleaning up after it.



There are dozens of popular window managers, including Unity, Gnome Shell, Xfwm, OpenBox, i3, Xmonad and many others.



Apps can draw graphics as they see fit, however app developers usually prefer to make use of a common set of drawing tools, so their app looks consistent with all other apps running on the system. These are software libraries that you import into your app. You then call their functions to draw menus, buttons, text input, and display images like PNG and JPG images.



These common drawing tools are called "widget toolkits." The two most popular widget toolkits on Linux are Gtk+ and Qt. You can use both Gtk+ and Qt at the same time, and this is often why different apps on Linux can sometimes have inconsistencies in their look and feel.



These layers are pretty specific to the Linux software ecosystem. Mac OS, Windows, and Android all do things differently, but they all tend to integrate each of these layers into a single monolithic graphical shell software. It simplifies things, but also prevents a lot of customization.



The reason Linux complicates things is because people prefer to have choices, and they enjoy to customize their shells. If you are managing your own Linux distribution, it is a good idea to put some effort into choosing your default set of apps so that they all use the same widget toolkits, and provide a consistent look and feel.



On top of the graphical shell, you can build graphical apps, such as file system browsers, app launchers, notification and system status apps, and system configuration ("control panel") apps. These apps taken collectively make up what we call the "desktop environment."






share|improve this answer














The term graphics shell can be both a graphical shell or a command line shell running under it. Meaning, the user graphical interface (GUI) or the command line that controls the GUI functions.



First, let's begin with the shell, what "shell" means: the definition of the word "shell" means a program, or even a group of programs working together, it controls the operating system, and the hardware, so the shell is really the software gives you direct control over the computer.



A graphical shell is a shell that presents output as 2D or 3D graphics, as opposed to plain text. In other words, it is the graphical user interface (GUI) that include windows, menus ...etc that the provide more flexible interaction between the user and the system instead of the plain dull-text offered by terminal interface.



However, given that the core of the GUI is built as a shell, then all its functions can be controlled by the command line. For example, the command genome-shell is the graphical shell for the GNOME desktop, this command provides core user interface functions for the GNOME desktop that can be adjusted by a command line. Another example, is nautilus which is the main GUI interface of files explorer in Gnome, this interface is available as a command line called nautilus. This command line has the following functions:



$ nautilus --help
Usage:
nautilus [OPTION...] [URI...]

Help Options:
-h, --help Show help options
--help-all Show all help options
--help-gapplication Show GApplication options
--help-gtk Show GTK+ Options

Application Options:
-c, --check Perform a quick set of self-check tests.
--version Show the version of the program.
-w, --new-window Always open a new window for browsing specified URIs
-n, --no-default-window Only create windows for explicitly specified URIs.
-q, --quit Quit Nautilus.
-s, --select Select specified URI in parent folder.
--display=DISPLAY X display to use


Meaning, you can control the GUI functions through the command line.



In Linux, a graphical shell is usually made of a couple of layers of software. The operating system should provide graphics drivers, and keyboard and mouse drivers. Then on top of the drivers, you have a windowing system like X11 or Wayland. It
creates higher-level wrappers around input (like providing keyboard layouts), to manage the memory that store the 2D images that are transmitted to the display driver, and to provide apps with capabilities to paint to these 2D images in memory.



Above the windowing system you have a window manager, and this is how an application translates keyboard and mouse events into system calls that manipulate the windows that the apps are painting to. This includes tasks such as launching, pausing, hiding, showing, and closing apps, detecting when an app has failed and cleaning up after it.



There are dozens of popular window managers, including Unity, Gnome Shell, Xfwm, OpenBox, i3, Xmonad and many others.



Apps can draw graphics as they see fit, however app developers usually prefer to make use of a common set of drawing tools, so their app looks consistent with all other apps running on the system. These are software libraries that you import into your app. You then call their functions to draw menus, buttons, text input, and display images like PNG and JPG images.



These common drawing tools are called "widget toolkits." The two most popular widget toolkits on Linux are Gtk+ and Qt. You can use both Gtk+ and Qt at the same time, and this is often why different apps on Linux can sometimes have inconsistencies in their look and feel.



These layers are pretty specific to the Linux software ecosystem. Mac OS, Windows, and Android all do things differently, but they all tend to integrate each of these layers into a single monolithic graphical shell software. It simplifies things, but also prevents a lot of customization.



The reason Linux complicates things is because people prefer to have choices, and they enjoy to customize their shells. If you are managing your own Linux distribution, it is a good idea to put some effort into choosing your default set of apps so that they all use the same widget toolkits, and provide a consistent look and feel.



On top of the graphical shell, you can build graphical apps, such as file system browsers, app launchers, notification and system status apps, and system configuration ("control panel") apps. These apps taken collectively make up what we call the "desktop environment."







share|improve this answer














share|improve this answer



share|improve this answer








edited Sep 16 '18 at 18:26









Rui F Ribeiro

39.1k1479130




39.1k1479130










answered Sep 16 '18 at 17:11







user88036















  • 2




    Congrats for synthesising such a nice read, hope you do not mind the grammar tweaks.
    – Rui F Ribeiro
    Sep 16 '18 at 18:28








  • 1




    @Rui F Ribeiro. Fantastic revisions! thank you so much! ;-)
    – user88036
    Sep 16 '18 at 18:48














  • 2




    Congrats for synthesising such a nice read, hope you do not mind the grammar tweaks.
    – Rui F Ribeiro
    Sep 16 '18 at 18:28








  • 1




    @Rui F Ribeiro. Fantastic revisions! thank you so much! ;-)
    – user88036
    Sep 16 '18 at 18:48








2




2




Congrats for synthesising such a nice read, hope you do not mind the grammar tweaks.
– Rui F Ribeiro
Sep 16 '18 at 18:28






Congrats for synthesising such a nice read, hope you do not mind the grammar tweaks.
– Rui F Ribeiro
Sep 16 '18 at 18:28






1




1




@Rui F Ribeiro. Fantastic revisions! thank you so much! ;-)
– user88036
Sep 16 '18 at 18:48




@Rui F Ribeiro. Fantastic revisions! thank you so much! ;-)
– user88036
Sep 16 '18 at 18:48


















draft saved

draft discarded




















































Thanks for contributing an answer to Unix & Linux Stack Exchange!


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.





Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


Please pay close attention to the following guidance:


  • Please be sure to answer the question. Provide details and share your research!

But avoid



  • Asking for help, clarification, or responding to other answers.

  • Making statements based on opinion; back them up with references or personal experience.


To learn more, see our tips on writing great answers.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2funix.stackexchange.com%2fquestions%2f469406%2fgraphics-shell-vs-graphical-shell%23new-answer', 'question_page');
}
);

Post as a guest















Required, but never shown





















































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown

































Required, but never shown














Required, but never shown












Required, but never shown







Required, but never shown







Popular posts from this blog

Morgemoulin

Scott Moir

Souastre