我能以某种方式避免有两个版本的 Steam 吗?

我能以某种方式避免有两个版本的 Steam 吗?

所以,我最近(再次)从 Window$ 移出,并且我想将我的游戏库移过去。

我已经安装了适用于 Linux 的 Steam(因此我可以玩原生支持的游戏),但现在我必须安装适用于 Wine 的 Steam,这样我才能玩所有非原生游戏。

我的问题是我同时运行两个版本的 Steam,这可能会浪费资源(更不用说每次我在这个类别中找不到游戏或反之亦然时都必须切换到不同的版本,这很烦人)。

有什么方法可以让我欺骗 Linux 版 Steam 通过 Wine 启动 Windows 游戏吗?

例如,我可以Play从 Linux 安装中点击像 Skyrim 这样的按钮,然后让 Steam 在命令前面加上 吗wine?同时,本机游戏应该无需任何前缀即可运行。

答案1

我曾成功通过 Wine 从 Linux Steam 客户端启动应用程序。正如 Michael 所建议的,您需要使用 shell 脚本来启动它们。

例如我使用这个来启动流放之路,名为poe.exe

#!/bin/bash
unset LD_PRELOAD
export WINEPREFIX=/media/stephen/d_extra/PoE/
export WINEDEBUG=-all
cd "${WINEPREFIX}"
cd drive_c
cd "Path of Exile"
wine PathOfExile.exe

如果不取消设置 LD_PRELOAD,游戏将无法启动。此外,文件的权限必须是可执行的。

我在脚本上设置了权限(例如):

chmod 755 ~/bin/poe.exe

然后我使用添加非 Steam 游戏选项,然后浏览到脚本。

所以,这就是您添加通用葡萄酒游戏的方式……

要回答您的问题并添加 Steam 游戏,您需要创建一个脚本来调用 steam.exe 并传递游戏 ID。这将导致启动第二个 Steam 实例,但您不需要让它一直运行,只需在第二个游戏运行时运行即可。因此,这里有另一个脚本,它通过使用适当的 URL 通过 wine 调用 Windows Steam 客户端来启动 Windows 版本的 Unturned:

#!/bin/bash
unset LD_PRELOAD
export WINEPREFIX=$HOME/.unturned
export WINEDEBUG=-all
cd "${WINEPREFIX}"
cd drive_c
cd Program\ Files\ \(x86\)/Steam/
nice -n 19 wine Steam.exe -no-dwrite steam://rungameid/304930

在这种情况下,我不知道是否需要取消设置 LD_PRELOAD,但我的其他脚本使用了它。

注意:仅当您在安装 steam(或其他 Windows 程序)时指定了 WINEPREFIX 时才需要指定 WINEPREFIX。如果您在安装 Windows 版 steam 时没有指定,则脚本中不需要指定。如果是这种情况,您需要将其替换为~/.wine/

答案2

您可以尝试该Add a Non-Steam Game选项并将其定向到启动游戏的 shell 脚本,但这并不能解决太多问题,因为它还会启动 Windows Steam 客户端,因为客户端需要作为 DRM 过程的一部分来验证游戏。如果 Linux 客户端可以验证 Windows 游戏的 DRM,那么一切都会好起来,但这样做不行。

相关内容