UMU: de ultieme tool om je games op Linux te verenigen

  • UMU repliceert de Steam-runtime om Proton buiten Steam te laten draaien met dezelfde garanties.
  • umu-run verenigt variabelen en oplossingen door protonfixes toe te passen volgens GAMEID en STORE uit een gemeenschappelijke database.
  • Flexibele installatie: klassieke build-, uv- en nixpkgs-pakketten met geavanceerde opties.

UMU-lanceerinrichting

UMU-lanceerinrichting Het is een van die tools geworden die, zonder veel lawaai te maken, de manier waarop je op Linux speelt, verandert. Verre van een typische grafische launcher te zijn, is zijn missie Uniforme manier waarop Windows-games worden uitgevoerd met Proton buiten Steam, zodat elke client of script gebruik kan maken van dezelfde omgeving die Valve gebruikt, zonder afhankelijk te zijn van Steam zelf.

Om het snel te begrijpen: UMU kopieer het Steam Runtime-containermodel (dezelfde die gebruikt wordt door Proton en Steam Linux Runtime) met een paar aanpassingen, zodat Proton werkt identiek net zoals je dat zou doen binnen Steam, maar dan vanuit elke compatibele launcher zoals Lutris, heldhaftig of Flessen, en zelfs via een eenvoudig terminalcommando. En ja, je hoeft Steam niet geïnstalleerd te hebben om het te gebruiken.

Wat is UMU Launcher en waar komt de naam vandaan?

UMU is in essentie: een aanpassing van de Steam Linux Runtime "sniper" en de Steam Runtime Tools, met een eigen toegangspunt en hulpprogramma's voor integratie door derden. De naam "umu" is niet toevallig: het verwijst naar een Polynesische vulkanische steenoven verhit, waarop alles wat je erop legt, wordt "gekookt". De metafoor past bij Valve's containertool genaamd "drukvat": UMU zou dat "fornuis" zijn waarop het drukvat wordt geplaatst om de omgeving voor te bereiden waarin Proton je games "kookt".

Wanneer Steam een ​​spel start met Proton, start het een keten van processen waar het normaal gesproken verschijnt stoom-lancering-wrapper (een simpele loper die omgevingsvariabelen doorstuurt) en, cruciaal, de SteamLinuxRuntime_sniper met _v2-entry-point die de container in elkaar zet en Proton laadt. UMU repliceert die logica: het script _v2-entry-point het wordt hernoemd naar umu, het voegt toe: umu-run vervangen steam-launch-wrapper en de nodige details worden aangepast aan Gebruik Proton buiten Steam het handhaven van de omgevingsverwachtingen die Proton nodig heeft (omgevingsvariabelen inbegrepen).

Hoe het werkt: omgevingsvariabelen, container en umu-run

De sleutel is binnen start het spel in hetzelfde type container dat Steam gebruikt, met de juiste variabelen voor Proton. Met UMU kunt u umu-run het speluitvoerbare bestand, de argumenten en optioneel, de WINEPREFIX, de Proton-versie en de winkel waarvan het spel specifieke oplossingen toepast.

Belangrijkste parameters en variabelen van umu-run dat het waard is om te weten:

  • WIJNPREFIX: WINE-prefixpad. Als u dit niet opgeeft, maakt UMU het standaard aan in $HOME/Games/umu/GAMEID. Als u GAMEID niet definieert, het standaardvoorvoegsel zal zijn $HOME/Games/umu/umu-default.
  • SPEL-ID: kan een willekeurige waarde of een geldige ID zijn in de umu-database. Als je het niet definieert, wordt gebruikt umu-default (zonder automatische oplossingen).
  • PROTONPATH: volledig pad naar de Proton-versie die u wilt gebruiken. Ondersteunt ook de waarde GE-Proton voor automatisch de nieuwste build downloaden van GE-Proton. Als u dit niet aangeeft, UMU-Proton (een stabiele build van Valve met UMU-ondersteuning) is de standaardoptie.
  • WINKEL: de winkel of "winkelpui" van het spel (bijvoorbeeld, EGS, gog, enz.). UMU combineert STORE + GAMEID om te zoeken naar specifieke oplossingen in uw databank.
  • PROTON_WERKWOORD: Protonwerkwoord om te gebruiken. Als je het niet instelt, gebruik "wachtenvooruitgangenlopen".
  • UMU_LOG: Schakelt UMU-foutopsporingslogboeken in. Handig voor Problemen diagnosticeren.
  • UMU_ZENITY: indien actief, pop-ups weergeven met Zenity bij het downloaden van grote bestanden.
  • UMU_RUNTIME_UPDATE y UMU_GEEN_PROTON: extra opties voor runtime-beheer of scenario's waarbij u niet wilt dat UMU Proton beheert.

Bovendien heeft UMU downloadt en gebruikt automatisch de benodigde Steam Runtime voor de gekozen Proton-versie en plaats de bestanden ervan in $HOME/.local/share/umuDaarmee is de runtime-container klaar en Het spel draait alsof het oorspronkelijk op Steam staat, net buiten Steam.

Voordelen: waarom deze eenwording belangrijk is

De aanpak van UMU maakt het makkelijker voor alle pitchers spreken dezelfde "taal" bij het spelen van games met Proton. Dit biedt verschillende duidelijke voordelen voor gebruikers en ontwikkelaars:

  • Geen Steam-vereisten: Je hebt de Steam-client of binaire bestanden niet meer nodig om Proton te gebruiken.
  • Geünificeerde fixes basis- Game-specifieke oplossingen (protonfixes) worden gedeeld binnen de community en tussen verschillende launchers.
  • Pariteit met Steam: Games beginnen met Proton in hetzelfde type container dat Steam gebruikt, het repliceren van zijn omgeving.
  • Gecentraliseerd onderhoud: als er iets verandert, wordt het bijgewerkt in Proton GE en/of protonfixes of in een uniforme Proton-build, positief beïnvloedend voor iedereen.

Vandaag verpakt protonfixes een lokale map met «gamefixes», maar het project zelf suggereert dat zou kunnen evolueren naar online downloaden zodat elk gereedschap dat u gebruikt umu-run Haal de oplossingen die u nodig hebt centraal op.

ProtonFixes en de UMU-database: hoe oplossingen worden toegepast

UMU stelt een eenvoudige stroom voor, zodat een launcher identificeert het spel, de winkel en de oplossing die overeenkomt, en past deze automatisch toe voordat deze met Proton wordt uitgevoerd. Het proces, zoals beschreven, bestaat uit de volgende stappen:

  1. Maak een database met speltitels, hun ID's in verschillende winkels en de umu-ID gecorreleerd.
  2. De pitcher zoekt op de basis naar de wedstrijdgegevens en haalt de umu-ID, wat gebeurt met umu-run samen met STORE, Proton, WINEPREFIX, uitvoerbaar bestand en argumenten.
  3. Bij het starten van het spel met umu-run, protonfixes detecteert STORE + umu-ID, vindt het juiste fix-script en past het toe vóór de executie.
  4. protonfixes organiseert scripts in mappen per winkelHetzelfde spel behoudt dezelfde umu-ID in meerdere winkels; het kan winkelspecifieke scripts hebben of link naar een bestaande oplossing als je gedeelde behoeften hebt.

Een voorbeeld dat ze geven is Borderlands 3 in de Epic Games Store (EGS). EGS gebruikt "codenamen" zoals "Catnip". De launcher detecteert dat de winkel is EGS en de codenaam is Catnip, raadpleegt de database, associeert deze met "Borderlands 3" en de umu-ID overeenkomstig (bijvoorbeeld umu-12345), en die ID wordt doorgegeven aan umu-run. Zo wordt gegarandeerd dat de juiste reparaties worden uitgevoerd zelfs als de winkel niet de merknaam van het spel gebruikt.

Referenties voor gebruik: opties en voorbeelden

UMU bevat standaarddocumentatie man pagina voor umu-run, met gebruiksvormen zoals umu-run , umu-run ] o umu-run winetricks , Plus --config <FILE> y --helpOnder hun voorbeelden stellen zij voor praktische gevallen als:

  • Speel een spel direct.
  • Een spel uitvoeren met een specifieke protonfix.
  • Een configuratiebestand gebruiken om de uitvoering te parametriseren.
  • Maak een WINEPREFIX UMU en lanceer het met Proton.
  • Selecteer Proton automatisch (en maak indien nodig het voorvoegsel aan).
  • Definieer een geldig Proton-werkwoord uitdrukkelijk.
  • Debug-logs inschakelen om fouten te diagnosticeren.
  • Een specifieke Proton-versie op naam afdwingen.
  • Gebruik de nieuwste versie van GE-Proton automatisch.
  • Voer wijntrucs-werkwoorden uit van umu-run.
  • Schakel de protonfixes-applicatie uit als je het nodig hebt.

Als gerelateerde hulpprogramma's, de referentiedocumentatie winetricks, zeniteit, Eigen umu(5) en documentatie van de container looptijd van Steam. Het linkt ook naar repositories van Proton, umu-protonfixes en umu-database, voor iedereen die dieper wil gaan of wil bijdragen.

Bouwen en installeren: van make tot nixpkgs

Voor degenen die liever compileren of verpakken, documenteert UMU welke build vereist is slaan, maken, scdoc en gereedschap Python (build, hatchling, installer, pip). Daarnaast vragen ze om lading met een minimale MSRV gelijk aan de nieuwste stabiele versie van zijn directe afhankelijkheden.

De aanbevolen stroom is: download de code, de directory invoeren, uitvoeren configure.sh --prefix om het installatieprefix in te stellen (bijvoorbeeld /usr/local o /app als je in Flatpak gaat verpakken), voer dan uit make en als alles goed gaat, heb je de artefacten in ./builddir. Dan kun je rennen make install installeren.

Voor gebruikersinstallatie, UMU plaatst het uitvoerbare bestand in $HOME/.local/bin​ Zorg dat je voeg die map toe aan je PATH (bijvoorbeeld door het te exporteren in $HOME/.bash_profile) als u het wilt aanroepen zonder een volledig pad.

Als alternatief stellen ze voor om uv om een ​​virtuele omgeving te creëren en snel UMU configurerenDe gids suggereert genereer een script in de projectmap, maak de virtualenv met uv, installeer de afhankelijkheden en voer het script uit via uv.

En NixOS/nixpkgs, UMU is beschikbaar als pkgs.umu-launcher sinds 25.05 (onstabiele tak op het aangegeven tijdstip). Ze beschrijven ook hoe je vlokken als je een recentere momentopname nodig hebt dan die van het kanaal, en ze bieden zelfs Voorbeelden voor NixOS en Home-Manager. Als u met oudere kanalen werkt (zoals nixos-24.11), stel voor om meerdere kanalen te combineren of trek je vlok.

Verpakkingsparameters die u in nixpkgs kunt overschrijven:

  • extraPkgs: voeg extra pakketten toe aan de FHS-omgeving (standaard) pkgs: []).
  • extrabibliotheken: voeg extra bibliotheken toe aan de FHS-omgeving (standaard) pkgs: []).
  • metMultiArch: 32-bits bibliotheken opnemen in de FHS-omgeving (standaard) waar).

Als u flake gebruikt, kunt u optionele afhankelijkheden configureren, zoals:

  • metTruststore: maakt het gebruik van de systeem vertrouwensopslag (standaard waar).
  • metDeltaUpdates: activeer afhankelijkheden voor De "delta-updates" van Proton (standaard waar).

Ze laten ook zien hoe je de overlay via specialeArgs of direct in flake.nix, plus een voorbeeld van het overschrijven van pakketargumenten.

Steam Runtime, Logs en Debuggen

UMU vertrouwt op de Containergebaseerde Steam Runtime (dezelfde die ze gebruiken native Linux-spellen y Proton 8.0+). Om problemen in die omgeving te diagnosticeren, ondersteunt de runtime zelf nuttige omgevingsvariabelen wanneer deze wordt gestart met de Steam-client. Deze variabelen dienen ook als referentie bij het werken met de container:

  • STEAM_LINUX_RUNTIME_LOG=1: schakelt logboeken in die verschijnen in SteamLinuxRuntime_sniper/var/slr-*.log (met de AppID in de naam). slr-latest.log is een symbolische link tot de laatst gegenereerde.
  • STEAM_LINUX_RUNTIME_VERBOSE=1: meer uitgebreidheid in de uitvoer (naar bestanden als er LOG=1 is of naar dezelfde plaats als de uitvoer van steam Maar).
  • PRESSURE_VESSEL_SHELL=in plaats daarvan: in plaats van het spel te starten, opent een interactieve shell in de container voor inspectie.

Valve documenteert veronderstellingen over ondersteunde distributies, debugtips en onderhoudt release-opmerkingen en bekende runtime-problemen. Als je games ontwikkelt en geïnteresseerd bent in richt je op die omgeving, bekijk de SDK en technische informatie voor ontwikkelaars. De volledige runtime integreert software van derden met zijn open licenties en de broncode is beschikbaar in versiebeheerde mappen (zie VERSIONS.txt (om de overeenkomsten te zien).

Recente updates en hotfixes

In een recente verandering hebben de beheerders een HOTFIX die wijzigingen aan de reaper ongedaan maakt omdat Ze hebben UMU kapotgemaakt tijdens GameScope-sessies in FlatpakDe lijst geeft aan:

  • Omkering van "umu_run: voltooi de implementatie van reaper in umu".
  • Omkering van "umu_run: voer steammode-oplossing uit op het hoofdproces".
  • Omkering van "umu_run: gebruik voorlopig hardgecodeerde weergavewaarden".
  • Bijgewerkte release-opmerkingen (bump release-opmerkingen).

Dit type hotfix laat zien dat het project reageert snel op regressies in specifieke omgevingen zoals Flatpak + gamescope, iets belangrijks voor gebruikers van Stoomdeck of desktops die die stack gebruiken.

Projectstatus: eerste officiële versie en echte doelstelling

De versie is gemarkeerd 1.1.1 als eerste officiële release van de Unified Linux Wine Game Launcher van Thomas "GloriousEggroll" Crider en de Open Wine Components-community. Ze benadrukken dat Het is geen grafische launcher zoals Steam/Heroic/Lutris, maar één gemeenschappelijke laag die deze launchers kunnen gebruiken om Proton-games buiten Steam te draaien met de dezelfde trouw dat binnen Steam.

Zij geven aan dat zou moeten werken binnen Flatpak en Snapen bieden verpakkingsinstructies voor beide formaten in de repository. Het doel is dat elke app kan titels lanceren vanuit winkels zoals Epic, GOG of Amazon met dezelfde kwaliteit dat op Steam, profiterend van protonfixes en de uniforme database voor steeds betere compatibiliteit.

Links en aanbevolen documentatie

Om dieper in te gaan, linkt de documentatie naar bronnen zoals Release-opmerkingen voor Steam Runtime Sniper, bekende problemen van de runtime en hoe bugs te melden, naast het document over container-runtimeHet is ook de moeite waard om te controleren:

Het project is onderhouden door Open Wine Components met de hulp van meer bijdragers. Als je wilt samenwerken, raden ze aan om kemphaan van uw distributie en schakel in ruige server in uw editor om een ​​consistente stijl in uw code te behouden.

UMU positioneert zich als technische lijm tussen Proton en de launchers, met een gestandaardiseerde runtime en gedeelde fixes-basis; dit zorgt ervoor dat de community sneller en met minder wrijving vooruit kan, en gebruikers krijgen stabiliteit en eenvoud door hun games buiten Steam te spelen met dezelfde kwaliteit.