我目前正在使用一个非常干净的 Ubuntu 20.04 安装,最后还是想在这里问这个问题,因为它一直困扰着我。有没有办法找出启动器条目文件的位置.desktop
?在我看来,它应该像右键单击图标并选择调用的选项Show .desktop file
或类似操作一样简单。
这个问题的灵感来自于我安装 Spotify snap 的过程。我需要添加一个命令行选项,因为 Spotify 在我的 4K 屏幕上播放效果不佳,而且所有内容都很小。问题是,有三个.desktop
文件,我不确定哪个是正确的。
$ locate *spotify*.desktop
/snap/spotify/53/meta/gui/spotify.desktop
/snap/spotify/53/usr/share/spotify/spotify.desktop
/var/lib/snapd/desktop/applications/spotify_spotify.desktop
如果不进行一些实验,我就无法知道其中哪一个与我在启动器中看到的图标实际相关联。我知道我可以做一些愚蠢的事情,比如一次删除一个图标条目,直到找到“真正的”图标,但我觉得一定有一种我不知道的更简单的方法。
答案1
对于日常使用,操作系统不应该用“右键单击菜单显示名为“显示 .desktop 文件”或类似选项”来打扰您。如果出现问题,只有系统管理员才应该担心这一点,但无论如何,这是另一个讨论。
具有优先权的启动.desktop
器是出现在菜单中的启动器。首选项由 XDG_DATA_DIRS 环境变量决定。使用以下命令显示它
printenv XDG_DATA_DIRS
文件所在的文件夹作为中列出的文件夹下的.desktop
一个文件夹存在。applications
XDG_DATA_DIRS
在您的示例中,列出的.desktop
文件中只有一个位于applications
文件夹中:
/var/lib/snapd/desktop/applications/spotify.desktop
所以我现在就可以说,这就是出现在您菜单中的那个。
如果你希望在文件夹中有第二个applications
,例如
/usr/local/share/applications/spotify.desktop
/var/lib/snapd/desktop
然后您可以通过检查哪个文件夹或变量/usr/local/share
中哪个文件夹首先出现来判断哪一个有效XDG_DATA_DIRS
。
答案2
根据@vanadium 提供的信息,
我写了一个小脚本,暂时帮助我定位应用程序 .desktop 的位置。
我希望 gome-shell 有一天会支持它,或者通过某种扩展。//
也许有一天我会尝试实现它。
⇒ 使用演示
## find normal app