我想.desktop
从终端和 dmenu 运行文件。从终端,理想情况下应该使用./app.desktop
或运行它/path/to/app.desktop
,并将app.desktop
其放在一个$PATH
目录中。我宁愿不必使用像gtk-launch app.desktop
.
此外,我发现gtk-launch
使用 启动应用程序并不总是有效gtk-launch app.desktop
,即使它确实有效,当我使用它的可执行文件运行时,将其放在#!/path/to/gtk-launch
顶部会.desktop
返回错误。gtk-launch: no such application ./app.desktop
./app.desktop
我使用 bspwm 并且通常更喜欢从终端或 with 启动内容,dmenu_run
因此我没有可以单击.desktop
文件来启动它们的桌面。
如何使.desktop
文件可执行?
答案1
每https://askubuntu.com/a/239883/1002900和https://gitlab.gnome.org/GNOME/glib/-/issues/54#note_1755632,
gio launch /path/file.desktop
答案2
如果它们是可执行的 ( chmod u+x /path/to/app.desktop
),您可以在顶部添加此 shebang:
#!/usr/bin/env xdg-open
从那时起,您可以使用以下方式调用您的应用程序:
/path/to/app.desktop
例如,这个 .desktop 文件将启动xeyes
.
#!/usr/bin/env xdg-open
[Desktop Entry]
Name=Xeyes
Exec=xeyes
Terminal=false
Type=Application
答案3
您可以尝试解析该文件,并执行该Exec=
行所说的应该执行的任何内容。这应该可以做到:
$(awk '/^Exec=/{sub(/^Exec=/, ""); print}' file.desktop)
无论里面有什么,file.desktop
都会启动。
您还可以扩展它并创建一个脚本,该脚本接受参数 APP 并在file.desktop
其中包含“Name=APP”的文件上运行该命令。
答案4
如果已经gtk-launch
安装,则可以运行:
gtk-launch example.desktop