尽管有 .desktop 文件,但 Dash 无法使用 Sublime Text 3

cni*_*nic 3 unity launcher unity-dash .desktop sublime-text

安装 Sublime Text 3 .deb 文件后,包描述说的是“这将在终端上运行”。所以我对自己说,“Sublime 没问题,我会为你创建一个 .desktop 文件......嗯?”

看起来,Sublime Text 已经有一个 .desktop 文件,/usr/share/applications但我不明白为什么 Dash 在搜索时看不到它?

[Desktop Entry]
Version=1.0
Type=Application
Name=Sublime Text
GenericName=Text Editor
Comment=Sophisticated text editor for code, markup and prose
Exec=/opt/sublime_text/sublime_text %F
Terminal=false
MimeType=text/plain;
Icon=sublime-text
Categories=TextEditor;Development;
StartupNotify=true
Actions=Window;Document;

[Desktop Action Window]
Name=New Window
Exec=/opt/sublime_text/sublime_text -n
OnlyShowIn=Unity;

[Desktop Action Document]
Name=New File
Exec=/opt/sublime_text/sublime_text --command new_file
OnlyShowIn=Unity;
Run Code Online (Sandbox Code Playgroud)

我有没有提到我是 Linux 菜鸟?

Jac*_*ijm 5

如果应用程序没有出现在 Dash 中,或者安装后无法从 Dash 启动,该怎么办?

它可以发生,你安装的应用程序,你肯定申请是由一个代表.desktop在文件中/usr/share/applications,但它要么不显示或启动器中的图标没有做什么是应该做的。

  1. 注销并重新登录
    虽然应用程序在安装后立即显示,但顺便提一下,.desktop不会立即找到新文件。注销并重新登录可确保 Unity 被迫重新读取目录~/.local/share/applications/usr/share/applications有效启动器。
  2. 测试-检查全局desktop文件
    如果这不能解决问题,请浏览到/usr/share/applications相应的.desktop文件并将其拖到启动器上,然后单击它。
    如果应用程序正确启动,您可以非常确定您有一个本地.desktop文件,代表应用程序,在~/.local/share/applications. 由于本地.desktop文件优先于其全局版本,因此本地文件很可能不正确或已过时。
    要找到它,请打开终端并运行:

    grep -iR <application> ~/.local/share/applications/
    
    Run Code Online (Sandbox Code Playgroud)

    <application>(当然)应用程序的名称在哪里。

    删除可能的本地版本,注销并重新登录。

    如果应用程序正确启动,则您的全局.desktop文件不正确,这是极不可能的,但如果是,则可能有多种原因。

解释

如果您有.desktop代表同一应用程序的重复启动器(文件),则Unity在登录时选择本地启动器。在会话期间,这不会正常更改,除非您通过将特定启动器拖到 Unity 启动器上来强制 Unity 使用该启动器。

这通常是检查全局.desktop文件有效性检测本地版本是否存在的最快和最可靠的方法,而不是挖掘~/.local/share/applications.