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

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

安装 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;

我是否曾提到过我是一个 Linux 新手?

答案1

如果应用程序没有出现在 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/
    

    其中<application>(当然)是应用程序的名称。

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

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

解释

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

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

相关内容