如何在 Ubuntu 22.04 上将 .desktop 文件标记为受信任?

如何在 Ubuntu 22.04 上将 .desktop 文件标记为受信任?

我创建了一个桌面快捷方式来启动 Android Studio - studio.desktop。但我就是无法运行它。Ubuntu 22.04 不断弹出一个对话框“不受信任的桌面文件”

This .desktop file is not trusted, it can not be launched. To enable launching, right-click, then:
**Enable "Allow Launching"**

但是这个对话框只有“关闭”按钮。而且在桌面上,无论我在哪里单击鼠标右键,我都看不到任何“允许启动”的提示。好吧,我想 - 尝试通过终端执行此操作。

我已经尝试了大量的命令,但它们没有帮助。

chmod a+x studio.desktop // Just in case, although I previously did it through the Permissions of the shortcut itself

dbus-launch gio set studio.desktop "metadata::trusted" yes

未显示任何消息,仍不允许启动。然后我尝试以下操作:

sudo gio set studio.desktop metadata::trusted true

此返回消息“gio:不支持设置属性 metadata::trusted

我也尝试过:

sudo desktop-file-install studio.desktop

正如你可能猜到的那样,同样无济于事。

这是我的工作室.桌面:

[Desktop Entry]
Comment=Run Android Studio link
Exec=bash -c /home/user/android-studio/bin/studio.sh
GenericName=Android Studio
Icon=/home/user/android-studio/bin/studio.png
Name=Android Studio
Type=Application
Terminal=false

答案1

以下对我有用:转到 Nautilus 中的主目录,右键单击该Desktop文件夹,转到“属性”,然后转到“权限”选项卡。在权限中,从“其他”中删除除“访问文件”之外的任何权限。即,当其他人被授予写权限时,Ubuntu 22.04 中的错误就会发生。

或者在终端中运行以下命令:

chmod -R 775 ~/Desktop

答案2

升级到 22.04 后,我遇到了这个问题。20.04 中有效的设置在 22.04 中按预期停止工作。我分享了帮助我解决此问题的笔记,希望它能帮助其他人。

  • 如果该.desktop文件供所有用户使用,则应将其放在 下/usr/local/share/applications
  • 如果该.desktop文件仅供当前用户使用,则应将其放在 下~/.local/share/applications
  • 如上放置的文件.desktop不需要执行权限。可以是0644。也就是说stat --format="%a" myfile.desktop应该显示644
  • 如果.desktop文件有密钥,Hidden那么应该是Hidden=false。如果文件中没有密钥,那么没有关系,因为默认值Hiddenfalse
  • 如果.desktop文件有密钥,NoDisplay那么应该是NoDisplay=false。如果文件中没有密钥,那么没有关系,因为默认值NoDisplayfalse
  • 密钥Exec应具有有效的命令。Bash 命令可能无法正常工作,详情请参见这个答案

有了这些设置,桌面条目应该可以使用Super键进行搜索,这意味着该文件被识别为可启动。

答案3

打开终端并输入命令chmod +x /path/to/studio.desktop

答案4

就我而言(我昨天试过了),出于某种原因,在 Ubuntu 中,我必须确保两行位于 .desktop 文件中,然后突然间一切都正常工作,而无需使用 metacity。它还立即显示在 GUI 应用程序“启动应用程序”中

  1. 我确保我的桌面文件的名称(在发布的问题中是 studio.desktop)与行 Name=studio.desktop 中的名称匹配
  2. 其次,一旦我添加了 Hidden=false,一切都开始工作,无需使用“metacity is trust..”只需对我的桌面文件进行正常的权限 755,在我的情况下,该文件位于 ~/.config/autostart 中。在 Linuxmint 中,我从来不需要使文件名和 .desktop 文件中的“Name=”行相同,但出于某种原因,现在 Ubuntu 22.04 似乎有所不同。我甚至注意到,当我复制此文件时,Ubuntu 会自动更改文件名而不询问任何事情,这就是我想到让这两个东西相同的原因。我在新安装的 Ubuntu 22.04.2 上重复了几次,每次都有效。

相关内容