我已经创建了一个 .desktop 文件。
[Desktop Entry]
Exec=cd /opt/sqldeveloper/sqldeveloper/bin && bash sqldeveloper $*
Terminal=false
StartupNotify=true
Categories=GNOME;Oracle;Utility;Development;
Type=Application
Icon=/opt/sqldeveloper/icon.png
Name=Oracle SQL Developer
Comment=what to say
Version=s.0.m.t.h.i.n.g
GenericName=ORACLE SQL DEVELOPER
它存在于/usr/share/applications
。如果在 Nautilus 中查看,它甚至会显示图标,但是当我按下 alt(破折号或 Windows 键)并搜索它时,它不可见。
我也尝试过:
sudo update-desktop-database
答案1
你的 .desktop 文件中的关键问题是什么
我尝试Exec=
用另一个(简单且有效的)命令替换您的 .desktop 文件中的命令,并且该文件似乎可以运行,并且没有被 Dash 拒绝。
一个常见的误解是,你可以将Exec=
.desktop 文件的行用作终端窗口。事实并非如此;例如,扩展 like~/
或不起作用。将更复杂的命令放在单独的脚本文件中并从启动器文件(你的文件)$HOME
执行是一种很好(意思是:简单)的做法.desktop
从 .desktop 文件运行复杂命令
如果你特别想保留你的命令里面您的.desktop
文件,您应该按如下方式进行:
Exec=sh -c "your_complicated_command_here && the_rest_of_it"
(command inside quotes)
运行 .desktop 文件中的脚本来完成这项工作
假设你的命令
cd /opt/sqldeveloper/sqldeveloper/bin && bash sqldeveloper $*
从终端窗口运行,但我只需创建一个小脚本:
#!/bin/bash
cd /opt/sqldeveloper/sqldeveloper/bin && bash sqldeveloper $*
将其另存为,并将.desktop 文件的行scriptname.sh
更改为:Exec=
Exec=sh /path/to/scriptname.sh
然后你的.desktop
文件就会显示在 Dash 中
笔记
正如@Braiam 和@MrVaykadji 所提到的,您的 .desktop 文件还存在更多问题。以下是一些示例:
- 您不应该只使用行中虚构的值
Categories=
,正如您所读到的这里 - 版本字段不是必需的,但如果使用,请使用 1.0
更多内容这里. 你可以找到的好工具这里(也感谢@Braiam 和@MrVaykadji)。
然而,导致您的 .desktop 文件无法出现在 Dash 中的关键因素就是该Exec=
行。