
UMU Launcher стал одним из тех инструментов, которые, не привлекая к себе особого внимания, меняют способ игры в Linux. Далеко не типичный графический лаунчер, его миссия — унифицировать работу игр для Windows с Proton вне Steam , чтобы любой клиент или скрипт мог использовать ту же среду, что и Valve, не завися от самого Steam.
Проще говоря: UMU копирует контейнерную модель Steam Runtime (ту же самую, что используется в Proton и Steam Linux Runtime) с некоторыми изменениями, поэтому Proton работает идентично Steam, но из любого совместимого лаунчера, такого как Lutris, Heroic или Bottles, и даже из простой команды в терминале. И да, для его использования не обязательно устанавливать Steam .
Что такое UMU Launcher и откуда взялось его название?
UMU — это, по сути, адаптация Steam Linux Runtime "sniper" и Steam Runtime Tools , со своей собственной точкой входа и утилитами для интеграции со сторонними сервисами. Название "umu" выбрано не случайно: оно отсылает к полинезийской печи, сделанной из нагретых вулканических камней , на которой "готовится" всё, что вы на неё положите. Эта метафора подходит и к контейнерному инструменту Valve под названием "pressure-vessel": UMU — это та самая "печь", на которой размещается сосуд высокого давления, чтобы подготовить среду, в которой Proton "готовит" ваши игры.
Когда Steam запускает игру с Proton, он запускает цепочку процессов, в которых он обычно появляется Steam-launch-wrapper (просто бегун который пересылает переменные среды) и, что особенно важно, SteamLinuxRuntime_sniper с _v2-entry-point который собирает контейнер и загружает Протон. UMU воспроизводит эту логику: сценарий _v2-entry-point он переименован в umu, он добавляет umu-run заменить steam-launch-wrapper и необходимые детали корректируются Используйте Proton вне Steam поддержание ожиданий в отношении окружающей среды, необходимых Proton (включая переменные окружающей среды).
Как это работает: переменные среды, контейнер и umu-run
Ключ в запустить игру в том же типе контейнера, который использует Steamс правильными переменными для Proton. UMU позволяет вам вызывать umu-run указание исполняемого файла игры, аргументов и, необязательно, WINEPREFIX, версия Proton и магазин из которого игра исходит для применения определенных исправлений.
Основные параметры и переменные umu-run , которые вам следует знать:
- ВИНОПРЕФИКС: Путь к префиксу WINE. Если вы его не укажете, UMU создаст его по умолчанию в
$HOME/Games/umu/GAMEID. Если вы не определите GAMEID, префикс по умолчанию будет$HOME/Games/umu/umu-default. - ИГРОВОЙ ИД: может быть произвольным значением или допустимым идентификатором в umu-база данных. Если вы не определите это, используется
umu-default(без автоматических исправлений). - ПРОТОННЫЙ ПУТЬ: полный путь к нужной версии Proton. Также поддерживает значение ГЭ-Протон для автоматически загрузить последнюю сборку от GE-Proton. Если вы не укажете это, УМУ-Протон (стабильная сборка от Valve с поддержкой UMU) — опция по умолчанию.
- STORE: магазин или «витрина» игры (например, EGS, Гогии т.д.). UMU объединяет STORE + GAMEID для поиска конкретных исправлений в вашей базе данных.
- PROTON_VERB: Протонный глагол для использования. Если вы его не установите, используйте "waitforexitandrun".
- UMU_LOG: Включает журналы отладки UMU. Полезно для диагностировать проблемы.
- UMU_ZENITY: если активен, отображение всплывающих окон с помощью Zenity при загрузке больших файлов.
- UMU_RUNTIME_UPDATE y UMU_NO_PROTON: дополнительные опции для управление временем выполнения или сценарии, когда вы не хотите, чтобы UMU управлял Proton.
Кроме того, UMU автоматически загружает и использует необходимую среду выполнения Steam. для выбранной версии Proton и поместите ее файлы в $HOME/.local/share/umu. Теперь контейнер времени выполнения готов и Игра работает так, как будто она родная для Steam., недалеко от Steam.
Преимущества: почему это объединение важно
Подход UMU упрощает использование единого «языка» для всех лаунчеров при запуске игр с помощью Proton. Это дает ряд очевидных преимуществ как для пользователей, так и для разработчиков:
- Нет требований Steam: Для использования Proton вам больше не нужен клиент Steam или исполняемые файлы.
- Единая база исправлений- Исправления для конкретных игр (protonfixes) распространяются среди сообщества и между различными лаунчерами.
- Паритет со Steam: Игры начинаются с Proton внутри того же типа контейнера, который использует Steam, копирование своей среды.
- Централизованное обслуживание: если что-то меняется, это обновляется в Proton GE и/или protonfixes или в унифицированной сборке Proton, положительно влияет на всех.
Сегодня protonfixes упаковывает локальную папку «игровые исправления», но сам проект предполагает, что может развиться в онлайн-загрузку так что любой инструмент, который вы используете, umu-run централизованно получать необходимые исправления.
ProtonFixes и база данных UMU: как применяются исправления
UMU предлагает простой алгоритм работы лаунчера для идентификации игры, её магазина и соответствующего исправления, а также автоматического его применения перед запуском с помощью Proton. Описанный процесс состоит из следующих шагов:
- Создать базу данных с названиями игр, их идентификаторами в разных магазинах и umu-ID коррелируют.
- Пичер ищет на базе данные об игре и извлекает их. umu-ID, что происходит с
umu-runвместе с STORE, Proton, WINEPREFIX, исполняемый файл и аргументы. - При запуске игры с
umu-run, протонфиксы обнаруживает STORE + umu-ID, находит соответствующий скрипт исправления и применяет это перед казнью. - protonfixes организует скрипты в папок на хранилище. Одна и та же игра поддерживает один и тот же UMU-ID в нескольких магазинах; у неё могут быть специфичные для магазина скрипты или ссылка на существующее исправление если у вас есть общие потребности.
Вот пример, который они приводят: Borderlands 3 в Epic Games Store (EGS). EGS использует «кодовые имена» Как и «Кошачья мята». Лаунчер обнаруживает, что магазин EGS и кодовое имя - Кошачья мята, обращается к базе данных, связывает ее с «Borderlands 3» и umu-ID соответствующий (например, umu-12345), и этот идентификатор передается umu-run. Вот как гарантируется правильность исправлений. даже если магазин не использует название бренда игры.
Рекомендации по использованию: варианты и примеры
UMU включает стандартную документацию справочная страница для umu-run, с такими формами использования, как umu-run , umu-run ] o umu-run winetricks , Plus --config <FILE> y --helpСреди примеров они предлагают практические случаи как:
- Запустить игру непосредственно.
- Запустить игру с определенным протонфиксом.
- Использование файла конфигурации для параметризации выполнения.
- Создайте WINEPREFIX UMU и запустить его с помощью Протона.
- Выбрать Протон автоматически (и создайте префикс, если необходимо).
- Определите допустимый глагол Proton явно.
- Включить журналы отладки для диагностики неисправностей.
- Принудительно указать конкретную версию Proton по имени.
- Используйте последнюю версию GE-Proton автоматически.
- Выполнить глаголы winetricks от
umu-run. - Отключить приложение protonfixes если вам это нужно.
В числе связанных утилит — ссылки на winetricks , zenity , сам umu(5) и документацию по среде выполнения контейнеров Steam . Также есть ссылки на репозитории Proton , umu-protonfixes и базу данных umu для тех, кто хочет изучить их подробнее или внести свой вклад.
Сборка и установка: от make до nixpkgs
Для тех, кто предпочитает компилировать или упаковывать, в документации UMU указано, что для сборки требуются bash , make , scdoc и инструменты Python (build, hatchling, installer, pip). Кроме того, требуется минимальный MSRV, равный последней стабильной версии прямых зависимостей.
Рекомендуемый поток: загрузить код, войти в каталог, выполнить configure.sh --prefix чтобы задать префикс установки (например /usr/local o /app если вы собираетесь упаковать в Flatpak), запустите make и если все пойдет хорошо, у вас будут артефакты ./builddir. Тогда вы можете бежать. make install для установки.
Для установки пользователем, UMU помещает исполняемый файл в $HOME/.local/bin, Убедитесь, что добавьте этот каталог в ваш PATH (например, экспортируя его в $HOME/.bash_profile), если вы хотите вызвать его без полного пути.
В качестве альтернативы они предлагают использовать `uv` для создания виртуальной среды и быстрой настройки UMU . В руководстве предлагается сгенерировать скрипт в каталоге проекта , создать виртуальную среду с помощью `uv` , установить зависимости и запустить скрипт через ` uv`.
En NixOS/nixpkgs, UMU доступен как pkgs.umu-launcher с 25.05 (нестабильная ветка на указанное время). Там также подробно описано, как использовать хлопья если вам нужен более свежий снимок, чем у канала, и они даже предоставляют Примеры для NixOS и Home-Manager. Если вы работаете со старыми каналами (такими как nixos-24.11), предлагают объединить несколько каналов или потяните свою чешуйку.
Параметры упаковки, которые можно переопределить в nixpkgs:
- extraPkgs: добавить дополнительные пакеты в среду FHS (по умолчанию)
pkgs: []). - extraLibraries: добавить дополнительные библиотеки в среду FHS (по умолчанию)
pkgs: []). - сMultiArch: Включить 32-битные библиотеки в среду FHS (по умолчанию) правда).
Если вы используете flake, вы можете настроить дополнительные зависимости, такие как:
- с Truststore: позволяет использовать системное хранилище доверия (по умолчанию правда).
- сDeltaUpdates: активировать зависимости для «Дельта-обновления» Proton (по умолчанию правда).
Они также показывают способы применения наложение через specialArgs или прямо в flake.nix, а также пример переопределения аргументов пакета.
Среда выполнения Steam, логи и отладка
UMU использует среду выполнения Steam на основе контейнеров (ту же самую, что используется в нативных играх для Linux и Proton 8.0+ ). Для диагностики проблем в этой среде сама среда выполнения поддерживает полезные переменные окружения при запуске вместе с клиентом Steam, которые также служат ориентиром при работе с контейнером:
- STEAM_LINUX_RUNTIME_LOG=1: включает журналы, которые появляются в
SteamLinuxRuntime_sniper/var/slr-*.log(с AppID в названии).slr-latest.logявляется символическая к последнему сгенерированному. - STEAM_LINUX_RUNTIME_VERBOSE=1: более подробный вывод (в файлы, если есть LOG=1 или в то же место, что и вывод
steamно). - ОБОЛОЧКА_СОСУДА_ДАВЛЕНИЯ=вместо: вместо того, чтобы начать игру, открывает интерактивную оболочку внутри контейнера для проверки.
Valve документирует предположения о поддерживаемые дистрибутивы, советы по отладке и заметки о выпуске и известные проблемы во время выполнения. Если вы разрабатываете игры и интересуетесь нацельтесь на эту среду, ознакомьтесь с его SDK и технической информацией для разработчиков. Вся среда выполнения интегрирована стороннее программное обеспечение с открытыми лицензиями и исходным кодом, доступным в версионных каталогах (см. VERSIONS.txt (чтобы увидеть соответствия).
Последние обновления и исправления
В недавнем обновлении разработчики выпустили исправление, отменяющее изменения в «жнеце», поскольку они нарушали работу UMU в сессиях GameScope на Flatpak . В списке указано:
- реверсия «umu_run: завершить реализацию reaper в umu».
- реверсия «umu_run: запустить обходной путь steammode в главном процессе».
- реверсия «umu_run: пока использовать жестко заданные отображаемые значения».
- Обновленные заметки о выпуске (примечания к выпуску Bump).
Подобные экстренные исправления показывают, что проект быстро реагирует на регрессии в конкретных средах, таких как Flatpak + GameScope, что имеет ключевое значение для пользователей Steam Deck или настольных компьютеров, использующих этот стек.
Статус проекта: первая официальная версия и реальная цель
Версия 1.1.1 была названа первым официальным релизом Unified Linux Wine Game Launcher Томасом "GloriousEggroll" Крайдером и сообществом Open Wine Components. Они подчеркивают, что это не графический лаунчер, как Steam/Heroic/Lutris , а скорее общий слой , который эти лаунчеры могут использовать для запуска игр на основе Proton вне Steam с тем же качеством , что и внутри Steam.
Они указывают, что это должно работать в Flatpak и Snap , и предоставляют инструкции по упаковке для обоих форматов в своем репозитории. Цель состоит в том, чтобы любое приложение могло запускать игры из таких магазинов, как Epic, GOG или Amazon, с тем же качеством, что и в Steam, используя преимущества protonfixes и единой базы данных для постоянно улучшающейся совместимости.
Ссылки и рекомендуемая документация
Для получения дополнительной информации в документации приведены ссылки на такие ресурсы, как примечания к выпуску Steam Runtime Sniper , известные проблемы во время выполнения и порядок сообщения об ошибках , а также документ по среде выполнения контейнеров . Также стоит ознакомиться со следующими документами:
- Винетрикс: https://github.com/Winetricks/winetricks
- Proton: https://github.com/ValveSoftware/Proton
- уму-протонфиксы: https://github.com/Open-Wine-Components/umu-protonfixes
- umu-база данных: https://github.com/Open-Wine-Components/umu-database
- Среда выполнения контейнера: официальная документация
Проект поддерживается Open Wine Components при участии других разработчиков. Если вы хотите внести свой вклад, они рекомендуют установить Ruff из вашего дистрибутива и включить сервер Ruff в вашем редакторе для поддержания единообразного стиля кода.
UMU выступает в качестве технического связующего звена между Proton и лаунчерами, обеспечивая стандартизированную среду выполнения и общую базу исправлений; это позволяет сообществу быстрее и без лишних сложностей развиваться, а пользователям — получать стабильность и простоту при запуске игр вне Steam с тем же качеством.