我已经搜索了很多,但一直无法找到答案。该TryExec字段在 .desktop 文件中有何作用?它与Exec领域有何不同?
我有几个.desktop文件没有按预期工作或根本没有工作。我在任何地方都看不到任何错误,就每个错误寻求帮助似乎都没有成效。有没有一种方法可以验证我在文件中使用了正确的语法,它符合 FreeDesktop 标准,以便我可以应用特定的修复程序?
我有一个.desktop文件可以在特定的 conda 环境中启动 python 程序,如下所示:
[Desktop Entry]
Version=1.0
Name=Qutebrowser
GenericName=Web Browser
Comment=View and edit files
MimeType=text/html;
Exec=bash -c "source /vol/home/kaipingga/anaconda3/bin/activate qutebrowser; qutebrowser"
Icon=/vol/home/kaipingga/.config/qutebrowser.svg
Type=Application
Terminal=false
Categories=Network;Utility;X-Python;
StartupWMClass=Qutebrowser
X-Desktop-File-Install-Version=0.20
Run Code Online (Sandbox Code Playgroud)
这曾经有效,但我最近调整了我的 python 环境。
现在,在终端中执行相同的命令
$ bash -c "source /vol/home/kaipingga/anaconda3/bin/activate qutebrowser; qutebrowser"
Run Code Online (Sandbox Code Playgroud)
运行应用程序,但.desktop文件没有。我如何找出是什么错误?
我的其他.desktop文件运行良好,我认为我的 Python 环境出了点问题,目前这很hackish(这是在专用conda环境中运行它的主要原因)。
Zachary Brady 最初建议(但存在问题)xdg-open可能会运行.desktop文件,但它给了我一个消息框说
错误
向面板添加插件失败
没有找到正在运行的 xfce4-panel 实例
对于这个.desktop和另一个有效的。(我正在运行普通的 Ubuntu,没有 xfce)。
通过命令行启动应用程序时,我成功使用:
gourmet --gourmet-directory $HOME/my/custom/path/
Run Code Online (Sandbox Code Playgroud)
但是当尝试在 .desktop 文件上复制此行为时,它不起作用:
Exec=gourmet --gourmet-directory $HOME/my/custom/path/ %F 
Run Code Online (Sandbox Code Playgroud)
我可能在这里遗漏了一些非常基本的东西,但我无法理解这一点。任何帮助将非常感激。
我想将 Android Studio 添加到 i3dmenu in:/usr/share/applications文件android-studio.desktop包含:
[Desktop Entry]
Version=1.0
Type=Application
Name=android-studio
Exec="/usr/local/android-studio/bin/studio.sh" %f
Icon=/usr/local/android-studio/bin/studio.png
Comment=The Drive to Develop
Categories=Development;IDE;
Terminal=false
StartupWMClass=jetbrains-studio
Run Code Online (Sandbox Code Playgroud)
有人能告诉我为什么 i3-dmenu 仍然找不到 android-studio 吗?
我可以确认每个人都可以读取该文件。
当我使用 nix 安装 GUI 应用程序时,我看到桌面文件在~/.nix-profile目录中结束,例如:
~/.nix-profile/share/applications/firefox.desktop
但是,我的桌面希望文件在其中/user/share/applications,以便能够为它们创建桌面图标。
有什么方法可以告诉 nix 将桌面文件符号链接到,/user/share/applications这样我就不必手动执行了吗?
谢谢
我试图让一个 .desktop 文件运行一个与 .desktop 存储在同一目录中的 .sh。整个目录需要可移植并在机器之间移动。
我的运行脚本是 run.sh
我试过了:
[Desktop Entry]
Type=Application
Terminal=true
Name=RunMe
#Exec=sh -c "`dirname %k`/run.sh"
#Exec=bash -c "export PATH=$PATH:`dirname %k`; bash run.sh;"
#Exec=bash -c "export PATH=$PATH:`dirname %k`; sh run.sh;"
Exec=bash -c "export PATH=$PATH:`dirname %k`; run.sh;"
Run Code Online (Sandbox Code Playgroud)
但是当我双击 .desktop 文件时没有任何反应。如果我双击“run.sh”并选择“run”,脚本运行良好。如果我使用 ' sh run.sh'从命令行运行脚本,它工作正常。
任何想法,甚至只是如何调试它实际试图运行的路径?
我读过添加.desktop文件可以/etc/xdg/autostart在启动时启动应用程序。我也做了同样的事情来执行我的应用程序。但启动时什么也没有发生。以下是我的文件的内容.desktop:
[Desktop Entry]
Type=Application
Encoding=UTF-8
Version=1.0
Name=screenshot
Exec=/home/anaswara/eclipse_agent/bin/Screenshot
X-GNOME-Autostart-enabled=true
X-KDE-autostart-after=panel
Run Code Online (Sandbox Code Playgroud)
谁能告诉我出了什么问题吗( Ubunu 14.04)
我刚刚弄清楚如何手动创建一个.desktop文件,该文件允许通过发出命令gtk-launch[program.desktop] 来启动程序。问题是,只有当我当前的工作目录是我的用户名的桌面目录时,它似乎才起作用。因此,当我输入命令时gtk-launch program.desktop它就会运行。
问题是当我尝试输入时gtk-launch /home/userName/Desktop/program.desktop。相反,我从终端收到一条消息:gtk-launch:没有这样的应用程序。我知道该文件就在那里,并且 cat 可以很好地读取它。
为什么 gtk-launch 似乎只能在桌面内部工作?我可以解决这个问题吗?我通过持久 USB 将 Kali linux 与 GNOME 一起使用。
我可以添加env到.desktop文件中/usr/share/applications/
Exec=env FOO=bar /usr/bin/my_prog
Run Code Online (Sandbox Code Playgroud)
但我需要设置2个环境变量,并且我尝试过的方法都不起作用(使用env两次,在之后附加第二个赋值;)
如何env在文件中设置2个变量.desktop?