$VISUAL 的 .desktop 启动器失败

$VISUAL 的 .desktop 启动器失败

我在一个名为“createlauncher.desktop”的桌面文件中构建了一个小型启动器编辑器,它在文本编辑器中打开了第二个名为“SHORTCUT.desktop”的只读桌面启动器文件,其中可执行文件的路径和名称是已填写,启动器将保存到新位置。它主要使用 xdg-open,主要目标是 pdf 文件或其他目录。 xdg-open 部分工作正常。这样我就可以拥有 Windows 风格的快捷方式(桌面文件),而 Dropbox 不会像符号链接那样弄乱。

如果我指定只读桌面文件的完整路径,我可以使用启动器,但我必须在绝对路径上调用特定的文本编辑器才能使其工作。我希望它在同一目录中查找只读 .desktop 文件,无论它在哪里,这样安装就很简单,并且我希望它启动系统编辑器,即$VISUAL设置的任何内容。当我从命令行启动它时,这里提供的启动器工作正常,dex -v createshortcut.desktop但是当我通过单击它从 GUI (Cinnamon/nemo) 启动它时,它不会加载文本编辑器,但不会给出错误。当我启动使用时desktop-file-validate createshortcut.desktop它会抛出错误

createshortcut.desktop: error: value "sh -c "exec $VISUAL $(dirname $0)\/SHORTCUT.desktop" %k" for key "Exec" in group "Desktop Entry" contains a non-escaped character '$' in a quote, but it should be escaped with two backslashes ("\\$")

3次。然后,我遍历并转义 的三个实例$,然后错误消失,desktop-file-validate createshortcut.desktop但 dex 不再正常启动编辑器,并且它仍然不会从桌面单击启动。

这是createlauncher.desktop在编辑器中正确启动第二个 .desktop 文件的文件,但只能从命令行使用dex


    #!/usr/bin/env xdg-open
    [Desktop Entry]
    Name=create shortcut
    Exec=bash -c -e "exec $VISUAL $(dirname $0)\/SHORTCUT.desktop" %k
    Icon=text-editor
    Type=Application
    Comment=SAVE AS!!!!!
    Terminal=false

这是只读目标,正常工作时SHORTCUT.desktop应该在编辑器中打开:$VISUALcreatelauncher.desktop


    #!/usr/bin/env xdg-open
    [Desktop Entry]
    Type=Application
    Encoding=UTF-8
    Name=NAME
    Exec=xdg-open "PATHTOFILE"
    then Icon=/usr/share/icons/HighContrast/scalable/emblems/emblem-symbolic-link.svg
    Terminal=false
    Comment= (1) make NAME for target (2) enter full absolute PATHTOFILE  of source (3) SAVE AS to the target directory

我的猜测是,bash 已经拾取了一些 ENV 变量,该变量不在从createlauncher.desktop文件启动的交互式 bash 中,但此时我已经无法理解了。

是否有一个所有 shell 都能读取的“.bashrc”等效文件?似乎指向我的解决方案,但不确定。

相关内容