Nevertheless, you still might find some useful information below.
Update 23 June 2023: wmctrl
is better than xdotool
Use wmctrl
as @AndAC says here, instead. wmctrl
is superior to my xdotool
solution because it works in the Wayland window manager too, not just X11. And, wmctrl
is superior to ydotool
(which works in Wayland too) because wmctrl
doesn't require sudo
nor a daemon, whereas ydotool
requires a background daemon which must be started with sudo
.
I have tested the wmctrl
solution in Ubuntu 22.04.2 in both the X11 and Wayland window managers, and it works great to show and hide the windows/desktop in both!
See my 3 test files in my eRCaGuy_hello_world repo here:
- bash/show_desktop_with_wmctrl.sh
- bash/show_desktop_with_xdotool.sh
- bash/show_desktop_with_ydotool.sh
Original answer:
First off, know that keyboard shortcuts Super (Windows Key) + D, or Ctrl + Alt + D will toggle between showing/hiding the desktop. You may get used to this keyboard shortcut and decide it's better than clicking an icon anyway. Nevertheless, we can create a clickable shortcut which will simply do this keyboard shortcut for us to show/hide the desktop.
Note that I recommend using Option 1 [MY PREFERRED CHOICE] OR one of the methods from Option 2 below, but not both Option 1 and Option 2 together, as they seem to conflict in weird ways. Ie: if you set up Option 1 then set up one of the Option 2's, just remove the Show Desktop icon from Option 1 as a favorite, and stop using it. Weird things happen if you click the Show Desktop icon from Option 1 after installing one of the Option 2s. I think this is because xdotool
(used by Option 1) is attempting to send messages to your system as though they came from your keyboard, so however the Option 2 methods work, they conflict with xdotool
or something and sometimes your Super key or mouse keys seem to get "stuck" down simply by using both Options together. Note that this unusual and buggy behavior does NOT present itself, however, if you manually use the Super + D shorcut together with an Option 2 method, OR if you use just the Option 1 method and no Option 2 methods.
My recommendation is to use the Option 1 method below in conjunction with the Super (Windows Key) + D keyboard shortcut whenever you feel like using the keyboard shortcut instead.
This suits me the best.
Option 1 (MY PERSONAL FAVORITE):
Tested and works in Ubuntu 14.04, 16.04, 18.04, 20.04, 22.04, when using the X11 window manager, NOT Wayland.
Notes:
- I've mentioned other bugs in Wayland here.
- To make a version of this that will work in Wayland in the future, you can use
ydotool
. I've written about that here (Press Windows + D in Wayland) and on my personal website here (Tutorial: Getting started with ydotool
to automate key presses (or mouse movements) in Linux).
To use the X11 Window Manager in Ubuntu 20.04, 22.04, etc.:
Log out of Ubuntu.
At the login screen, click your username to begin typing your password.
This enables a little gear icon in the bottom-right, to select your window manager. Click that to select your window manager. Choose the non-Wayland option! If currently set to the Wayland option, then it will show "Ubuntu" [which means Wayland in this case] and "Ubuntu on Xorg" [which means X11]. Choose the "Ubuntu on Xorg" option. Here is a screenshot:
For additional screenshots and the most up-to-date info. in this, see my other answer here: Wayland window manager causes my computer to stay on a black/blank screen and not wake up
Now that you are using the X11 Window manager, the following will work:
Credit: I didn't come up with the following, Ubuntu genius & blogger Ji m did, here: http://ubuntuhandbook.org/index.php/2018/10/add-show-desktop-button-ubuntu-18-10-18-04/. I'm borrowing directly from his material (a lot of it quoted directly):
"Open terminal (Ctrl + Alt + T) and install xdotool:"
sudo apt install xdotool
"Then create the show desktop shortcut icon and edit it via command:"
gedit ~/.local/share/applications/show-desktop.desktop
"When the file opens, paste following lines and save it."
[Desktop Entry]
Type=Application
Name=Show Desktop
Icon=desktop
Exec=xdotool key --clearmodifiers Super+d
"Finally search for ‘show desktop’ in application menu, then right lick and select ‘add to favorites’:"
"That’s it. Enjoy!"
Here it is, as shown on my desktop:
Option 2:
Option 2.A:
Click your "Start menu" icon thing (9-dot icon) and type in "show desktop." Wait a few seconds for search results to pop up, and click on and install one of the Gnome Shell extensions. (Note that these search results are simply coming from the Ubuntu Software center).
For more info on Gnome Shell Extensions, see my other answer here: https://askubuntu.com/a/1089033/327339.
Ex: here's the first one:
Click the "Install" button and here's what it looks like on my desktop:
Option 2.B:
Here's another one [used to be my personal favorite, but then I switched back to Option 1 because it seems to work the smoothest and be the most consistent]:
And here's what it looks like installed: