
UMU-Startprogramm Es ist zu einem jener Tools geworden, die, ohne viel Aufsehen zu erregen, die Art und Weise verändern, wie Sie unter Linux spielen. Weit davon entfernt, ein typischer grafischer Launcher zu sein, ist seine Mission Vereinheitlichen Sie die Ausführung von Windows-Spielen mit Proton außerhalb von Steam, sodass jeder Client oder jedes Skript die gleiche Umgebung nutzen kann, die Valve verwendet, ohne von Steam selbst abhängig zu sein.
Um es schnell zu verstehen: UMU Kopieren Sie das Steam Runtime-Containermodell (dasselbe, das von Proton und Steam Linux Runtime verwendet wird) mit einigen Optimierungen, so dass Proton funktioniert identisch genau wie in Steam, aber von jedem kompatiblen Launcher wie Lutris, Heroisch oder Flaschen, und sogar von einem einfachen Terminal-Befehl. Und ja, Sie müssen Steam nicht installiert haben um es zu benutzen.
Was ist UMU Launcher und woher kommt sein Name?
UMU ist im Wesentlichen eine Adaption des Steam Linux Runtime „Sniper“ und der Steam Runtime Tools, mit eigenem Einstiegspunkt und Dienstprogrammen für Dritte zur Integration. Der Name „umu“ ist kein Zufall: Er bezieht sich auf eine Polynesischer Vulkansteinofen erhitzt, worauf alles, was Sie darauf legen, „gekocht“ wird. Die Metapher passt zu Valves Container-Tool namens „Druckbehälter“: UMU wäre der „Herd“, auf dem der Druckbehälter platziert wird, um die Umgebung vorzubereiten, in der Proton Ihre Spiele „kocht“.
Wenn Steam ein Spiel mit Proton startet, startet es eine Kette von Prozessen, wo es normalerweise erscheint Steam-Launch-Wrapper (nur Läufer die Umgebungsvariablen weiterleitet) und, entscheidend, die SteamLinuxRuntime_sniper mit _v2-entry-point der den Container zusammenbaut und Proton lädt. UMU repliziert diese Logik: das Skript _v2-entry-point es wird umbenannt in umu, Es fügt hinzu umu-run ersetzen steam-launch-wrapper und die notwendigen Details werden angepasst Verwenden Sie Proton außerhalb von Steam Aufrechterhaltung der Umgebungserwartungen, die Proton benötigt (einschließlich Umgebungsvariablen).
So funktioniert es: Umgebungsvariablen, Container und umu-run
Der Schlüssel ist in Starten Sie das Spiel im gleichen Containertyp, den Steam verwendet, mit den richtigen Variablen für Proton. UMU ermöglicht Ihnen den Aufruf umu-run Angabe der ausführbaren Datei des Spiels, der Argumente und optional das WINEPREFIX, die Proton-Version und der Store aus dem das Spiel stammt, um bestimmte Korrekturen anzuwenden.
Hauptparameter und Variablen von umu-run Was sollten Sie wissen:
- WEINPREFIX: WINE-Präfixpfad. Wenn Sie ihn nicht angeben, erstellt UMU ihn standardmäßig in
$HOME/Games/umu/GAMEID. Wenn Sie GAMEID nicht definieren, das Standardpräfix ist$HOME/Games/umu/umu-default. - SPIEL-ID: kann ein beliebiger Wert oder eine gültige ID im umu-Datenbank. Wenn Sie es nicht definieren, wird verwendet
umu-default(ohne automatische Korrekturen). - PROTONPATH: vollständiger Pfad zur Proton-Version, die Sie verwenden möchten. Unterstützt auch den Wert GE-Proton die automatisch den neuesten Build herunterladen von GE-Proton. Wenn Sie es nicht angeben, UMU-Proton (ein stabiler Build von Valve mit UMU-Unterstützung) ist die Standardoption.
- SHOP: der Store oder die "Storefront" des Spiels (zum Beispiel egs, Gog, usw.). UMU kombiniert STORE + GAMEID, um nach bestimmten Fixes zu suchen in Ihrer Datenbank.
- PROTON_VERB: Zu verwendendes Proton-Verb. Wenn Sie es nicht festlegen, Verwenden Sie „waitforexitandrun“..
- UMU_LOG: Aktiviert UMU-Debug-Protokolle. Nützlich für Probleme diagnostizieren.
- UMU_ZENITY: wenn aktiv, Pop-ups mit Zenity anzeigen beim Herunterladen großer Dateien.
- UMU_RUNTIME_UPDATE y UMU_NO_PROTON: zusätzliche Optionen für Laufzeitverwaltung oder Szenarien, in denen Sie nicht möchten, dass UMU Proton verwaltet.
Zusätzlich UMU lädt automatisch die erforderliche Steam Runtime herunter und verwendet sie für die gewählte Proton-Version und platzieren Sie die Dateien in $HOME/.local/share/umuDamit ist der Runtime-Container bereit und Das Spiel läuft, als wäre es Steam-nativ, direkt außerhalb von Steam.
Vorteile: Warum diese Vereinheitlichung wichtig ist
Der Ansatz der UMU erleichtert es alle Pitcher sprechen die gleiche „Sprache“ beim Ausführen von Spielen mit Proton. Dies bietet Benutzern und Entwicklern mehrere klare Vorteile:
- Keine Steam-Anforderungen: Sie benötigen den Steam-Client oder Binärdateien nicht mehr, um Proton zu verwenden.
- Einheitliche Fixes-Basis- Spielspezifische Fixes (Protonfixes) werden in der Community und über verschiedene Launcher hinweg geteilt.
- Parität mit Steam: Spiele beginnen mit Proton im gleichen Containertyp, den Steam verwendet. seine Umgebung nachbilden.
- Zentralisierte Wartung: Wenn sich etwas ändert, wird es in Proton GE und/oder Protonfixes oder in einem einheitlichen Proton-Build aktualisiert. positive Auswirkungen auf alle.
Heute verpackt Protonfixes einen lokalen Ordner von «Spielkorrekturen»aber das Projekt selbst legt nahe, dass könnte sich zum Online-Download entwickeln sodass jedes Werkzeug, das Sie verwenden umu-run Holen Sie sich die benötigten Fixes zentral.
ProtonFixes und die UMU-Datenbank: So werden Fixes angewendet
UMU schlägt einen einfachen Ablauf vor, sodass Ein Launcher identifiziert das Spiel, seinen Store und den Fix die entsprechende Datei und wendet sie automatisch an, bevor sie mit Proton ausgeführt wird. Der beschriebene Prozess besteht aus den folgenden Schritten:
- Erstellen Sie eine Datenbank mit Spieletiteln, ihren IDs in verschiedenen Geschäften und der umu-ID korreliert.
- Der Pitcher sucht auf der Base nach den Spieldaten und holt die umu-ID, was passiert
umu-runzusammen mit STORE, Proton, WINEPREFIX, ausführbare Datei und Argumente. - Beim Starten des Spiels mit
umu-run, Protonenfixe erkennt STORE + umu-ID, findet das passende Fix-Skript und wendet es an vor der Ausführung. - Protonfixes organisiert Skripte in Ordner pro GeschäftDasselbe Spiel behält die gleiche umu-ID in mehreren Stores; es kann speicherspezifische Skripte oder Link zu einem vorhandenen Fix wenn Sie Bedürfnisse teilen.
Ein Beispiel, das sie geben, ist Borderlands 3 im Epic Games Store (EGS). EGS verwendet «Codenamen» wie "Catnip". Der Launcher erkennt, dass der Store egs und der Codename ist Katzenminze, konsultiert die Datenbank, verknüpft sie mit "Borderlands 3" und dem umu-ID entsprechend (zum Beispiel umu-12345), und diese ID wird weitergegeben an umu-run. So sind die richtigen Fixes garantiert auch wenn der Laden den Markennamen des Spiels nicht verwendet.
Anwendungshinweise: Möglichkeiten und Beispiele
UMU enthält Standarddokumentation Man Seite die umu-run, mit Verwendungsformen wie umu-run , umu-run ] o umu-run winetricks , Plus --config <FILE> y --helpZu ihren Beispielen zählen sie Praktische Fälle als:
- Ein Spiel ausführen direkt.
- Führen Sie ein Spiel mit einem bestimmten Protonfix aus.
- Verwenden einer Konfigurationsdatei um die Ausführung zu parametrisieren.
- Erstellen Sie eine WINEPREFIX UMU und starten Sie es mit Proton.
- Proton automatisch auswählen (und ggf. das Präfix erstellen).
- Definieren Sie ein gültiges Proton-Verb ausdrücklich.
- Debug-Protokolle aktivieren zur Fehlerdiagnose.
- Erzwingen einer bestimmten Proton-Version anhand des Namens.
- Verwenden Sie die neueste Version von GE-Proton automatisch.
- Winetricks-Verben ausführen von
umu-run. - Deaktivieren Sie die Protonfixes-Anwendung wenn du es brauchst.
Als zugehörige Dienstprogramme, die Referenzdokumentation Weintrauben, ZenitätDie eigenen umu(5) und Dokumentation der Container-Laufzeit von Steam. Es verlinkt auch auf Repos von Proton, umu-protonfixes und umu-Datenbank, für alle, die tiefer einsteigen oder einen Beitrag leisten möchten.
Erstellen und Installieren: von make bis nixpkgs
Für diejenigen, die lieber kompilieren oder verpacken möchten, dokumentiert UMU, dass der Build bash, um, scdoc und Werkzeuge Python (Build, Hatchling, Installer, Pip). Darüber hinaus fragen sie nach Fracht mit einem minimalen MSRV von die neueste stabile Version seiner direkten Abhängigkeiten.
Der empfohlene Durchfluss ist: Code herunterladen, geben Sie das Verzeichnis ein, führen Sie aus configure.sh --prefix um das Installationspräfix festzulegen (zum Beispiel /usr/local o /app wenn Sie in Flatpak verpacken möchten), führen Sie make und wenn alles gut geht, haben Sie die Artefakte in ./builddir. Dann kannst du laufen make install installieren
Für die Benutzerinstallation UMU platziert die ausführbare Datei in $HOME/.local/bin. Stellen Sie sicher fügen Sie dieses Verzeichnis zu Ihrem PATH hinzu (zum Beispiel Exportieren in $HOME/.bash_profile), wenn Sie es ohne vollständigen Pfad aufrufen möchten.
Alternativ schlagen sie vor, uv eine virtuelle Umgebung zu schaffen und UMU schnell konfigurierenDer Leitfaden schlägt vor Generieren Sie ein Skript im Projektverzeichnis, erstellen Sie die virtuelle Umgebung mit uv, installieren Sie die Abhängigkeiten und führen Sie das Skript über uv.
En NixOS/nixpkgs, UMU ist verfügbar als pkgs.umu-launcher seit 25.05 (instabiler Zweig zum angegebenen Zeitpunkt). Sie beschreiben auch die Verwendung Flocken wenn Sie einen aktuelleren Schnappschuss als den des Kanals benötigen, und sie bieten sogar Beispiele für NixOS und Home-Manager. Wenn Sie mit älteren Kanälen arbeiten (wie z. B. nixos-24.11), schlagen Sie vor, mehrere Kanäle zu kombinieren oder zieh deine Flocke.
Verpackungsparameter, die Sie in Nixpkgs überschreiben können:
- zusätzliche Pakete: zusätzliche Pakete zur FHS-Umgebung hinzufügen (Standard)
pkgs: []). - zusätzliche Bibliotheken: Fügen Sie der FHS-Umgebung zusätzliche Bibliotheken hinzu (standardmäßig)
pkgs: []). - mit MultiArch: 32-Bit-Bibliotheken in die FHS-Umgebung einbinden (standardmäßig) was immer dies auch sein sollte.).
Wenn Sie Flake verwenden, können Sie optionale Abhängigkeiten konfigurieren, wie beispielsweise:
- mit Truststore: ermöglicht die Verwendung der Systemvertrauensspeicher (Standard was immer dies auch sein sollte.).
- mit DeltaUpdates: Abhängigkeiten aktivieren für Protons „Delta-Updates“ (Standard was immer dies auch sein sollte.).
Sie zeigen auch Anwendungsmöglichkeiten der Overlay über specialArgs oder direkt in flake.nix, plus ein Beispiel zum Überschreiben von Paketargumenten.
Steam-Laufzeit, Protokolle und Debugging
UMU setzt auf die Containerbasierte Steam-Laufzeit (dasselbe, das sie verwenden native Linux-Spiele y Proton 8.0+). Um Probleme in dieser Umgebung zu diagnostizieren, unterstützt die Laufzeit selbst beim Start mit dem Steam-Client nützliche Umgebungsvariablen, die auch als Referenz bei der Arbeit mit dem Container dienen:
- STEAM_LINUX_RUNTIME_LOG=1: aktiviert Protokolle, die in
SteamLinuxRuntime_sniper/var/slr-*.log(mit der AppID im Namen).slr-latest.logein Symlink bis zum letzten Generierten. - STEAM_LINUX_RUNTIME_VERBOSE=1: mehr Ausführlichkeit in der Ausgabe (in Dateien, wenn LOG=1 ist oder an die gleiche Stelle wie die Ausgabe von
steamAber). - PRESSURE_VESSEL_SHELL=stattdessen: anstatt das Spiel zu starten, öffnet eine interaktive Shell innerhalb des Containers für die Inspektion.
Valve dokumentiert Annahmen über unterstützte Distributionen, Debugging-Tipps und pflegt Versionshinweise und bekannte Laufzeitprobleme. Wenn Sie Spiele entwickeln und interessiert sind an Zielen Sie auf diese Umgebung, schauen Sie sich das SDK und die technischen Informationen für Entwickler an. Die gesamte Laufzeit integriert Software von Drittanbietern mit seinen offenen Lizenzen und der Quellcode ist in versionierten Verzeichnissen verfügbar (siehe VERSIONS.txt um die Entsprechungen zu sehen).
Aktuelle Updates und Hotfixes
In einer kürzlichen Änderung veröffentlichten die Betreuer eine HOTFIX, der Änderungen am Reaper rückgängig macht da Sie haben UMU innerhalb von GameScope-Sitzungen in Flatpak zerstörtDie Liste zeigt:
- Reversion von „umu_run: Schließe die Implementierung von Reaper in umu ab“.
- Reversion von „umu_run: Steammode-Workaround für den Hauptprozess ausführen“.
- Reversion von „umu_run: verwende vorerst fest codierte Anzeigewerte“.
- Aktualisierte Versionshinweise (Versionshinweise erweitern).
Dieser Hotfixtyp zeigt an, dass das Projekt reagiert schnell auf Regressionen in bestimmten Umgebungen wie Flatpak + Gamescope, etwas Schlüssel für Benutzer von Dampfdeck oder Desktops, die diesen Stapel verwenden.
Projektstatus: Erste offizielle Version und eigentliches Ziel
Die Version wurde hervorgehoben 1.1.1 als erste offizielle Veröffentlichung des Unified Linux Wine Game Launcher von Thomas "GloriousEggroll" Crider und der Open Wine Components Community. Sie betonen, dass Es ist kein grafischer Launcher wie Steam/Heroic/Lutris, aber ein gemeinsame Schicht dass diese Launcher verwendet werden können, um Proton-Spiele außerhalb von Steam mit dem auszuführen gleiche Treue das innerhalb von Steam.
Das weisen sie darauf hin sollte innerhalb von Flatpak und Snap funktionierenund bieten Verpackungsanweisungen für beide Formate in seinem Repository. Das Ziel ist, dass jede App kann Titel aus Stores wie Epic, GOG oder Amazon mit die gleiche Qualität das auf Steam, profitiert von Protonfixes und die einheitliche Datenbank für immer bessere Kompatibilität.
Links und empfohlene Dokumentation
Um tiefer zu gehen, enthält die Dokumentation Links zu Ressourcen wie Versionshinweise zu Steam Runtime Sniper, bekannte Probleme aus der Laufzeit und So melden Sie Fehler, zusätzlich zu dem Dokument über Container-Laufzeit. Es lohnt sich auch, Folgendes zu überprüfen:
- Weintrauben: https://github.com/Winetricks/winetricks
- Proton: https://github.com/ValveSoftware/Proton
- umu-protonfixes: https://github.com/Open-Wine-Components/umu-protonfixes
- umu-Datenbank: https://github.com/Open-Wine-Components/umu-database
- Containerlaufzeit: offizielle Dokumentation
Das Projekt ist gepflegt von Open Wine Components mit Hilfe von mehr Mitwirkenden. Wenn Sie zusammenarbeiten möchten, empfehlen sie die Installation Halskrause aus Ihrer Distribution und aktivieren Ruff-Server in Ihrem Editor, um einen konsistenten Stil in Ihrem Code beizubehalten.
UMU positioniert sich als technischer Klebstoff zwischen Proton und den Launchern, mit einer standardisierten Laufzeit und einer gemeinsamen Fixes-Basis; dies ermöglicht es der Community, schneller und reibungsloser voranzukommen, und die Benutzer gewinnen Stabilität und Einfachheit, indem sie ihre Spiele außerhalb von Steam mit der gleichen Qualität ausführen.