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




