Rust‑реализация скрипта jcnils/protonhax, помогающая запускать любые программы в контексте запущенной игры под Steam Proton.
— Сохраняем окружение текущей игры и повторно используем его для ваших команд. ✨
init %command%— перехват запуска игры от Steam и сохранение контекста (авто).ls— список текущих игр (appid), для которых сохранён контекст.- добавьте
-lдля подробностей (название, путь установки, время старта).
- добавьте
ls --json— тот же список в JSON для скриптов и интеграций.run <target> <cmd>— запустить Windows‑программу через Proton в контексте игры.cmd <target>— запуститьcmd.exeв том же префиксе Proton.exec <target> <cmd>— запустить нативную Linux‑команду с окружением игры.targetможет быть:appid,latest, или часть имени игры.
doctor— проверка окружения и сохранённых runtime‑контекстов на ошибки/битые пути.completions <shell>— генерация автодополнений (bash/zsh/fish/powershell).
Вариант 1 (сборка из исходников):
git clone https://github.com/hexquant/protonhax.git
cd protonhax
cargo build --release
install -Dm755 target/release/protonhax ~/.local/bin/protonhaxВариант 2 (локальная установка):
cargo install --path . --lockedУбедитесь, что ~/.local/bin в PATH.
Требования: Linux + Steam с Proton; установленный Rust toolchain.
В свойствах игры → Launch Options пропишите полный путь к бинарнику:
/home/<user>/.local/bin/protonhax init %command%
# или, если у вас так работает:
/home/<user>/.local/bin/protonhax init %COMMAND%Список активных игр:
protonhax ls
# или подробный вывод: appid, название и путь установки
protonhax ls -l
# JSON для скриптов
protonhax ls --json
# пример: 1217060 Gunfire Reborn ~/.local/share/Steam/steamapps/common/Gunfire Reborn started 12m agoЗапустить Windows‑программу (например, трейнер) в контексте игры c appid 1217060:
protonhax run 1217060 \
"/home/<user>/Downloads/Gunfire_Reborn_v1.0-v20251025_Plus_8_Trainer.exe"
# Быстрый запуск в контексте последней активной игры
protonhax run latest "/home/<user>/Downloads/trainer.exe"
# Поиск по части имени игры
protonhax run "gunfire" "/home/<user>/Downloads/trainer.exe"Открыть cmd.exe в том же префиксе Proton:
protonhax cmd latestЗапустить нативную команду Linux с тем же окружением:
protonhax exec "gunfire" env | sortПроверить окружение и сохранённые контексты:
protonhax doctorПолная справка:
protonhax --help
protonhax run --helpСгенерировать автодополнения:
# Bash
protonhax completions bash > ~/.local/share/bash-completion/completions/protonhax
# Zsh
protonhax completions zsh > ~/.zfunc/_protonhax
print -P '%F{yellow}Добавьте в ~/.zshrc: fpath+=(~/.zfunc) && autoload -Uz compinit && compinit%f'
# Fish
protonhax completions fish > ~/.config/fish/completions/protonhax.fish- Включить подробные логи самого protonhax:
PROTONHAX_DEBUG=1 protonhax ls- Перенаправить вывод в файл (удобно для Steam):
/home/<user>/.local/bin/protonhax init %command% &> ~/protonhax.log- Сообщения вида
ERROR: ld.so: object '.../ubuntu12_32/gameoverlayrenderer.so' ... ELFCLASS32— безвредны и исходят от Steam Overlay (32‑битная библиотека подмешивается в 64‑битный процесс). - Если игра не стартует — временно включите
PROTONHAX_DEBUG=1и проверьте лог. - Для Steam Flatpak запускайте Steam из терминала:
flatpak run com.valvesoftware.Steam— так легче увидеть вывод.