我真正想做的是:创建带有图标的脚本。所以我只知道一种方法 - 带有图标的 file.desktop 文件。设置图标成功了,但我没有设置 EXEC 值 :/
有人能解释一下如何创建带有图标的可执行脚本吗?创建 .desktop 文件并将其链接到该脚本?有人能给我提供该 .desktop 文件的结构吗?
答案1
您没有提到您尝试过什么,因此请尝试以下操作:
[Desktop Entry]
Name=someName
Comment=
Exec=/path/to/script.sh
Icon=/path/to/icon
Terminal=false
Type=Application
确保您的脚本是可执行的,如下所示:
sudo chmod +x /path/to/script.sh
sudo
如果您的脚本使用命令或任何其他需要用户输入的内容, 它也将不起作用。
如果您希望在运行时打开一个终端窗口(如果您需要添加输入或观察输出)请设置Terminal
为 true。
Terminal=true
答案2
使用gnome-desktop-item-edit
:
gnome-desktop-item-edit --create-new /path/to/new/launcher
# Usually, one does (create launcher in current directory) :
gnome-desktop-item-edit --create-new .
系统将以图形方式提示您进行这些设置。这是我使用此工具创建的启动器之一:
#!/usr/bin/env xdg-open
[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Icon[en_GB]=/path/to/icon/for/en_GB.png
Name[en_GB]=Name_for_en_GB
Exec=/path/to/shell/script.sh
Comment[en_GB]=Some comment for en_GB
Name=Launcher Name
Comment=Some comment.
Icon=/path/to/icon/file.png
具体en_GB
设置不作强制要求,可随意填写相同的值。
答案3
确保 bash 脚本的第一个命令是cd "${0%/*}"
如果没有出现任何内容:此命令将当前工作目录更改为包含脚本的目录,因为大多数 shell 脚本都使用从其目录开始的相对路径。
答案4
创建一个名为 testicon.desktop 的文件并将其放在桌面上
$ more testicon.desktop
[Desktop Entry]
Version=1.0
Type=Application
Terminal=true
Icon=/home/robin/Desktop/testicon.png
Name=TestIcon
Exec=/home/robin/Desktop/testicon.sh
Comment=Some comment for en_GB
Name=TestIcon
Comment=Some comment.
Icon=/home/robin/Desktop/testicon.png
这是一个可执行的 bash 脚本。将其放在桌面上并运行,它将描述制作一个运行脚本的图标
$ more testicon.sh
#!/bin/bash
# this forces bash to use the Desktop directory i.e. where this bash script is located
cd "${0%/*}"
echo "to make a shell script run from an icon"
echo " make a file like this "
sleep 1
echo "====================================================="
cat ./testicon.desktop
echo "====================================================="
echo "called something like testicon.desktop"
sleep 2
echo " chmod +x the .desktop file"
echo " make a png file for the icon call it testicon.png"
echo " now right click on .desktop file and allow launching"
echo "should work"
sleep 10
echo "bye, disapparing in ten seconds"
sleep 10
NUC 2023-11-16_16:05 ~/Desktop
这适用于
$ cat /etc/os-release
NAME="Ubuntu"
VERSION="20.04.6 LTS (Focal Fossa)"
ID=ubuntu
ID_LIKE=debian
PRETTY_NAME="Ubuntu 20.04.6 LTS"
VERSION_ID="20.04"
HOME_URL="https://www.ubuntu.com/"
SUPPORT_URL="https://help.ubuntu.com/"
BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
VERSION_CODENAME=focal
UBUNTU_CODENAME=focal