我怎样在GNOME dash或Ubuntu Dock中添加“显示桌面”?

我正在从Unity迁移到GNOME。我想要的一个功能是在dash中添加一个“显示桌面”按钮(也称为“最小化所有窗口”)。即使需要创建一个自定义的.desktop文件,我也想知道如何将此功能添加到GNOME dash(或Ubuntu 17.10及更高版本中的Ubuntu dock)。
(我知道我可以使用Ctrl + Super + D的键盘快捷键来显示桌面,并且我可以安装一个扩展来在顶部栏中添加一个“显示桌面”按钮,但我特别想要一个在dash中的按钮。)

请按照以下步骤操作:http://ubuntuhandbook.org/index.php/2018/10/add-show-desktop-button-ubuntu-18-10-18-04/. - Gabriel Staples
3个回答

我找到了一种方法来做到这一点。
1. 打开终端并安装: sudo apt-get install wmctrl
2. 创建一个名为的shell脚本(我将它放在我的主文件夹中): gedit ~/show-desktop.sh 将以下代码粘贴进去: #!/bin/bash status="$(wmctrl -m | grep "showing the desktop" | sed -r 's/(.*)(ON|OFF)/\2/g')"
if [ $status == "ON" ]; then wmctrl -k off else wmctrl -k on fi 保存后,给它加上可执行权限: chmod +x ~/show-desktop.sh
3. 在<~/.local/share/applications/>文件夹中创建一个名为的文件: gedit ~/.local/share/applications/show-desktop.desktop 将以下文本添加进去并保存(别忘了更改的值): [Desktop Entry] Type=Application Name=Show Desktop Icon=user-desktop Exec=/home//show-desktop.sh
4. 打开Dash,搜索“show desktop”并将其添加到收藏夹中。

7在Ubuntu 18.04 LTS 上经过测试并且可正常工作。自从他们从系统设置/外观/行为面板中删除了“将显示桌面图标添加到启动器”的选项后,这是我找到的最佳方法。这是一个非常有用的功能,有时候我真的不理解Ubuntu的开发人员... - bytepan
4在文件“show-desktop.desktop”(主题3)中,我将“Icon=show-desktop”更改为“Icon=desktop”,因为之前的图标无法正常工作。 - samuelcersosimo
这不适合初学者。我该如何在应用程序文件夹中创建一个文件?我不能通过图形界面直接创建并保存,因为它受到保护。谢谢。 - Rabbit
2@Rabbit,你需要使用root权限。打开终端并输入:sudo nano /use/share/applications/show-desktop.desktop - AndAC
谢谢!最后我发誓我做了所有应该做的事情,但是没有起作用。我在Ubuntu应用商店找到了一个gnome扩展,可以在顶部面板上放置一个按钮。 - Rabbit
1@兔子 我明白。我确实认为这可以更好地解释。也许有一位英语更好的人可以编辑我的帖子,让初学者更容易理解。 - AndAC
点赞。你的回答比我的更好,因为wmctrl在X11和Wayland窗口管理器中都可以使用,并且不需要sudo权限。 - Gabriel Staples
我在Ubuntu 22.04.2中测试了wmctrl解决方案,无论是在X11还是Wayland窗口管理器中,它都能很好地显示和隐藏窗口/桌面! - Gabriel Staples
一个更容易阅读的获取状态的方法是:status="$(wmctrl -m | grep "showing the desktop" | grep -Eo "ON|OFF")" - Gabriel Staples

首先,要知道键盘快捷键 Super (Windows Key) + D 或者 Ctrl + Alt + D 可以在显示/隐藏桌面之间切换。你可能会习惯于使用这个键盘快捷键,并决定它比点击图标更方便。然而,我们可以创建一个可点击的快捷方式,来简单地为我们执行这个键盘快捷键,以显示/隐藏桌面。
请注意,我建议使用选项1【我的首选】或者以下选项2中的一种方法,但不要同时使用选项1和选项2,因为它们似乎以奇怪的方式冲突。例如:如果你设置了选项1,然后设置了选项2中的一个,只需将选项1中的“显示桌面”图标从收藏夹中移除,并停止使用它。如果在安装了选项2中的一个后点击选项1中的“显示桌面”图标,会发生奇怪的事情。我认为这是因为选项1使用的“xdotool”试图像键盘一样向系统发送消息,所以无论选项2的方法如何工作,它们都与“xdotool”或其他东西发生冲突,有时候你的“Super”键或鼠标键似乎会因为同时使用两个选项而被卡住。
请注意,然而,如果你手动使用“Super”+“D”的快捷键与选项2的方法一起,或者只使用选项1的方法而不使用选项2的方法,这种不寻常和有缺陷的行为就不会出现。

我的建议是在需要使用键盘快捷方式时,结合下方的Option 1方法和Super(Windows键)+D键盘快捷方式来使用。

这对我来说是最合适的。

Option 1(我个人最喜欢的方法):

在Ubuntu 14.04、16.04、18.04、20.04、22.04等版本中测试通过,并且需要使用X11窗口管理器,而不是Wayland。

在Ubuntu 20.04、22.04等版本中使用X11窗口管理器的方法:

  1. 退出Ubuntu。
  2. 在登录界面,点击您的用户名开始输入密码。
  3. 这将在右下角启用一个小齿轮图标,以选择您的窗口管理器。点击它来选择您的窗口管理器。选择非Wayland选项!如果当前设置为Wayland选项,则会显示“Ubuntu”(表示此时为Wayland)和“Ubuntu on Xorg”(表示X11)。选择“Ubuntu on Xorg”选项。以下是一张截图:
  4. enter image description here

现在,以下操作将起作用:

信用:以下内容不是我想出来的,而是 Ubuntu 的天才和博主 Ji m 在这里提出的:http://ubuntuhandbook.org/index.php/2018/10/add-show-desktop-button-ubuntu-18-10-18-04/。我直接借用了他的材料(其中很多是直接引用的)。
  1. 打开终端(Ctrl + Alt + T)并安装xdotool:

    sudo apt install xdotool
    
  2. 然后通过以下命令创建显示桌面的快捷方式图标并进行编辑:

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

    当文件打开时,粘贴以下内容并保存。

    [Desktop Entry]
    Type=Application
    Name=Show Desktop
    Icon=desktop
    Exec=xdotool key --clearmodifiers Super+d
    
  3. 最后在应用程序菜单中搜索“show desktop”,然后右键点击并选择“添加到收藏夹”:

    就是这样。尽情享受吧!

    这是我桌面上显示的效果:

    enter image description here

选项2:

选项2.A:

点击您的“开始菜单”图标(九点图标),然后输入“显示桌面”。等待几秒钟,搜索结果会弹出,然后点击并安装一个Gnome Shell扩展程序。(请注意,这些搜索结果仅来自Ubuntu软件中心)。

enter image description here

关于Gnome Shell扩展的更多信息,请查看我在这里的其他答案:https://askubuntu.com/a/1089033/327339

例如:这是第一个: 输入图像描述

点击"安装"按钮,这是它在我的桌面上的样子:

enter image description here

选项 2.B:

这是另一个选项[曾经是我个人最喜欢的,但后来我又切换回选项 1,因为它似乎工作得最顺畅且最一致]:

enter image description here

这是安装后的样子: 在此输入图像描述

1选项2a和2b似乎在20.04 Focal版本中不可用。(非常感谢!这真的很有帮助) - Rabbit

@AndAC有一个很好的答案。我已经给它点赞了。我还有这里的一个较旧的回答

今天,我在我的eRCaGuy_dotfiles存储库中添加了我自己的show_desktop.sh脚本和show-desktop.desktop文件,并且想要展示如何使用它们。所以,对于我设置的任何新计算机(我经常这样做),这是我现在在计算机上设置"显示桌面"图标的方法:

如何从我的eRCaGuy_dotfiles存储库安装“显示桌面”可执行文件和图标

在Ubuntu 22.04.2上,在X11和Wayland窗口管理器中进行了测试。

# 1. Install dependencies
sudo apt update
sudo apt install git wmctrl

# 2. get the whole repo

# this is where we will put this repo; you can choose any path you want
INSTALL_DIR="$HOME/dev"
mkdir -p "$INSTALL_DIR"  
cd "$INSTALL_DIR"
git clone https://github.com/ElectricRCAircraftGuy/eRCaGuy_dotfiles.git
cd eRCaGuy_dotfiles

# 3. Install the `show_desktop` command

# Install `show_desktop` into ~/bin/
mkdir -p ~/bin
. ~./profile  # for a default Ubuntu install, this adds ~/bin to your PATH
# Create a symlink to the script and place it in ~/bin/
# - NB: you must be `cd`ed into the "eRCaGuy_dotfiles/" dir that you just cloned
#   before running this cmd.
ln -si "$(pwd)/useful_scripts/show_desktop.sh" ~/bin/show_desktop
# Optional: create a version with your initials prefixed too (mine are `gs_`)
ln -si "$(pwd)/useful_scripts/show_desktop.sh" ~/bin/gs_show_desktop

# test it; this should show your desktop
# - manually press Windows + D to show your open windows again
show_desktop

# 4. Install the show-desktop.desktop launcher file
# - NB: you must be `cd`ed into the "eRCaGuy_dotfiles/" dir that you just cloned
#   before running this cmd.
ln -si "$(pwd)/home/Desktop_launchers/show-desktop.desktop" ~/.local/share/applications/

NB:使用上述基于符号链接的说明,您无法删除eRCaGuy_dotfiles存储库。

现在,将"显示桌面"图标添加为您启动器的收藏夹:按下Windows键 --> 搜索"显示桌面" --> 右键单击并选择"添加到收藏夹"。然后,在Ubuntu左侧栏的收藏夹图标中,将其拖放到您希望的位置(我喜欢将其放在最顶部,作为从顶部开始的第一个图标)。

以下是我在Ubuntu 22.04上的示例:

enter image description here

就是这样。享受吧!只需点击图标即可切换显示/隐藏桌面,或者按下WindowsSuper)+ D来做同样的事情。