如何在 Wine 应用程序的 .desktop 文件中将文件作为参数传递

如何在 Wine 应用程序的 .desktop 文件中将文件作为参数传递

我其实想问两个问题:

  1. 在哪里可以找到有关桌面文件中 Exec 条目的可用参数/参数快捷方式的更多信息(例如 %U、%u、%f...)

  2. 主要问题是,如何在 .desktop 启动器上将文件作为参数传递给 wine 应用程序?

我发现在这里搜索这个建议:z:%f这对我没有用,好像我只是运行.desktop 文件而不传递文件,它会假定参数是z:并开始扫描z:“驱动器”


例子:

[Desktop Entry]
Name=Some Windows program
Exec=wine "program.exe" z:%f
Type=Application
Terminal=false
MimeType=application/docbook+xml

我想将 XML 文件放在这个 Wine 应用程序的自定义 .desktop 启动器上,这样就可以了。问题是,如果我点击启动器图标来调用这个程序,参数z:总是会传递给它,这是不可接受的

答案1

这是迄今为止我能做到的最好的了(记事本示例)

[Desktop Entry]
Name=Notepad
Exec=sh -c "echo %f | sed 's/^\//z:\//' | xargs wine /home/zetah/.wine/drive_c/windows/notepad.exe"
Type=Application
Terminal=false
Categories=Wine
MimeType=text/plain

考虑到我是初学者,我期待更好的答案

答案2

对于第一个问题,你可以看看桌面入门规范 -Exec关键

答案3

带有管道的 Exec 行葡萄酒之路xargs,与适当的引用和 -0 选项一起使用,可以在 Ubuntu 14.04 中完美运行,用于打开单个和多个文件。

Exec=/usr/bin/env sh -c "winepath -w -0 %F | WINEPREFIX='/home/your_user_name/.wine' xargs -0 wine 'C:\\\\Program Files\\\\Some Vendor\\\\SomeProgram.exe'"

答案4

我刚写了一篇小文章Python 脚本将 Unix 风格的路径转换为 ​​Wine 路径格式。

下载压缩, 提炼wine-launcher.py进入你的主文件夹并编辑你的 .desktop 文件,如下所示:

Exec=python ~/wine-launcher.py "program.exe" %F

相关内容