You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

GNOME环境下Wine程序的Desktop Entry无法正常运行的问题求助

GNOME环境下Wine程序的Desktop Entry无法正常运行的问题求助

我遇到了一个棘手的问题:我已经安装了自定义的Wine前缀,在终端里用这条命令能毫无问题地启动Photoshop:

env WINEPREFIX=/home/$USERNAME/.local/share/wineprefixes/Windows wine /home/$USERNAME/.local/share/wineprefixes/Windows/drive_c/Program\ Files/Adobe/Adobe\ Photoshop\ 2021/photoshop.exe

但当我创建对应的Desktop Entry文件时,却弹出错误提示:

Desktop file didn't Specify Exec field

我的photoshop.desktop文件内容如下:

[Desktop Entry]
Type=Application
Name=Photoshop
Exec=env WINEPREFIX=/home/$USERNAME/.local/share/wineprefixes/Windows wine /home/$USERNAME/.local/share/wineprefixes/Windows/drive_c/Program\ Files/Adobe/Adobe\ Photoshop\ 2021/photoshop.exe
Categories=graphics;
Actions=app_settings;

我试过用引号、反斜杠甚至多斜杠来处理路径里的空格,但都不管用,实在不知道哪里出问题了,有没有大佬能帮我看看?


解决方法

别着急,问题主要出在Desktop Entry的变量解析规则和路径空格处理逻辑上,和终端Shell的运行规则不一样,调整这几点就能解决:

  • 替换不支持的环境变量
    Desktop Entry不支持$USERNAME这种Shell专属变量,你可以换成$HOME——这个是Desktop规范明确支持的环境变量,会自动指向你的用户主目录,兼容性拉满。

  • 正确处理带空格的路径
    终端里用反斜杠转义空格是Shell的规则,但Desktop Entry的Exec字段里,必须用双引号把带空格的路径整个括起来,反斜杠在这里起不到预期的转义作用。

修改后的Exec字段应该是这样的:

Exec=env WINEPREFIX="$HOME/.local/share/wineprefixes/Windows" wine "$HOME/.local/share/wineprefixes/Windows/drive_c/Program Files/Adobe/Adobe Photoshop 2021/photoshop.exe"
  • 更新Desktop数据库并确保权限正确
    修改完文件后,先给Desktop文件加上可执行权限:
chmod +x ~/.local/share/applications/photoshop.desktop

然后更新系统的Desktop数据库,让GNOME识别到你的修改:

update-desktop-database ~/.local/share/applications/

做完这些操作后,再点击Desktop图标试试,应该就能正常启动Photoshop了。

备注:内容来源于stack exchange,提问作者piedpipr

火山引擎 最新活动