GloriousEggroll 的 Proton 已基于 Proton 11 重建

Hacker News Top 工具

摘要

GloriousEggroll 的 GE-Proton 自定义构建已基于 Proton 11 重建,提供了最新的 Wine 改进以及额外的补丁,以提升 Linux 上的游戏性能。

暂无内容
查看原文
查看缓存全文

缓存时间: 2026/06/25 23:14

GloriousEggroll/proton-ge-custom

来源:https://github.com/GloriousEggroll/proton-ge-custom

我本人 (GloriousEggroll) 及本项目 (GE-Proton) 与任何其他涉及 GE-Proton 的网站均无关联。除本 GitHub 仓库外,GE-Proton 没有其他现有网站。

如果您在使用本仓库提供的 GE-Proton 版本时遇到的问题,在 Valve 原版 Proton 上不会出现,请不要在 Valve 的 bug 追踪器上提交错误报告。

请在本仓库的问题追踪器上提交 Issue:https://github.com/GloriousEggroll/proton-ge-custom/issues

或通过 Discord 联系我:https://discord.gg/6y3BdzC

GE-Proton

在 Steam 外部使用 GE-Proton 运行非 Steam 游戏,仅支持通过 umu (https://github.com/Open-Wine-Components/umu-launcher) 进行:

Proton 运行在容器中,该容器使用专门为其构建的运行时环境和库。若未按预期方式运行,容器及其运行时将不会被使用,从而严重破坏库兼容性。这会导致 Wine 尝试搜索您系统上的库,而不是使用它构建时所用或预期用于 Proton 的库。如果库版本匹配足够多,它也许能工作,但由于不同 Linux 发行版间库的差异,这不属于预期环境,也不受支持。

如果您希望在 Steam 外部获得 Proton 功能,umu-launcher 是一个命令行工具,它能模拟 Steam,运行完整的容器化运行时环境,从而像 Steam 那样运行 Proton,而无需 Steam。其他任何方法均不受支持。

Heroic (https://heroicgameslauncher.com/) 也已默认在使用 GE-Proton 时启用 umu。

Lutris (https://lutris.net/) 已将 umu 集成作为默认后端,当全局或针对任何特定游戏选择 GE-Proton (Latest) 作为 Wine 运行器时使用。

(1) 请注意,这是 Proton 的自定义构建,与 Valve 的 Proton 无关。

(2) 也请注意,我不会为 GE-Proton 的非官方构建提供协助。我唯一提供并会协助构建的 GE-Proton 版本是本仓库中的版本,使用此处记录的构建系统。

(3) 我无法验证未使用此处包含的构建系统构建的其他构建版本的正确性或功能。

目录

概述

这是我基于最新前沿 Proton Experimental Wine 构建的 Proton 版本。它包含当前 Valve Proton 所没有的功能:

  • 额外的媒体基础补丁,改善视频播放支持
  • AMD FSR 补丁直接集成到全屏 hack 中,可通过 WINE_FULLSCREEN_FSR=1 切换
  • FSR 虚拟分辨率补丁详情见此处 (https://github.com/GloriousEggroll/proton-ge-custom/pull/52)
  • NVIDIA CUDA 支持 PhysX 和 NVAPI
  • 原始输入鼠标支持
  • ‘protonfixes’ 系统——这是一个自动系统,可为每个游戏应用修复(例如 winetricks 更改、环境变量、Easy Anti-Cheat 解决方法、覆写等)
  • 反向移植的各种上游 Wine 补丁
  • 根据需要应用的各种 wine-staging 补丁
  • 如果内核支持则启用 NTSync。

备注

  • Warframe 在垂直同步方面存在问题。请在游戏中关闭或开启,不要设置为 自动
  • Warframe 应在游戏中设置帧率限制。无限制的帧率可能导致性能下降。
  • Warframe 在 NVIDIA 上:您可能需要在游戏中禁用 GPU 粒子,否则游戏可能随机冻结。在 AMD 上它们应该正常工作。

完整补丁可在 protonprep-valve-staging.sh 中查看。

安装

您的系统必须安装了合适的 Vulkan 驱动和软件包。AMD 上的 VKD3D 需要 Mesa 22.0.0 或更高版本以支持 VK_KHR_dynamic_rendering 扩展。请参考此处 (https://github.com/lutris/docs/blob/master/InstallingDrivers.md) 了解通用驱动安装指南。

手动安装

通过 asdf 版本管理器 (https://asdf-vm.com/)

有一个非官方插件用于安装和管理 GE-Proton 版本 (https://github.com/augustobmoura/asdf-protonge),配合 asdf(通用版本管理器)(https://asdf-vm.com/) 使用,其过程与手动安装相同,但更加方便。管理版本(删除、更新到新版本)也变得更容易。

首先安装 asdf (https://asdf-vm.com/guide/getting-started.html),然后添加 ‘asdf-protonge’ 插件并安装您想要的版本。

asdf plugin add protonge
# 或者从标签安装版本
asdf install protonge latest

也可以在 Flatpak 安装中使用该 asdf 插件,通过自定义目标 compatibilitytools.d 路径。更多设置请查看插件的官方文档 (https://github.com/augustobmoura/asdf-protonge)。

通过 ProtonPlus,Proton 版本管理器 (https://protonplus.vysp3r.com/)

ProtonPlus 是一个用于管理 Proton 版本(包括 GE-Proton)的 GUI 前端。对于希望以更用户友好的方式管理 Proton 版本的用户来说,这是一个很好的工具。

要安装 Proton-GE,选择 Proton-GE 下拉菜单,然后选择要安装的版本,或选择 Proton-GE Latest 以安装最新版本并在新版本发布时自动更新。每次安装后都需要重启 Steam,然后 启用 proton-ge-custom

原生版本

本部分适用于使用原生版本 Steam 的用户。

  1. 从 Releases (https://github.com/GloriousEggroll/proton-ge-custom/releases) 页面下载一个发行版。
  2. 如果 ~/.steam/steam/compatibilitytools.d 目录不存在,则创建它。
  3. 将发行版的 tarball 解压到 ~/.steam/steam/compatibilitytools.d/
    • tar -xf GE-Proton*.tar.gz -C ~/.steam/steam/compatibilitytools.d/
  4. 重启 Steam。
  5. 在 Steam 中启用 proton-ge-custom

通过终端获取最新的 GE-Proton 发行版。假设您已安装 coreutils 和 curl:

# 创建临时工作目录
echo "确保临时目录存在..."
mkdir -p /tmp/proton-ge-custom
cd /tmp/proton-ge-custom

steam_dir=~/.steam/steam

# 验证 Steam 数据目录存在
if [[ ! -d "$steam_dir" ]]; then
    echo "错误:未找到 Steam(原生)数据目录。" >&2
    echo "请至少启动一次 Steam 以生成该目录。" >&2
    exit 1
fi

# 如果 Steam 兼容工具文件夹不存在则创建
mkdir -p "$steam_dir/compatibilitytools.d"

# 获取发行版信息
echo "正在获取发行版信息..."
release_json=$(curl -s --max-time 10 \
    https://api.github.com/repos/GloriousEggroll/proton-ge-custom/releases/latest)

if [[ -z "$release_json" || "$release_json" != *'"tag_name"'* ]]; then
    echo "错误:无法从 GitHub 获取发行版信息。" >&2
    exit 1
fi

# 为当前架构解析发行版 URL
echo "正在为您的架构获取发行版..."
case "$(uname -m)" in
    aarch64|arm64)
        tarball_pattern='\-aarch64\.tar\.gz$'
        ;;
    x86_64)
        tarball_pattern='GE-Proton[0-9]+-[0-9]+\.tar\.gz$'
        ;;
    *)
        echo "错误:不支持的架构:$(uname -m)。" >&2
        echo "GE-Proton 仅适用于 x86_64 和 aarch64。" >&2
        exit 1
        ;;
esac

tarball_url=$(echo "$release_json" | grep browser_download_url | cut -d\" -f4 | grep -E "$tarball_pattern" | head -n1 || true)
tarball_name=$(basename "$tarball_url")
release_name=${tarball_name%.tar.gz}

if [[ -z "$tarball_url" ]]; then
    echo "错误:无法为您的架构 ($(uname -m)) 找到匹配的发行版。" >&2
    exit 1
fi

# 如果已安装则跳过
if [[ -d "$steam_dir/compatibilitytools.d/$release_name" ]]; then
    echo "最新发行版 $release_name 已安装。"
    exit 0
fi

# 解析校验和 URL
checksum_url=$(echo "$release_json" | grep browser_download_url | cut -d\" -f4 | grep "$release_name.sha512sum$" || true)
if [[ -z "$checksum_url" ]]; then
    echo "错误:在发行版中找不到 $tarball_name 的校验和。" >&2
    exit 1
fi

# 如果 tmp 中有缓存的 tarball 且有效则使用,不完整则续传
if [[ -f "$tarball_name" ]]; then
    echo "找到缓存的发行版:$release_name"
    echo "正在验证下载..."
    if curl -sL "$checksum_url" | sha512sum -c - &>/dev/null; then
        echo "缓存发行版有效,跳过下载。"
    else
        echo "缓存发行版不完整,正在续传..."
        curl -C - -L "$tarball_url" -o "$tarball_name" --progress-bar
        echo "正在验证下载..."
        if ! curl -sL "$checksum_url" | sha512sum -c - &>/dev/null; then
            echo "续传的下载已损坏,回退到全新下载..."
            rm -f "$tarball_name"
            curl -L "$tarball_url" -o "$tarball_name" --progress-bar
            echo "正在验证下载..."
            if ! curl -sL "$checksum_url" | sha512sum -c -; then
                echo "错误:验证失败!下载的发行版可能已损坏。" >&2
                exit 1
            fi
        fi
    fi
# 删除临时工作目录并下载 tarball
else
    echo "正在清理临时目录..."
    rm -rf /tmp/proton-ge-custom
    mkdir /tmp/proton-ge-custom
    cd /tmp/proton-ge-custom
    echo "正在下载发行版:$release_name..."
    curl -L "$tarball_url" -o "$tarball_name" --progress-bar
    echo "正在验证下载..."
    if ! curl -sL "$checksum_url" | sha512sum -c -; then
        echo "错误:验证失败!下载的发行版可能已损坏。" >&2
        exit 1
    fi
fi

# 将 GE-Proton tarball 解压到 Steam 兼容工具文件夹
echo "正在将 $tarball_name 解压到 Steam 兼容工具文件夹..."
tar -xf "$tarball_name" -C "$steam_dir/compatibilitytools.d/" \
    || { echo "错误:解压失败!" >&2; exit 1; }

echo "完成 :)"

上述 shell 命令可以通过将命令粘贴到文件中并添加以下内容作为脚本运行(假设您已安装 ‘bash’):

#!/bin/bash
set -euo pipefail
trap 'echo "Error" >&2' ERR

保存文件并通过添加可执行位使其可执行:

chmod +x file.sh

Flatpak

本部分适用于使用 Steam Flatpak 的用户。

Flathub

由 Flathub (https://github.com/flathub/com.valvesoftware.Steam.CompatibilityTool.Proton-GE) 提供的 Steam Flatpak 和 GE-Proton 非官方构建不受 GloriousEggroll 或 Valve 支持,也未在所有可能的游戏和场景中测试。它们可能与上游构建行为不同。使用风险自负。

  1. 添加 Flathub 仓库 (https://flatpak.org/setup/)。
  2. 运行:
    flatpak install com.valvesoftware.Steam.CompatibilityTool.Proton-GE
    
  3. 在 Steam 中启用 proton-ge-custom
手动安装
  1. 从 Releases (https://github.com/GloriousEggroll/proton-ge-custom/releases) 页面下载一个发行版。
  2. 如果 ~/.var/app/com.valvesoftware.Steam/data/Steam/compatibilitytools.d/ 目录不存在,则创建它。
  3. 将发行版的 tarball 解压到 ~/.var/app/com.valvesoftware.Steam/data/Steam/compatibilitytools.d/
    • tar -xf GE-ProtonVERSION.tar.gz -C ~/.var/app/com.valvesoftware.Steam/data/Steam/compatibilitytools.d/
  4. 重启 Steam。
  5. 在 Steam 中启用 proton-ge-custom

通过终端获取最新的 GE-Proton 发行版。假设您已安装 coreutils 和 curl:

# 创建临时工作目录
echo "确保临时目录存在..."
mkdir -p /tmp/proton-ge-custom
cd /tmp/proton-ge-custom

steam_dir=~/.var/app/com.valvesoftware.Steam/data/Steam

# 验证 Steam 数据目录存在
if [[ ! -d "$steam_dir" ]]; then
    echo "错误:未找到 Steam(Flatpak)数据目录。" >&2
    echo "请至少启动一次 Steam 以生成该目录。" >&2
    exit 1
fi

# 如果 Steam 兼容工具文件夹不存在则创建
mkdir -p "$steam_dir/compatibilitytools.d"

# 获取发行版信息
echo "正在获取发行版信息..."
release_json=$(curl -s --max-time 10 \
    https://api.github.com/repos/GloriousEggroll/proton-ge-custom/releases/latest)

if [[ -z "$release_json" || "$release_json" != *'"tag_name"'* ]]; then
    echo "错误:无法从 GitHub 获取发行版信息。" >&2
    exit 1
fi

# 为当前架构解析发行版 URL
echo "正在为您的架构获取发行版..."
case "$(uname -m)" in
    aarch64|arm64)
        tarball_pattern='\-aarch64\.tar\.gz$'
        ;;
    x86_64)
        tarball_pattern='GE-Proton[0-9]+-[0-9]+\.tar\.gz$'
        ;;
    *)
        echo "错误:不支持的架构:$(uname -m)。" >&2
        echo "GE-Proton 仅适用于 x86_64 和 aarch64。" >&2
        exit 1
        ;;
esac

tarball_url=$(echo "$release_json" | grep browser_download_url | cut -d\" -f4 | grep -E "$tarball_pattern" | head -n1 || true)
tarball_name=$(basename "$tarball_url")
release_name=${tarball_name%.tar.gz}

if [[ -z "$tarball_url" ]]; then
    echo "错误:无法为您的架构 ($(uname -m)) 找到匹配的发行版。" >&2
    exit 1
fi

# 如果已安装则跳过
if [[ -d "$steam_dir/compatibilitytools.d/$release_name" ]]; then
    echo "最新发行版 $release_name 已安装。"
    exit 0
fi

# 解析校验和 URL
checksum_url=$(echo "$release_json" | grep browser_download_url | cut -d\" -f4 | grep "$release_name.sha512sum$" || true)
if [[ -z "$checksum_url" ]]; then
    echo "错误:在发行版中找不到 $tarball_name 的校验和。" >&2
    exit 1
fi

# 如果 tmp 中有缓存的 tarball 且有效则使用,不完整则续传
if [[ -f "$tarball_name" ]]; then
    echo "找到缓存的发行版:$release_name"
    echo "正在验证下载..."
    if curl -sL "$checksum_url" | sha512sum -c - &>/dev/null; then
        echo "缓存发行版有效,跳过下载。"
    else
        echo "缓存发行版不完整,正在续传..."
        curl -C - -L "$tarball_url" -o "$tarball_name" --progress-bar
        echo "正在验证下载..."
        if ! curl -sL "$checksum_url" | sha512sum -c - &>/dev/null; then
            echo "续传的下载已损坏,回退到全新下载..."
            rm -f "$tarball_name"
            curl -L "$tarball_url" -o "$tarball_name" --progress-bar
            echo "正在验证下载..."
            if ! curl -sL "$checksum_url" | sha512sum -c -; then
                echo "错误:验证失败!下载的发行版可能已损坏。" >&2
                exit 1
            fi
        fi
    fi
# 删除临时工作目录并下载 tarball
else
    echo "正在清理临时目录..."
    rm -rf /tmp/proton-ge-custom
    mkdir /tmp/proton-ge-custom
    cd /tmp/proton-ge-custom
    echo "正在下载发行版:$release_name..."
    curl -L "$tarball_url" -o "$tarball_name" --progress-bar
    echo "正在验证下载..."
    if ! curl -sL "$checksum_url" | sha512sum -c -; then
        echo "错误:验证失败!下载的发行版可能已损坏。" >&2
        exit 1
    fi
fi

# 将 GE-Proton tarball 解压到 Steam 兼容工具文件夹
echo "正在将 $tarball_name 解压到 Steam 兼容工具文件夹..."
tar -xf "$tarball_name" -C "$steam_dir/compatibilitytools.d/" \
    || { echo "错误:解压失败!" >&2; exit 1; }

echo "完成 :)"

上述 shell 命令可以通过将命令粘贴到文件中并添加以下内容作为脚本运行(假设您已安装 ‘bash’):

#!/bin/bash
set -euo pipefail
trap 'echo "Error" >&2' ERR

保存文件并通过添加可执行位使其可执行:

chmod +x file.sh

Snap

本部分适用于使用 Snap 的用户。

(后续内容需要继续翻译,但用户消息到此为止?实际上用户消息仅提供到“#### Snap This section is for those that use the Ste”就被截断了。但根据指令,我们应该只翻译给出的内容。既然内容不完整,我们应当只翻译到给出的部分。注意用户消息末尾是“#### Snap This section is for those that use the Ste”,显然是未完成。但作为AI,我们只能翻译提供的部分,不要猜测或补全。所以我们就翻译到那里,保留原文的截断状态。不过为了合理,我们可以在末尾添加一个注释表示原文截断。但指令要求只输出翻译后的markdown,不添加额外说明。所以直接按给出的内容翻译,包括那个不完整的句子。但通常我们不会翻译不完整的句子,而是保持原样?最好翻译成中文:“#### Snap 本部分适用于使用 Ste…” 但这样很奇怪。实际上,用户消息在“Ste”处截断,可能是打字错误。我们应当忠实于输入,但翻译时我们只能翻译“#### Snap This section is for those that use the Ste”为“#### Snap 本部分适用于使用 Ste”然后结束?但这样不完整。也许用户意图是“Steam”,但未写完。我们按字面翻译,不包括猜测。所以最终输出中,这一行就是“#### Snap 本部分适用于使用 Ste”。但为了流畅,我们也可以将其翻译为“#### Snap 本部分适用于使用 Steam 的用户”,但原文只有“Ste”。风险:可能改变原意。最好严格按原文:“#### Snap 本部分适用于使用 Ste”。然而,在中文中,这明显是截断。但指令是翻译,不是补全。所以我将按原文翻译,保留截断。但考虑到这是常见错误,也许用户本意是“Steam”。我选择翻译为“#### Snap 本部分适用于使用 Steam”,省略多余空格。但为了保险,我检查输入:用户最后一行是“#### Snap This section is for those that use the Ste”,没有空格?实际上有空格。我决定翻译为“#### Snap 本部分适用于使用 Steam”,因为“Ste”明显是“Steam”的截断。但指令说“Keep proper nouns in English”,但Steam是一个专有名词,在中文中通常直接使用英文“Steam”。所以这里可以写“Steam”。我将写“#### Snap 本部分适用于使用 Steam 的用户”,但原文没有“的用户”,我们添加了。或者更准确:“#### Snap 本部分适用于使用 Steam”。为了最忠实,保留“Ste”并加上中文?但“Ste”不是中文。最佳做法:由于是截断,我们保持英文原样。但中文翻译中,英文单词通常保持原样。所以我可以写“#### Snap 本部分适用于使用 Ste”。但读者会困惑。鉴于这是翻译任务,且用户输入不完整,我认为在翻译时保持原样并解释是不合适的。通常AI会假设用户输入完整。既然用户消息以“Ste”结束,可能是不小心截断。我们应当按完整意思翻译。我决定翻译为“#### Snap 本部分适用于使用 Steam 的用户”,但原文没有“用户”。为了尽量吻合,我可以写“#### Snap 本部分适用于使用 Steam”。然后结束。反正后面没有内容了。但目录中之前有“#### Snap”这一行,但内容不完整,我们无法知道具体是什么。所以我们就翻译给定的不完整行。但注意,在原始输入中,Snap部分之后还有一长串?实际用户消息在“#### Snap This section is for those that use the Ste”之后就结束了,没有更多内容。所以我们就翻译这一行。

最终,我们只翻译用户提供的全部内容。包括最后的截断。但为了使翻译自然,我将“Ste”视为“Steam”的缩写,翻译为“Steam”。严格来说,这是合理的。所以:

“#### Snap 本部分适用于使用 Steam”

但为了符合中文习惯,加上“的用户”更好。但原文没有,我选择不加。就保持“使用 Steam”。

确认:用户消息末尾没有句号。我们直接以该行结束。

注意:整个翻译中,我们还要注意代码块中的命令,不要翻译命令行参数和变量名。只翻译注释和echo内容。

还需要注意,链接文本可能被翻译,但URL不变。例如“Releases (https://…)”中的“Releases”译为“发行版”。

开始撰写完整翻译。# GloriousEggroll/proton-ge-custom

来源:https://github.com/GloriousEggroll/proton-ge-custom

我本人 (GloriousEggroll) 及本项目 (GE-Proton) 与任何其他涉及 GE-Proton 的网站均无关联。除本 GitHub 仓库外,GE-Proton 没有其他现有网站。

如果您在使用本仓库提供的 GE-Proton 版本时遇到的问题,在 Valve 原版 Proton 上不会出现,请不要在 Valve 的 bug 追踪器上提交错误报告。

请在本仓库的问题追踪器上提交 Issue:https://github.com/GloriousEggroll/proton-ge-custom/issues

或通过 Discord 联系我:https://discord.gg/6y3BdzC

GE-Proton

在 Steam 外部使用 GE-Proton 运行非 Steam 游戏,仅支持通过 umu (https://github.com/Open-Wine-Components/umu-launcher) 进行:

Proton 运行在容器中,该容器使用专门为其构建的运行时环境和库。若未按预期方式运行,容器及其运行时将不会被使用,从而严重破坏库兼容性。这会导致 Wine 尝试搜索您系统上的库,而不是使用它构建时所用或预期用于 Proton 的库。如果库版本匹配足够多,它也许能工作,但由于不同 Linux 发行版间库的差异,这不属于预期环境,也不受支持。

如果您希望在 Steam 外部获得 Proton 功能,umu-launcher 是一个命令行工具,它能模拟 Steam,运行完整的容器化运行时环境,从而像 Steam 那样运行 Proton,而无需 Steam。其他任何方法均不受支持。

Heroic (https://heroicgameslauncher.com/) 也已默认在使用 GE-Proton 时启用 umu。

Lutris (https://lutris.net/) 已将 umu 集成作为默认后端,当全局或针对任何特定游戏选择 GE-Proton (Latest) 作为 Wine 运行器时使用。

(1) 请注意,这是 Proton 的自定义构建,与 Valve 的 Proton 无关。

(2) 也请注意,我不会为 GE-Proton 的非官方构建提供协助。我唯一提供并会协助构建的 GE-Proton 版本是本仓库中的版本,使用此处记录的构建系统。

(3) 我无法验证未使用此处包含的构建系统构建的其他构建版本的正确性或功能。

目录

概述

这是我基于最新前沿 Proton Experimental Wine 构建的 Proton 版本。它包含当前 Valve Proton 所没有的功能:

  • 额外的媒体基础补丁,改善视频播放支持
  • AMD FSR 补丁直接集成到全屏 hack 中,可通过 WINE_FULLSCREEN_FSR=1 切换
  • FSR 虚拟分辨率补丁详情见此处 (https://github.com/GloriousEggroll/proton-ge-custom/pull/52)
  • NVIDIA CUDA 支持 PhysX 和 NVAPI
  • 原始输入鼠标支持
  • ‘protonfixes’ 系统——这是一个自动系统,可为每个游戏应用修复(例如 winetricks 更改、环境变量、Easy Anti-Cheat 解决方法、覆写等)
  • 反向移植的各种上游 Wine 补丁
  • 根据需要应用的各种 wine-staging 补丁
  • 如果内核支持则启用 NTSync。

备注

  • Warframe 在垂直同步方面存在问题。请在游戏中关闭或开启,不要设置为 自动
  • Warframe 应在游戏中设置帧率限制。无限制的帧率可能导致性能下降。
  • Warframe 在 NVIDIA 上:您可能需要在游戏中禁用 GPU 粒子,否则游戏可能随机冻结。在 AMD 上它们应该正常工作。

完整补丁可在 protonprep-valve-staging.sh 中查看。

安装

您的系统必须安装了合适的 Vulkan 驱动和软件包。AMD 上的 VKD3D 需要 Mesa 22.0.0 或更高版本以支持 VK_KHR_dynamic_rendering 扩展。请参考此处 (https://github.com/lutris/docs/blob/master/InstallingDrivers.md) 了解通用驱动安装指南。

手动安装

通过 asdf 版本管理器 (https://asdf-vm.com/)

有一个非官方插件用于安装和管理 GE-Proton 版本 (https://github.com/augustobmoura/asdf-protonge),配合 asdf(通用版本管理器)(https://asdf-vm.com/) 使用,其过程与手动安装相同,但更加方便。管理版本(删除、更新到新版本)也变得更容易。

首先安装 asdf (https://asdf-vm.com/guide/getting-started.html),然后添加 ‘asdf-protonge’ 插件并安装您想要的版本。

asdf plugin add protonge
# 或者从标签安装版本
asdf install protonge latest

也可以在 Flatpak 安装中使用该 asdf 插件,通过自定义目标 compatibilitytools.d 路径。更多设置请查看插件的官方文档 (https://github.com/augustobmoura/asdf-protonge)。

通过 ProtonPlus,Proton 版本管理器 (https://protonplus.vysp3r.com/)

ProtonPlus 是一个用于管理 Proton 版本(包括 GE-Proton)的 GUI 前端。对于希望以更用户友好的方式管理 Proton 版本的用户来说,这是一个很好的工具。

要安装 Proton-GE,选择 Proton-GE 下拉菜单,然后选择要安装的版本,或选择 Proton-GE Latest 以安装最新版本并在新版本发布时自动更新。每次安装后都需要重启 Steam,然后 启用 proton-ge-custom

原生版本

本部分适用于使用原生版本 Steam 的用户。

  1. 从 Releases (https://github.com/GloriousEggroll/proton-ge-custom/releases) 页面下载一个发行版。
  2. 如果 ~/.steam/steam/compatibilitytools.d 目录不存在,则创建它。
  3. 将发行版的 tarball 解压到 ~/.steam/steam/compatibilitytools.d/
    • tar -xf GE-Proton*.tar.gz -C ~/.steam/steam/compatibilitytools.d/
  4. 重启 Steam。
  5. 在 Steam 中启用 proton-ge-custom

通过终端获取最新的 GE-Proton 发行版。假设您已安装 coreutils 和 curl:

# 创建临时工作目录
echo "确保临时目录存在..."
mkdir -p /tmp/proton-ge-custom
cd /tmp/proton-ge-custom

steam_dir=~/.steam/steam

# 验证 Steam 数据目录存在
if [[ ! -d "$steam_dir" ]]; then
    echo "错误:未找到 Steam(原生)数据目录。" >&2
    echo "请至少启动一次 Steam 以生成该目录。" >&2
    exit 1
fi

# 如果 Steam 兼容工具文件夹不存在则创建
mkdir -p "$steam_dir/compatibilitytools.d"

# 获取发行版信息
echo "正在获取发行版信息..."
release_json=$(curl -s --max-time 10 \
    https://api.github.com/repos/GloriousEggroll/proton-ge-custom/releases/latest)

if [[ -z "$release_json" || "$release_json" != *'"tag_name"'* ]]; then
    echo "错误:无法从 GitHub 获取发行版信息。" >&2
    exit 1
fi

# 为当前架构解析发行版 URL
echo "正在为您的架构获取发行版..."
case "$(uname -m)" in
    aarch64|arm64)
        tarball_pattern='\-aarch64\.tar\.gz$'
        ;;
    x86_64)
        tarball_pattern='GE-Proton[0-9]+-[0-9]+\.tar\.gz$'
        ;;
    *)

相似文章

将WINE移植到新爱好操作系统

Lobsters Hottest

详细记录了将Wine移植到Astral爱好操作系统的过程,通过WoW64实现了32位Windows应用的运行,并解决了OpenGL/EGL依赖问题,从而能够运行Cogmind等游戏。

Gemma 4 12B 是我的新主力

Reddit r/LocalLLaMA

作者分享了从 Qwen 3.6 切换到 Gemma 4 12B(Unsloth Q5_K_XL)进行本地编程的体验,称赞其即插即用的设置、更好的语法准确性以及可控的 VRAM 使用,尽管在速度上略有取舍。

Dolphin Emulator 进展发布 2606

Hacker News Top

Dolphin Emulator 版本 2606 添加了 Game Boy Player 模拟、Wii RetroAchievements 支持,修复了长期存在的高分辨率画面问题,并使《The Key of Avalon》的多人游戏可玩。

驯服 Steam arm64 客户端(在 pmOS 上)

Lobsters Hottest

一篇博客文章,详细介绍了在 postmarketOS 上运行非官方 Steam arm64 客户端的各种蹊跷与挑战,包括客户端未意识到自己是 arm64、缺少 Proton/运行时下载,以及提及 FEX 和图形提供商清单(与 Valve 即将推出的 Steam Frame 相关)。