.desktop 启动器的“Exec=...”行帮助 - 命令仅在终端中有效

.desktop 启动器的“Exec=...”行帮助 - 命令仅在终端中有效

我想在 Unity 中为 Thunderbird 启动器添加另一个上下文菜单选项。但是,它不起作用。附加操作出现在启动器的上下文菜单中,当我单击它时,光标会变为“等待圆圈”几秒钟,但之后什么也没有发生。如果我在终端中运行该脚本,它就会运行得很好。
我必须进行哪些更改才能从启动器上下文菜单运行所需的命令?

我需要运行的命令外包给一个 bash 脚本文件,因此 Exec-line 是:

Exec=/bin/bash -c "/home/bytecommander/bin/thunderbird-win.sh"

内容/home/bytecommander/bin/thunderbird-win.sh

#! /bin/bash

# Launches Thunderbird after mounting the Windows partition with that profile.
# Both mount commands as root are set in the sudoers file to not ask for passwords.

sudo mount /dev/sda2 /mnt/windows
thunderbird -p windows
sudo umount /dev/sda2

精简内容/usr/share/applications/thunderbird.desktop(不含翻译):

[Desktop Entry]
Encoding=UTF-8
Name=Thunderbird Mail
Comment=Send and receive mail with Thunderbird
GenericName=Mail Client
Keywords=Email;E-mail;Newsgroup;Feed;RSS
Exec=thunderbird %u
Terminal=false
X-MultipleArgs=false
Type=Application
Icon=thunderbird
Categories=Application;Network;Email;
MimeType=x-scheme-handler/mailto;application/x-xpinstall;
StartupNotify=true
Actions=Compose;Contacts;LoadWindowsProfile

[Desktop Action Compose]
Name=Compose New Message
Exec=thunderbird -compose
OnlyShowIn=Messaging Menu;Unity;

[Desktop Action Contacts]
Name=Contacts
Exec=thunderbird -addressbook
OnlyShowIn=Messaging Menu;Unity;

[Desktop Action LoadWindowsProfile]
Name=Run with Windows profile
Exec=/bin/bash -c "/home/bytecommander/bin/thunderbird-win.sh"
OnlyShowIn=Messaging Menu;Unity;

答案1

我感到很遗憾,也有点不好意思地告诉你,这个问题已经解决了……

从 .desktop 启动器启动时什么都不会发生的原因是脚本路径中的拼写错误,因此该Exec=...行指向不存在的文件。

我只能向那些花时间研究这个问题的人表示歉意。

相关内容