我正在从 Unity 迁移到 GNOME。我缺少的一个项目是仪表板中的“显示桌面”按钮(又称“最小化所有窗口”)。我如何将此功能添加到 GNOME 仪表板(或 Ubuntu 17.10 及更高版本中的 Ubuntu dock),即使这意味着要制作一个自定义.desktop
文件?
(我知道我可以使用Ctrl++SuperD 显示桌面的键盘快捷键我可以安装在顶部栏添加“显示桌面”按钮的扩展,但我特别想要一个仪表板上的按钮。)
答案1
我找到了一种方法来做到这一点:
打开终端并安装
wmctrl
:sudo apt update sudo apt install wmctrl
show-desktop.sh
创建一个名为(我把它放在我的主文件夹中)的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
show-desktop.desktop
在文件夹中创建一个名为的文件~/.local/share/applications/
:gedit ~/.local/share/applications/show-desktop.desktop
将此文本添加到其中,然后保存文件(不要忘记更改值
<your user>
):[Desktop Entry] Type=Application Name=Show Desktop Icon=user-desktop Exec=/home/<your user>/show-desktop.sh
按Windows( Super) 键打开仪表板菜单,然后搜索您刚刚在上面创建的“显示桌面”条目。将其添加到您的收藏夹菜单。
答案2
更新:参见我的新答案和我的新说明在这里。
尽管如此,您仍然可以在下面找到一些有用的信息。
2023 年 6 月 23 日更新:wmctrl
比xdotool
用于wmctrl
@AndAC 在这里说,.wmctrl
优于我的xdotool
解决方案,因为它在 Wayland 窗口管理器中也能运行,而不仅仅是 X11。并且,wmctrl
优于ydotool
(在 Wayland 中也能运行),因为wmctrl
不需要sudo
守护进程,而ydotool
需要一个必须使用 启动的后台守护进程sudo
。
我已经wmctrl
在 X11 上的 Ubuntu 22.04.2 中测试了该解决方案和Wayland 窗口管理器,它可以很好地显示和隐藏窗口/桌面!
查看我的 3 个测试文件eRCaGuy_hello_world回购这里:
- bash/show_desktop_with_wmctrl.sh
- bash/show_desktop_with_xdotool.sh
- bash/show_desktop_with_ydotool.sh
原始答案:
首先,要知道键盘快捷键Super(Windows 键) +D或Ctrl+ Alt+D将在显示/隐藏桌面之间切换。您可能已经习惯了这个键盘快捷键,并认为它比单击图标更好。不过,我们可以创建一个可点击的快捷方式,只需执行此键盘快捷键即可显示/隐藏桌面。
请注意,我建议使用选项 1 [我的首选] 或下面选项 2 中的一种方法,但不要同时使用选项 1 和选项 2,因为它们似乎以奇怪的方式发生冲突。例如:如果您设置了选项 1,然后设置了选项 2 之一,只需从选项 1 中删除“显示桌面”图标作为收藏夹,然后停止使用它。如果在安装选项 2 之一后单击选项 1 中的“显示桌面”图标,就会发生奇怪的事情。我认为这是因为xdotool
(选项 1 使用)试图将消息发送到您的系统,就好像它们来自您的键盘一样,因此无论选项 2 方法如何工作,它们都会发生冲突,xdotool
或者Super只是因为同时使用两个选项,您的键或鼠标键似乎就会“卡住”。 Super请注意,如果您手动将+D快捷方式与选项 2 方法一起使用,或者仅使用选项 1 方法而不使用选项 2 方法,则不会出现这种不寻常且有错误的行为。
我的建议是,每当您想使用键盘快捷键时,请结合使用下面的选项 1 方法和Super(Windows 键)+键盘快捷键。D
这最适合我。
选项 1(我个人最喜欢的):
已在 Ubuntu 14.04、16.04、18.04、20.04、22.04 中测试并运行,使用 X11 窗口管理器(而不是 Wayland)。
笔记:
- 我提到过 Wayland 中的其他错误这里。
- 要制作一个将来可以在 Wayland 中使用的版本,您可以使用
ydotool
。我在这里写过相关内容(在 Wayland 中按 Windows + D)以及我的个人网站(ydotool
教程:在 Linux 中自动按键(或鼠标移动)入门)。
要在 Ubuntu 20.04、22.04 等中使用 X11 窗口管理器:
退出 Ubuntu。
在登录屏幕上,单击您的用户名即可开始输入您的密码。
这将在右下角启用一个小齿轮图标,以选择您的窗口管理器。单击该图标以选择您的窗口管理器。选择非 Wayland选项!如果当前设置为 Wayland 选项,则将显示“Ubuntu”[在这种情况下表示 Wayland] 和“Ubuntu on Xorg”[表示 X11]。选择“Ubuntu on Xorg”选项。以下是屏幕截图:
有关更多屏幕截图和最新信息,请参阅我的其他回答:Wayland 窗口管理器导致我的电脑停留在黑屏/空白屏幕且无法唤醒
现在您正在使用 X11 窗口管理器,以下操作将起作用:
致谢: 以下内容不是我想出来的,而是 Ubuntu 天才和博主 Ji m 想出来的,如下:http://ubuntuhandbook.org/index.php/2018/10/add-show-desktop-button-ubuntu-18-10-18-04/。我直接借用了他的材料(很多都是直接引用的):
“打开终端(++ Ctrl)并安装 xdotool:”AltT
sudo apt install xdotool
“然后创建显示桌面快捷方式图标并通过命令进行编辑:”
gedit ~/.local/share/applications/show-desktop.desktop
“当文件打开时,粘贴以下行并保存。”
[Desktop Entry] Type=Application Name=Show Desktop Icon=desktop Exec=xdotool key --clearmodifiers Super+d
“最后在应用程序菜单中搜索‘显示桌面’,然后右键单击并选择‘添加到收藏夹’:”
“就这样吧。尽情享受吧!”
如下图所示,在我的桌面上:
选项 2:
选项2.A:
单击“开始菜单”图标(9 个点图标)并输入“显示桌面”。等待几秒钟,搜索结果弹出,然后单击并安装其中一个 Gnome Shell 扩展。(请注意,这些搜索结果仅来自 Ubuntu 软件中心)。
有关 Gnome Shell 扩展的更多信息,请参阅我的其他回答:https://askubuntu.com/a/1089033/327339。
单击“安装”按钮,它在我的桌面上如下所示:
选项 2.B:
这是另一个[以前是我个人最喜欢的,但后来我又切换回选项 1,因为它似乎运行最顺畅并且最一致]:
答案3
@AndAC 的答案很棒。我已点赞。我也有这里有一个较旧的答案。
我添加了自己的show_desktop.sh
脚本和show-desktop.desktop
文件到我的eRCaGuy_dotfiles但是,今天我将介绍 repo,并想展示如何使用它们。因此,在我设置的任何新计算机上(我经常这样做),我现在是这样在计算机上设置“显示桌面”图标的:
如何从我的eRCaGuy_dotfiles回购
在 Ubuntu 22.04.2 上使用 Gnome 桌面进行了测试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/
注意:根据上述基于符号链接的说明,您无法删除 eRCaGuy_dotfiles 存储库。
现在,将“显示桌面”图标作为收藏夹添加到启动器:按下Windows键 --> 搜索“显示桌面” --> 右键单击它并选择“添加到收藏夹”。然后,在 Ubuntu 左侧栏的收藏夹图标中,将其拖到您想要的位置(我喜欢将它放在最顶部,作为从顶部开始的第一个图标)。
以下是我在 Ubuntu 22.04 上的样子。它是最顶部的图标:
就这样。尽情享受吧!只需单击图标即可切换显示/隐藏桌面,或按Windows( Super) +D执行相同操作。