我刚刚弄清楚如何手动创建一个文件,该文件允许通过发出命令[program.desktop].desktop
来启动程序。gtk-launch
问题是,只有当我当前的工作目录是我的用户名的桌面目录时,它似乎才起作用。因此,当我输入命令时gtk-launch program.desktop
它就会运行。
问题是当我尝试输入时gtk-launch /home/userName/Desktop/program.desktop
。相反,我从终端收到一条消息:gtk-launch:没有这样的应用程序。我知道该文件就在那里,并且 cat 可以很好地读取它。
为什么 gtk-launch 似乎只能在桌面内部工作?我可以解决这个问题吗?我通过持久 USB 将 Kali linux 与 GNOME 一起使用。
答案1
要实现此功能,您必须满足两个要求:
您的
myapp.desktop
文件应驻留在多个目录之一(不完全是/usr/share/application
)。这些取决于您的 Linux 发行版;对于Ubuntu:1.1.
/usr/share/application
1.2.
/usr/local/share/applications
1.3.
~/.local/share/applications
你必须执行
gtk-launch myapp
(或gtk-launch myapp.desktop
)没有路径。
有关的:
https://askubuntu.com/questions/471282/is-it-possible-to-execute-a-desktop-file-from-a-quicklist
https://askubuntu.com/questions/5172/running-a-desktop-file-in-the-terminal
答案2
联机帮助页说明如下:
gtk-launch 至少需要一个参数,即要启动的应用程序的名称。该名称应与位于 /usr/share/application 中的应用程序桌面文件名匹配,带或不带“.desktop”后缀。
这表明桌面文件应该位于指定位置,否则无法用于启动应用程序。源文件gtk/gtk-launch.c显示 gtk-launch 不执行任何操作,而是在 D-Bus 上放置一条消息,要求启动所需的应用程序。