![从启动器调用 .desktop 文件会在编辑器中打开它,而不是打开它描述的程序](https://linux22.com/image/917483/%E4%BB%8E%E5%90%AF%E5%8A%A8%E5%99%A8%E8%B0%83%E7%94%A8%20.desktop%20%E6%96%87%E4%BB%B6%E4%BC%9A%E5%9C%A8%E7%BC%96%E8%BE%91%E5%99%A8%E4%B8%AD%E6%89%93%E5%BC%80%E5%AE%83%EF%BC%8C%E8%80%8C%E4%B8%8D%E6%98%AF%E6%89%93%E5%BC%80%E5%AE%83%E6%8F%8F%E8%BF%B0%E7%9A%84%E7%A8%8B%E5%BA%8F.png)
我正在vanilla-gnome-desktop
Ubuntu 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(右键单击概览以执行此操作)。