据我所知,Unity Launcher 中的所有快捷方式都有一个对应的 *.desktop 文件。我有一个没有图标的快捷方式(用于skrooge)。如何找到与此快捷方式对应的 *.desktop 文件,以便为其添加图标?
需要对.desktop文件的权限进行一些说明。我可以看到root拥有的所有.desktop文件/usr/share/applications/都有权限,
-rw-r--r--
Run Code Online (Sandbox Code Playgroud)
同时examples.desktop,在$HOME由用户拥有具有相同的权限。所有这些都运行正常。
但是当我要创建一个.desktop具有相同权限的自定义文件时,它会抛出以下错误消息,
不受信任的应用程序启动器
应用程序启动器“myapp.desktop”尚未标记为受信任。如果您不知道此文件的来源,启动它可能是不安全的。
但是添加执行权限可以让它毫无问题地运行。
问:为什么自定义
.desktop文件需要有+x权限才能运行,或者有些.desktop文件没有执行权限怎么能运行?是否可以在.desktop没有执行权限的情况下运行自定义文件?
有一个新的应用程序 XXX,它以 zip 文件的形式分发。我创建了一个目录~/programs/XXX,将 zip 文件存储在其中并解压缩。现在我得到了一个目录,~/programs/XXX/XXXv.1并在其中编写了 xxx 和其他程序。
我制作了 xxx 可执行文件,在文件管理器中双击它。启动器中出现一个新图标,程序 xxx 启动。退出程序后,图标留在启动器中。我能够从图标重新启动程序。
几天后发布了一个新版本的应用程序xxx,得到了zip,解压缩,得到了目录~/programs/XXX/XXXv.1.1,在里面有程序xxx等。
我从启动器中删除了图标(到programm xxx v.1),~/programs/XXX/XXXv.1.1/xxx从文件管理器启动,启动器中再次出现图标,新版本启动。退出程序并从启动器中的图标重新启动后,我注意到新创建的图标启动了旧版本的程序,尽管该图标是通过从新版本目录启动程序 xxx 创建的。
如何使启动器图标指向新版本目录中的程序,从那里创建图标?
在旧版本目录中重命名程序名称后,新创建的图标无法启动程序。所以实际上新版本的程序新创建的图标指向旧版本的程序。
必须有一个隐藏的配置文件,其中包含指向旧可执行文件的指针,当删除旧版本的图标时,该文件不会被删除。
当新版本的程序启动时,会创建一个新版本的图标,启动新版本的程序,但是当从图标重新启动时,启动旧版本的程序。
启动器图标的隐藏配置文件是什么以及如何更改它指向的程序文件?