从启动器调用 .desktop 文件会在编辑器中打开它,而不是打开它描述的程序

从启动器调用 .desktop 文件会在编辑器中打开它,而不是打开它描述的程序

我正在vanilla-gnome-desktopUbuntu 18.04 上使用 GNOME Classic 运行。

按下Super并输入KeePass加号后Enter~/Desktop/KeePass.desktop文件将在编辑器中打开(gedit就我而言)。奇怪的是,当gsettings set org.gnome.desktop.background show-desktop-icons true我在启用显示桌面符号()后双击桌面上的同一项目时,应用程序按预期打开。在启动器中显示时,文件.desktop会显示正确的应用程序图标(就像在桌面上一样),并显示路径~/Desktop(尽管是展开的)。

发生了什么?我该如何让启动器调用文件描述的程序.desktop


可能相关信息:

$ cat ~/Desktop/KeePass.desktop |sed 's|'$(whoami)'|username|g'
#!/usr/bin/env xdg-open

[Desktop Entry]
Version=1.0
Type=Application
Terminal=false
Icon[en_US]=/home/username/bin/KeePass/KeePass_icon.png
Exec=mono /home/username/bin/KeePass/KeePass.exe
Name[en_US]=KeePass
Name=KeePass
Icon=/home/username/bin/KeePass/KeePass_icon.png
X-Desktop-File-Install-Version=0.23

... 和:

$ ls -l bin/KeePass/KeePass.exe Desktop/KeePass.desktop |sed 's|'$(whoami)'|username|g'
-rwxr-xr-x 1 username username 3315280 2019-09-22 21:27 bin/KeePass/KeePass.exe
-rwxr-xr-x 1 username username     302 2019-09-22 21:27 Desktop/KeePass.desktop

此外,desktop-file-validate Desktop/KeePass.desktop返回结果为空,退出代码为 0。据我回忆,我desktop-file-edit最初创建了该.desktop文件,但我添加了mono一行Exec以避免混淆系统,因为我还在某些应用程序中使用 Wine 和 Crossover。

答案1

您的 .desktop 文件很可能在 Gnome shell 概览中显示为找到的文件,因此会进行相应的处理。

确保您的 .desktop 文件位于 中~/.local/share/applications。只有这样,它才会被正确地选为应用程序。如果您喜欢直接从桌面启动它,您可以将副本保留在桌面上,或者如果您想遵循 Gnome 开发人员所设想的工作流程,则可以将其从桌面移除并固定到 Dash(右键单击概览以执行此操作)。

相关内容