
UMU Launcher s'ha convertit en una d'aquelles eines que, sense fer gaire soroll, canvien la manera de jugar a Linux. Lluny de ser un «launcher» gràfic a l'ús, la seva missió és unificar com s'executen jocs de Windows amb Proton fora de Steam , perquè qualsevol client o script pugui aprofitar el mateix entorn que fa servir Valve sense dependre del propi Steam.
Per entendre-ho ràpid: UMU copia el model de contenidors de Steam Runtime (el mateix que usen Proton i Steam Linux Runtime) amb alguns retocs, de manera que Proton funcioni de forma idèntica a com ho faria dins de Steam, però des de qualsevol llançador compatible com Lutris, Heroic o Bottles, i fins i tot des d'un simple ordre en terminal. I sí, no necessites tenir Steam instal·lat per fer-lo servir.
Què és UMU Launcher i d'on ve el nom
UMU és, en essència, una adaptació de l'Steam Linux Runtime sniper i les Steam Runtime Tools , amb el seu propi punt d'entrada i utilitats perquè tercers l'integrin. El nom «umu» no és casual: fa referència a un forn polinesi de pedres volcàniques escalfades, sobre el qual es «cuina» allò que hi posis a sobre. La metàfora encaixa amb l'eina de contenidors de Valve anomenada pressure-vessel: UMU seria aquest fogó sobre el qual es col·loca el recipient a pressió per preparar l'entorn on Proton cuina els teus jocs.
Quan Steam arrenca un joc amb Proton, llança una cadena de processos on normalment apareix steam-launch-wrapper (un simple corredor que reenvia variables d'entorn) i, allò crucial, el SteamLinuxRuntime_sniper amb el seu _v2-entry-point que munta el contenidor i carrega Proton. UMU replica aquesta lògica: l'script _v2-entry-point es renombra a umu, s'hi afegeix umu-run per substituir steam-launch-wrapper i s'ajusten els detalls necessaris per utilitzar Proton fora de Steam mantenint les expectatives dentorn que Proton necessita (variables dentorn incloses).
Com funciona: variables d'entorn, contenidor i umu-run
La clau està en arrencar el joc dins del mateix tipus de contenidor que utilitza Steam, amb les variables correctes per a Proton. UMU permet invocar umu-run indicant l'executable del joc, els arguments i, opcionalment, el WINEPREFIX, la versió de Proton i la botiga de la que prové el joc per aplicar arranjaments específics.
Paràmetres i variables principals d' umu-run que convé conèixer:
- WINEPREFIX: ruta del prefix WINE. Si no ho indiques, UMU ho crea per defecte a
$HOME/Games/umu/GAMEID. Si no defineixes GAMEID, el prefix per defecte serà$HOME/Games/umu/umu-default. - GAMEID: pot ser un valor arbitrari o un ID vàlid a la umu-database. Si no ho defineixes, s'utilitza
umu-default(sense fixes automàtics). - PROTONPATH: ruta completa a la versió de Proton que vols utilitzar. També admet el valor «GE-Proton» per descarregar automàticament la darrera build de GE-Proton. Si no ho indiques, UMU-Proton (una build estable de Valve amb compatibilitat UMU) és lopció per defecte.
- BOTIGA: botiga o storefront del joc (per exemple, ex, GOG, etc.). UMU combina STORE + GAMEID per cercar fixes específics a la base de dades.
- PROTON_VERB: verb de Proton a utilitzar. Si no ho estableixes, utilitza «waitforexitandrun».
- UMU_LOG: activa registres de depuració d'UMU. Útil per diagnosticar problemes.
- UMU_ZENITY: si està actiu, mostra finestres emergents amb zenity en descarregar fitxers grans.
- UMU_RUNTIME_UPDATE y UMU_NO_PROTON: opcions addicionals per gestió de runtime o escenaris on no vols que UMU gestioni Proton.
A més, UMU descarrega i utilitza automàticament el Steam Runtime necessari per a la versió de Proton triada, i col·loca els seus arxius a $HOME/.local/share/umu. Amb això, el contenidor del runtime queda llest i el joc s'executa com si fos nadiu de Steam, només que fora de Steam.
Avantatges: per què aquesta unificació importa
L'enfocament d'UMU facilita que tots els llançadors parlin el mateix idioma a l'hora d'executar jocs amb Proton. Amb això s'aconsegueixen diversos avantatges clars per a usuaris i desenvolupadors:
- Sense requisits de Steam: ja no necessites el client ni binaris de Steam per utilitzar Proton.
- Base de fixes unificada: les correccions específiques de jocs (protonfixes) són compartides per tota la comunitat i els diferents llançadors.
- Paritat amb Steam: els jocs arrenquen amb Proton dins del mateix tipus de contenidor que utilitza Steam, replicant el seu entorn.
- Manteniment centralitzat: si canvia alguna cosa, s'actualitza en Proton GE i/o en protonfixes o en una build unificada de Proton, afectant positivament tothom.
Avui protonfixes empaqueta una carpeta local de gamefixes, però el propi projecte suggereix que podria evolucionar a descàrrega en línia perquè qualsevol eina que utilitzi umu-run obtingueu de forma centralitzada els fixes que necessiteu.
protonfixes i la umu-database: com s'apliquen els arranjaments
UMU planteja un flux simple perquè un llançador identifiqui el joc, la botiga i el fix que correspon, i l'apliqui automàticament abans d'executar-lo amb Proton. El procés, tal com descriuen, consta d'aquests passos:
- Crear una base de dades amb títols de jocs, els seus IDs a diferents botigues i el umu-ID correlacionat.
- El llançador busca a la base les dades del joc i recupera el umu-ID, que passa a
umu-runjuntament amb STORE, Proton, WINEPREFIX, executable i arguments. - En arrencar el joc amb
umu-run, protonfixes detecta STORE + umu-ID, troba l'script de fix adequat i ho aplica abans de lexecució. - protonfixes organitza els scripts a carpetes per botiga. Un mateix joc manté el mateix umu-ID en diverses stores; pot tenir scripts específics per botiga o enllaçar-se a un fix existent si comparteix necessitats.
Un exemple que posen és Borderlands 3 a la botiga d'Epic (EGS). EGS utilitza codenames com a «Catnip». El llançador detecta que la store és ex i el codename és l'herba gatera, consulta la base, l'associa a Borderlands 3 i al umu-ID corresponent (per exemple, umu-12345), i aquest ID es passa a umu-run. Així es garanteixen els fixes correctes fins i tot quan la botiga no utilitza el nom comercial del joc.
Referències d'ús: opcions i exemples
UMU inclou documentació tipus pàgina d'home per umu-run, amb formes d'ús com umu-run , umu-run ] o umu-run winetricks , a més de --config <FILE> y --help. Entre els seus exemples proposen casos pràctics com:
- Executar un joc de forma directa.
- Executar un joc amb un protonfix específic.
- Usar un fitxer de configuració per parametritzar lexecució.
- Crear un WINEPREFIX UMU i llançar-ho amb Proton.
- Seleccionar Proton automàticament (i crear el prefix si cal).
- Definir un verb vàlid de Proton explícitament.
- Activar logs de depuració per diagnosticar errors.
- Forçar una versió concreta de Proton per nom.
- Usar la darrera build de GE-Proton de forma automàtica.
- Executar verbs de winetricks des de
umu-run. - Desactivar l'aplicació de protonfixes si ho necessites.
Com a utilitats relacionades, la documentació referència winetricks , zenity , el propi umu(5) i documentació del container runtime de Steam. També enllaça repos de Proton , umu-protonfixes i la umu-database , per a qui vulgui aprofundir o contribuir.
Construcció i instal·lació: des de make fins a nixpkgs
Per als qui prefereixen compilar o empaquetar, UMU documenta que la build requereix bash , make , scdoc i eines de Python (build, hatchling, installer, pip). A més, demanen càrrec amb MSRV mínim igual a la versió estable més recent de les seves dependències directes.
El flux recomanat és: descarregar el codi, entrar al directori, executar configure.sh --prefix per ajustar el prefix d'instal·lació (per exemple /usr/local o /app si empaquetaràs a Flatpak), córrer make i, si tot va bé, tindràs els artefactes a ./builddir. Després podeu executar make install instal·lar
Per instal·lació d'usuari, UMU col·loca l'executable a $HOME/.local/bin. assegura't afegir aquest directori al teu PATH (per exemple, exportant-lo a $HOME/.bash_profile) si vols invocar-lo sense ruta completa.
Alternativament, proposen fer servir uv per crear un entorn virtual i configurar UMU ràpidament . La guia suggereix generar un script al directori del projecte , crear el virtualenv amb uv , instal·lar les dependències i executar l'script a través de uv.
En NixOS/nixpkgs, UMU està disponible com pkgs.umu-launcher des de 25.05 (branca inestable al moment indicat). També detallen com fer servir flocs si necessites una snapshot més recent que la del canal, i fins i tot proporcionen exemples per a NixOS i home-manager. Si treballes amb canals més vells (com nixos-24.11), suggereixen combinar múltiples canals o estirar el seu flake.
Paràmetres d'empaquetatge que podeu sobreescriure en nixpkgs:
- extraPkgs: afegir paquets extra a l'entorn FHS (per defecte
pkgs: []). - extrallibràries: afegir biblioteques extra a l'entorn FHS (per defecte
pkgs: []). - withMultiArch: incloure biblioteques de 32 bits a l'entorn FHS (per defecte veritable).
Si utilitzeu el vostre flake, podeu configurar dependències opcionals com:
- withTruststore: habilita l'ús del trust store del sistema (Per defecte veritable).
- withDeltaUpdates: activa dependències per delta updates de Proton (Per defecte veritable).
També mostren maneres d'aplicar el overlay via specialArgs o directament dins de flake.nix, a més d'un exemple d'override dels arguments del paquet.
Runtime de Steam, registres i depuració
UMU es recolza en l' Steam Runtime basat en contenidor (el mateix que usen jocs nadius de Linux i Proton 8.0+ ). Per diagnosticar problemes en aquest entorn, el mateix runtime suporta variables d'entorn útils quan es llença amb el client de Steam, que també et serveixen com a referència en treballar amb el contenidor:
- STEAM_LINUX_RUNTIME_LOG=1: habilita logs que apareixen a
SteamLinuxRuntime_sniper/var/slr-*.log(amb l'AppID al nom).slr-latest.logés un enllaç enllaç al darrer generat. - STEAM_LINUX_RUNTIME_VERBOSE=1: més verbositat a la sortida (a fitxers si hi ha LOG=1 o al mateix lloc que l'output de
steamsi no). - PRESSURE_VESSEL_SHELL=instead: en lloc d'iniciar el joc, obre una shell interactiva dins del contenidor per a inspecció.
Valve documenta supòsits sobre distribucions suportades, consells de depuració, i manté notes de versió i problemes coneguts del runtime. Si desenvolupes jocs i t'interessa apuntar a aquest entorn, revisa el SDK i la informació tècnica per a desenvolupadors. Tot el runtime integra programari de tercers amb les vostres llicències obertes i el codi font està disponible en directoris versionats (consulta VERSIONS.txt per veure les correspondències).
Novetats i hotfix recents
En un canvi recent, els mantenidors van publicar un HOTFIX que reverteix canvis del «reaper» perquè trencaven UMU dins de sessions gamescope a Flatpak . El llistat indica:
- reversió de «umu_run: completeu la implementació de reaper in umu».
- reversió de «umu_run: run steammode workaround on the main process».
- reversió de «umu_run: utilitzeu hardcoded display values for now».
- Actualització de les notes de la versió (bump release notes).
Aquest tipus de hotfix mostra que el projecte reacciona ràpid davant regressions en entorns específics com Flatpak + gamescope, una cosa clau per a usuaris de Steam Deck o escriptoris que usin aquest stack.
Estat del projecte: primera versió oficial i objectiu real
S'ha destacat la versió 1.1.1 com a primer llançament oficial de l'Unified Linux Wine Game Launcher de Thomas GloriousEggroll Crider i la comunitat d'Open Wine Components. Subratllen que no és un llançador gràfic com Steam/Heroic/Lutris , sinó una capa comuna que aquests llançadors poden usar per executar jocs amb Proton fora de Steam amb la mateixa fidelitat que dins de Steam.
Indiquen que hauria de funcionar dins Flatpak i Snap , i proporcionen instruccions d'empaquetat per a ambdós formats al seu repositori. La meta és que qualsevol app pugui llançar títols de botigues com Epic, GOG o Amazon amb la mateixa qualitat que a Steam, beneficiant-se de protonfixes i la base de dades unificada per a una compatibilitat cada cop millor.
Enllaços i documentació recomanada
Per aprofundir, la documentació enllaça recursos com Steam Runtime Sniper release notes , issues coneguts del runtime i com reportar bugs , a més del document sobre container-runtime . També convé revisar:
- winetricks: https://github.com/Winetricks/winetricks
- Protó: https://github.com/ValveSoftware/Proton
- umu-protonfixes: https://github.com/Open-Wine-Components/umu-protonfixes
- umu-database: https://github.com/Open-Wine-Components/umu-database
- Container runtime: documentació oficial
El projecte està mantingut per Open Wine Components amb ajuda de més contribuents. Si vols col·laborar, recomanen instal·lar ruff des de la teva distribució i habilitar ruff server al teu editor per mantenir un estil consistent en el codi.
UMU se situa com a cola tècnica entre Proton i els llançadors, amb un runtime estandarditzat i una base de fixes compartida; amb això, la comunitat pot avançar més ràpidament i amb menys fricció, i els usuaris guanyen en estabilitat i simplicitat en executar els seus jocs fora de Steam amb la mateixa qualitat.