我有这个 bash 脚本:test.sh,我希望能够在我的应用程序中找到它和/或将其作为我的 dock 中的收藏夹。
因为我从来没有这样做过,所以我依赖于: 从 *.desktop 文件执行 sh 脚本?
然后我创建了一个文件:test.desktop
[Desktop Entry]
Name=TEST
Comment=bash copy/resize
Exec=bash ~/mybash/test.sh
NoDisplay=False
Terminal=False
Type=Application
Icon=~/usr/share/pixmaps/copy-resize.png
Categories=Accessories;
设置执行权限,并创建/usr/share/applications
,/usr/share/pixmaps
并/mybash
在我的主目录中启动。我可以右键单击它并作为应用程序运行,但它在设置>应用程序中不可见
将其拖到桌面没有帮助,因此发现: 无法启动 .desktop 文件(而是使用文本编辑器打开)
由于我不知道如何找到 /.local 文件夹,所以我决定复制该文件:
sudo cp ~/usr/share/applications/test.desktop ~/.local/share/applications
现在可以在设置>应用程序下找到它,可惜它没有图标,但我在应用程序下找不到它。如果我在应用程序视图(9 个点)中搜索,我会发现它/.local/share/applications/test.desktop
被列为文本文件,右键单击不会给我将其设置为收藏夹的选项,而左键则会在 geany 中打开它(因为它是使用该应用程序制作的)
如果我在终端尝试:
bash ~/.local/share/applications/test.desktop
它启动sh脚本,在终端输出:
/home/maarten/.local/share/applications/test.desktop: 1: [Desktop: not found
/home/maarten/.local/share/applications/test.desktop: 3: Cam: not found
starting gui...
它确实完成了工作,在 Dock 中,我看到了我选择的图标和一个点,表示它处于活动状态,并且 GUI 已打开。因此,除了设置>应用程序中的图标位置外,这部分都可以正常工作。但双击仍会转到文本编辑器。如果放在桌面上,我可以设置“允许启动”,将文件图标更改为文本文档,但双击没有任何作用。
最大的问题是谁能告诉我在完成这项工作时我遗漏了什么?
此刻我已将 test.desktop 复制到:
(home)/test.desktop, (with/without allow launching)
/Desktop/test.desktop,
/.local/share/applications/test.desktop and
/usr/share/applications/test.desktop.
在所有地方我都可以使用右键单击并选择作为程序运行,但双击无法打开文件。
答案1
快速解决
尝试以下步骤
通过将 .desktop 文件替换
~/some/path/file.ext
为/home/<username>/some/path/file.ext
您还可以设置
Terminal=True
在运行.desktop 快捷方式时打开终端。你的 .desktop 文件应如下所示:
[Desktop Entry] Name=TEST Comment=bash copy/resize Exec=bash /home/<your-username>/mybash/test.sh NoDisplay=False Terminal=True Type=Application Icon=/usr/local/share/pixmaps/copy-resize.png Categories=Accessories;
屏幕截图的预期行为
双击文件时,
.desktop
将应用 xdg 设置中为该 mime 类型设置的默认文件操作,在这种情况下,.desktop 文件将在默认文本编辑器中打开
您可以像这样检查您的 xdg-mime 设置:- 如你所见,我的默认设置也是 GNOME Builder
- 我一直在使用 JetBrains CLion IDE .desktop 文件展示上述内容,现在让我向您展示如何正确使用 .desktop 文件。
信息
已经有人指出,在.desktop 文件
~
中使用快捷方式不起作用Unity Launcher这就是为什么你需要指定脚本及其图标文件的完整路径
您应该
/home/<username>/.local/share/applications/
只使用您的用户帐户查看条目
,或者/usr/local/share/applications/
使用机器的所有用户查看条目你不需要
$HOME/usr/
文件夹,$HOME/.local/
这可能是你正在考虑的参考这里有关如何正确设置 .desktop 启动器文件的更多详细信息
参考
答案2
如果桌面文件位于主文件夹中,则可行。出现“设置为收藏夹”选项。
还有一个有用的应用程序叫做“menulibre”。