安装 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
,但是它并没有显示出来,或者启动器中的图标没有执行应有的操作。
- 注销并重新登录
尽管申请应该安装后立即显示,顺便说一句,新.desktop
文件不会立即找到。注销并重新登录可确保 Unity 重新读取目录~/.local/share/applications
并/usr/share/applications
找到有效的启动器。 测试-检查全局
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
。