语境
我正在尝试通过单击任务栏中的图标来启动通过 wine 安装的 Ableton Live(我可以补充说,它运行正常!)。
正常行为
如果我从终端运行命令,看起来wine /path/to/program.exe
一切都运行正常:我会在终端中收到一堆信息消息,并且会弹出一个带有 Ableton 的窗口。
问题行为
问题是,当我从文件运行它时,.desktop
什么都没有发生。我尝试设置标志Terminal=true
,然后它弹出一个终端,其中包含我通常在终端上看到的消息:所以我知道程序正在启动... 只是没有显示。
我猜
我不是专家,所以如果我用错了术语,请原谅我,但我的猜测是它与窗口服务器有关。因为当我从我的会话启动它时它没问题,但不知何故当从它启动时它.desktop
无法显示,它似乎是明显的罪魁祸首。我想它是从另一个无法显示窗口的会话启动的。这个猜测的唯一问题是我到处都看到.desktop
文件正在以用户身份运行命令,我甚至运行了以确认这whoami
一点.desktop
......所以我不知道下一步是什么。
感谢您的帮助!
答案1
好的,在尝试了一番之后,我得出结论,我最初的假设是错误的,问题不在于 Linux 方面。
当你启动时wine
,linux 会被安装到Z:
你的终端路径的驱动器上,例如:
/some/path$ wine cmd.exe
Z:\some\path>
我猜 Wine 需要该路径以某种方式保持一致,因为我意识到当您从路径.desktop
不匹配的地方启动它时,我遇到的所有问题都源于此。我通过替换命令来修复它:
wine "C:\path\to\program"
和
wine cmd.exe /c "C:" "&" "C:\path\to\program"
这样,我就完全不需要追踪我所在的位置了Z:
,而且你知道吗:现在 UI 出现了!
我不完全确定它为什么有效,但它确实如此……嗯!我希望这可以帮助别人!