Linux 桌面文件外壳扩展

Linux 桌面文件外壳扩展,linux,shell,gnome,Linux,Shell,Gnome,我试图弄清楚是否有可能在~/.local/share/applications中创建一个something.desktop文件,每次都能成功执行命令chromium--user data dir=$(mktemp-d) .desktop文件中的相关行是以下示例中的Exec条目: $ cat ~/.local/share/applications/something.desktop [Desktop Entry] Name=chromecognito Exec=chromium --user-da

我试图弄清楚是否有可能在
~/.local/share/applications
中创建一个
something.desktop
文件,每次都能成功执行命令
chromium--user data dir=$(mktemp-d)

.desktop文件中的相关行是以下示例中的
Exec
条目:

$ cat ~/.local/share/applications/something.desktop
[Desktop Entry]
Name=chromecognito
Exec=chromium --user-data-dir\=\$\(mktemp -d\)
Icon=chromecognito
Type=Application
Categories=GTK;GNOME;Utility;
我看到过,它引用并尝试了多种转义组合,如
$
=
等,以及使用单引号,但无法使其在每次从“开始菜单”启动程序时使用新的临时目录

作为旁注,使用行
Exec=/home/myuser/bin/chromecognito
其中
/home/myuser/bin/chromecognito
如下所示:

$ cat /home/myuser/bin/chromecognito
#! /usr/bin/env bash

(chromium --user-data-dir=$(mktemp -d) &)
虽然我甚至还没有成功地使用像
~/bin/chromecognito
这样的波浪线作为.desktop文件中的Exec条目,但它仍然可以工作。也许这是一个很好的起点

Exec=sh -c "chromium --user-data-dir=$(mktemp -d)"

请注意,$(cmd)和~都将由shell解释,因此必须先调用shell才能使这些符号正常工作。

就是这样!有趣的是,我不需要逃避
$
或其他任何东西,基于上面的链接问题和xdg规范,这是我没有预料到的。