我可以为非本地的 shell 脚本制作 .desktop 应用程序吗?

我可以为非本地的 shell 脚本制作 .desktop 应用程序吗?

我为带有扩展名的 shell 脚本创建了一个快捷方式.desktop。我的桌面应用程序通过双击运行 Python 代码,并且它有自己的图标。.desktop应用程序是否仅在本地?我可以将其设置为非本地,以便它正常工作并在将其发送给其他用户时具有我指定的相同图标吗?

答案1

.desktop文件不是快捷方式。它们是描述启动器/应用程序启动器中应显示什么内容的文件。

示例桌面文件

# Copyright (c) Rudra Saraswat
# The below sample desktop file is licensed under the BSD-3-Clause license.
[Desktop Entry]
Name=Sample Desktop File for python3 script.
GenericName=Example
Comment=This is a sample desktop file.
Type=Application
Exec=python3 "<path-to-script>"
Icon=<gtk-icon>
Terminal=false
Categories=Utility;
Keywords=example;sample;

sudo apt update && sudo apt install -y yad && yad-icon-browser您可以用 GTK 图标主题中的图标替换。在终端中运行可以找到图标主题中的 GTK 图标列表。然后您应该运行sudo update-desktop-database

重新分发你的应用

您可以将应用程序打包为 .deb 包,或者编写一个安装 python3 的简单脚本。虽然 deb 打包很复杂,但您可以编写一个简单的 shell 脚本来安装您的应用程序,如下所示:

#!/bin/bash
# Copyright (c) Rudra Saraswat
# The below script is licensed under the BSD-3-Clause license.
[ ! "$EUID" -eq "0" ] || { sudo -p "Please enter your password to continue: " "$0" "$@"; exit $?; }
set -e
mkdir -p '/opt/' '/opt/mypythonscript/'
cat << 'EOF' > '/opt/mypythonscript/main.py'
<python-script-contents>
EOF
cat << 'EOF' > '/usr/share/applications/myfirstdesktopfile.desktop'
<desktop-file-contents>
EOF
update-desktop-database || true
echo "Installed mypythonscript."

您需要使用以下方法使文件可执行:chmod +x <filename>在终端中,或在 Nautilus 中选择“允许将文件作为程序执行”> 选择您编写的安装脚本 > 属性 > 权限 > 执行。如果您通过互联网分发此文件,请注意可执行权限将不保留,在这种情况下,您需要要求用户chmod +x <downloaded_file>在终端中运行或在 Nautilus 中选择“允许将文件作为程序执行”> 选择下载的安装脚本 > 属性 > 权限 > 执行。

重要提示:上述代码尚未经过任何方式的测试,可能会导致永久性和不可恢复的损害,在这种情况下,我不承担任何责任。

相关内容