在Unity桌面上,当我启动GUI应用程序时,其图标将显示在启动器中(如果尚未存在)。
现在,当我右键单击该图标时,我将获得选项Lock to Launcher或Unlock from Launcher,具体取决于应用程序是否已锁定到启动器。
我的问题是:
如果没有.desktop
文件,当我单击这两个选项之一时,会发生什么?
.desktop
如果找不到文件,它会自动创建简单文件吗?在什么情况下会发生这种情况?固定的启动器项目会保存在哪里?
不知道这个答案是否足够“深入”,但这就是发生的情况:
您可以通过以下命令获取Unity Launcher的当前内容:
gsettings get com.canonical.Unity.Launcher favorites
它将产生一个列表,如下所示:
['application://extras-qlequicklisteditor.desktop', 'application://gedit.desktop', 'application://gnome-terminal.desktop', 'application://nautilus.desktop', 'application://firefox.desktop', 'application://thunderbird.desktop', 'application://gnome-screenshot.desktop', 'application://dconf-editor.desktop', 'application://virtualbox.desktop', 'application://gnome-tweak-tool.desktop', 'unity://running-apps', 'unity://devices', 'unity://expo-icon']
列表中的提及显然基于相应.desktop
文件的名称。
现在,当您运行GUI应用程序时,在启动器中右键单击其图标并选择Lock to Launcher,当前选择的项目将添加到列表中,而Unlock from Launcher将从列表中删除该项目。
重新阅读您的问题下方的(第一条)评论:如上所述,您可以通过以下命令获取当前的启动器项目:
gsettings get com.canonical.Unity.Launcher favorites
并通过以下命令设置可能的更改列表:
gsettings set com.canonical.Unity.Launcher favorites "[item1, item2, etc]"
然后,您当然可以通过编程方式编辑Unity Launcher的内容,如此处所示。
如果您在没有现有.desktop
文件的情况下运行GUI应用程序,则Unity将在本地(以~/.local/share/applications
)创建一个基本文件,以可执行文件(application.desktop
)命名。在这一Exec=
行中,您将找到运行的命令以调用该应用程序。
如果您查看以.desktop
这种方式创建的文件,则其中包含以下行:
X-UnityGenerated=true
正如@muru所提到的(谢谢!),在某些情况下(看起来很特殊),Unity无法成功创建.desktop
可执行文件的“缺失”文件。但是,我能找到的唯一示例是Tkinter窗口,该窗口pid 0
在的输出中归所有wmctrl -lp
。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句