Show Desktop

#GNOME was started in 1999, and twenty years later (today is Sunday, July 28 2019), the best it has been able to achieve is to get rid of the show desktop button or function.

Of course, the brilliant idea behind Gnome3 was: if I eliminate the desktop area I don't need the show the desktop icons either, as well as minimize and maximize the windows. As a matter of fact the main philosophy behind Gnome3 is fixing things simply deleting everything is not conforming with their plans, as I said: BRILLIANT.

However as I told in others post the Gnome approach is fine for whom works for activities (whatever it is actually means) rather than for tasks, the way the old Gnome 2.x used to work before the introduction of Gnome-Shell. Which is the result?

The result is that does not exist a default plugin/extension to show the desktop for any panels available on Gnome-Shell anymore (unless you don't use perhaps classic or fallback, if those still exist); and since the moment the superior minds behind Gnome3 decided that us, simple peasants, do not understand nothing, twenty years later the first Gnome debuts, showing the desktop has became a silly thing. You had better to got that otherwise you are just a peasant.

However sometimes, if not even often, peasants preserve that popular wisdom able to solve also modern and unforeseen problem, like the lacking of a Show Desktop Button in a modern Desktop Environment. As a matter of fact a generous person donated, many years ago, to the community an utility (something that through the POP Store 🤦‍♂️ you'll never find) called WMCTRL able to handle some Desktop tasks:

The wmctrl program is a UNIX/Linux command line tool to interact with an EWMH/NetWM compatible X Window Manager.

And the good news is: it works even with Gnome-Shell (so far).

What is this about?

wmctrl is a command-line utility able to do a lot operations with the windows and your desktop area, also to minimize and maximize all the windows at once for a specific desktop area; we are going to use a command that does exactly this: minimize and maximize the windows in order to show your desktop and the icons (this extension is enable by default on Ubuntu as well as on POP!_OS). back to that time I used to have it as an executable script but I found a better version and the good thing is with this command you don't need anymore an executable script and a .desktop file but just the latter, that you have to save in: ~/.local/share/applications/.

The command is the following one:

bash -c "if wmctrl -m | grep 'mode: ON'; then exec wmctrl -k off; else exec wmctrl -k on; fi"

Pretty neat; and when you create a .desktop file it will create a launcher in the “activity/applications” that we can add to the favorite, assuming that you are using dash-to-dock like me, and having the dock always visible like this:

Show Desktop ButtonThe Show Desktop Button is above the Firefox icon

What have I to do?

  1. Installing WMCTRL through terminal:

    sudo apt install wmctrl
    
  2. Creating the .desktop file, copy this command:

    gedit ~/.local/share/applications/show-desktop.desktop
    

    press ALT+F2 past the command and press enter.

  3. Copy the text below inside the Text Editor and when finished save and exit:

    [Desktop Entry]
    Name=Show Desktop
    Comment=Show the desktop
    Exec=bash -c "if wmctrl -m | grep 'mode: ON'; then exec wmctrl -k off; else exec wmctrl -k on; fi"
    # Translators: Do NOT translate or transliterate this text (this is an icon file name)!
    Icon=desktop-panel
    Terminal=false
    Type=Application
    StartupNotify=true
    Categories=GNOME;GTK;System;Utility;
    
  4. Go to the applications and adding the Show Desktop to the favorite.

Does it work good?

Yes it works, however it is not perfect; it really doesn't play nicely with Gnome-Shell and every time you use it a wheel is spinning and Gnome-Shell is eating the CPU for a bunch of seconds:

  PID [...]  PR  NI    VIRT    RES    SHR S  %CPU  %MEM     TIME+ COMMAND                                                                          
 2297 [...]  -2   0 3326992 400152 102612 S  46.2   2.4   3:13.17 gnome-shell

Beside this, the advantages are:

  1. won't break like the extensions do;
  2. no animations.
  3. it works for all your monitors while extensions works only on the main panel which lies on the main monitor.

Especially the latter pushed me to adopt it instead of an extension.

Don't you promise to be constructive?

Yep, I actually promised to be constructive however I can't ignore some issues that are constantly repeated in Gnome-Shell because is arguable design and philosophy:

  1. Extensions are often broken, I found several extensions and the only one working (through a manual fix) had a big and annoying issue: it works only on the main panel.

  2. Extensions are created by people with very few knowledge and are prone to be constantly buggy and unpolished.

For example the Show Desktop Extension I tested (the only one working, so far) in order to work needs a small hack, but the most interesting part for me is this author comment:

I found an extension that does exactly what I want, but it was quite old. I tried to update it a little bit and make it work. I'm still learning how to make extensions, so all the credits go to the original author and his collaborators.

All the extensions I tested and I am using are suffering the same, you see that aren't organic and well integrated with Gnome-Shell, is this an achievement? I think not because you can see all the effort that the other DEs are putting to provide for any type of users the basic and advance functions, while Gnome really has, for me, true difficult to reach at least the basic functions, for we simple peasants.

The Gnome team has threw on the garbage a Desktop Environment almost perfect to make us the pleasure to offering to us a new one that does the halves of the thing the previous used to do. And with the velocity it is constantly breaking API/ABI you will never have working, polished, bug-free extensions unless a Gnome-Dev decides to dirt his/her hands on this, which is pretty unrealistic.

The more I am using Gnome3/POP!_OS the more I am regretting my choice; the only reason why I am not going to give up is because, beside KDE which I have never fall in love with it, there aren't other alternative to XFCE good enough for me. MATE is the bleached copy of Gnome 2.x, Pantheon is not designed to be customized, Budgie is cool but still immature and Cinnamon never impressed me. The sum of all the our I have spent to make Gnome 3 usable (for me) plus the hours that all the guys put into creating the extensions (working and broken) to make it a decent desktop environment are the evidence of the total disaster the Gnome 3 has been for the community.

#PostInstallation #PopOS #Gnome3 #LinuxDesktop #OpenSource #Docky #Linux #System76 #Ubuntu #ShowDesktop #GnomeShellExtensions #LinuxDesktopTuning

if you want comment this article add me on Diaspora, Friendica or Mastodon: gnuserland@social.isurf.ca