Gambas3 · Wayland · MangoHud

MangoHud-Konfiguration,
die zum Spiel passt.

PerGameMangoConfig erkennt das gerade gestartete Spiel, ermittelt die Steam- oder Heroic-App-ID, legt automatisch eine passende MangoHud-Konfiguration an und merkt sich deren Pfad dauerhaft. Kein Suchen, kein Überschreiben – auch nicht unter Wayland.

Was die App macht

Die App überwacht laufende Prozesse, ordnet sie einem Spiel zu und schlägt die passende MangoHud-Konfiguration vor. Ein Klick genügt – ab danach läuft der Rest automatisch.

🎮

Spielerkennung

Überwacht /proc und findet auch Wine- und Proton-Prozesse. Der vollständige Prozessname wird über /proc/PID/exe und cmdline ermittelt, weil /proc/PID/comm auf 15 Zeichen gekürzt ist.

🆔

App-ID und Pfad

Die SteamAppId wird durch die Elternkette bis zu 20 Ebenen gesucht – bei Proton-Spielen steht sie nicht im Prozess selbst, sondern im Launcher.

📄

Config erzeugen

Aus dem gewählten Profil entsteht eine .conf-Datei im passenden Ordner. Eine bestehende Datei wird vorher mit Zeitstempel gesichert.

🧠

Pfad merken

Mit der Checkbox „Config merken" wird der Pfad unter dem Spielnamen in mymangopergames.ini gespeichert. Danach wird nicht mehr gesucht.

⚡

Automatisch injizieren

MangoHud kann direkt in die Steam-Launch-Optionen geschrieben werden, sodass der HUD ohne manuellen Eingriff erscheint.

🎛️

Von außen steuern

Über pgc lassen sich Profile wählen und speichern – auch wenn das Fenster keinen Fokus hat. Unter Wayland der einzige zuverlässige Weg.

Oberfläche

ReiterInhalt
FavoritesFavoritenliste, direkt startbar
All my GamesAlle erkannten Spiele mit Status
Game/MangoHudSpieldetails, Profilwahl und Config-Text
SettingsEinstellungen, Merk-Checkbox, INI-Pfade
Profiles/InfoReferenz aller 49 MangoHud-Parameter aus mango.csv

Profile

Profile liegen in ~/mymangopergames/profiles.ini, jeweils als eigener INI-Abschnitt. Die mitgelieferten sind:

ProfilZweck
NoneKein Profil – der Text im Feld wird unverändert gespeichert
STDStandard-Layout
MINIKompakt, wenig Overlay
NOVRAMOhne RAM-/GPU-Ausgabe

Eigene Profile lassen sich einfach in profiles.ini ergänzen.

Dateien und Verzeichnisse

PfadInhalt
~/mymangopergames/mymangopergames.iniSpiel → gemerkter Config-Pfad (correktconf)
~/mymangopergames/profiles.iniMangoHud-Profile
~/mymangopergames/laucher.iniLauncher, Pfade und Parameter
~/mymangopergames/pgc_commands.logBefehlswarteschlange für pgc
~/.config/MangoHud/Erzeugte MangoHud-Konfigurationen
~/.cache/heroic-covers/Zwischengespeicherte Cover-Bilder

Externe Steuerung mit pgc

Unter Wayland lassen sich Fenster nicht zuverlässig in den Vordergrund holen, und globale Tastenkürzel greifen nicht immer. Deshalb liest die App viermal pro Sekunde eine Warteschlangen-Datei. Andere Programme – Skripte, Launcher, Tastenbindungen – schreiben einfach eine Zeile hinein.

Befehle, die vor dem Programmstart in der Datei stehen, werden ignoriert. Es werden nur Zeilen ausgeführt, die nach dem Start dazukommen. Die App schreibt die Datei selbst nie – das würde die Lesezugriffe blockieren.

Schnellstart

  1. Skript verlinken

    pgc liegt im Projektordner. Damit es ohne Pfad aufrufbar ist:

    # ln -sf aus dem Projektordner ausführen:
    mkdir -p ~/.local/bin
    ln -sf /pfad/zu/PerGameMangoConfig/pgc ~/.local/bin/pgc
  2. Prüfen

    pgc --check

    Bei gültigem Link: pgc: Skript gefunden: /pfad/…/pgc

  3. Profil setzen

    pgc MINI

    Wählt das Profil MINI und speichert die Config. Das Ergebnis steht im Log-Tab.

Der Klassiker: cd ~ && sudo ln -s "$PWD/pgc" /usr/local/bin/pgc erzeugt einen Link auf ~/pgc – dort liegt keine Datei, und pgc wird nicht gefunden. sudo ist außerdem unnötig, weil ~/.local/bin in bash, zsh und fish automatisch im PATH liegt.

Befehlsliste

BefehlWirkung
pgc MINIProfil MINI wählen und Config speichern – ein Profilname ohne Schlüsselwort wirkt genauso, z. B. pgc STD
pgc PROFILE MINIProfil nur wählen, nichts speichern
pgc PROFILESAlle verfügbaren Profile ins Log schreiben
BefehlWirkung
pgc CONF /pfad/x.confZielpfad der Config setzen; vorhandene Datei wird geladen
pgc SAVEConfig in die .conf-Datei schreiben
pgc SAVEINISpielzuordnung in mymangopergames.ini speichern
pgc CORRECTCONFMerk-Eintrag umschalten: merken bzw. löschen
pgc DEFAULTStandard-Config laden
BefehlWirkung
pgc STARTMarkiertes Spiel starten
pgc LOOKUPSteam-Lookup ausführen
pgc OKFavorit starten (auch GO)
pgc FAVUPFavorit nach oben
pgc FAVDOWNFavorit nach unten
pgc FAVREMOVEFavorit entfernen
pgc TAB 2Reiter wechseln (0–4)
BefehlWirkung
pgc PINGKurze Bestätigung ins Log – Lebt-Nachricht
pgc STATUSSpiel, Profil, Config-Pfade ins Log schreiben
pgc HELPBefehlsliste (auch ?)

Mehrere Befehle

Mehrere Befehle passieren in eine Zeile, getrennt mit ; oder |:

# Profil wählen, Ziel setzen, speichern
pgc "PROFILE MINI;CONF ~/.config/MangoHud/mini.conf;SAVE"

# dieselbe Kette mit |
pgc "PROFILE STD|CONF ~/.config/MangoHud/std.conf|SAVE"

Ohne Helper schreiben

echo "PROFILE MINI;SAVE" >> ~/mymangopergames/pgc_commands.log

Prüfung beim Start

Beim Start prüft die App, ob pgc bereitsteht, und schreibt das Ergebnis in den Log-Tab. Fehlt der Helper oder ist der Link kaputt, steht der fertige Befehl zum Kopieren dabei – mit dem tatsächlich gefundenen Pfad.

MeldungBedeutung
[OK] pgc ist installiertAlles bereit
[WARN] nicht im PATHln -sf-Befehl wird angezeigt
[WARN] nicht ausführbarchmod +x wird angezeigt
[WARN] nicht gefundencp und chmod werden angezeigt

Installation

Voraussetzung ist Gambas3 und MangoHud. Das Projektverzeichnis kann einfach an einen beliebigen Ort gelegt werden – die App selbst schreibt ausschließlich nach ~/mymangopergames und ~/.config/MangoHud.

1. Gambas3

sudo pacman -S gambas3 gambas3-gb-image gambas3-gb-settings \
  gambas3-gb-form gambas3-gb-desktop gambas3-gb-gui

2. MangoHud

sudo pacman -S mangohud      # offizielles Repo
yay  -S mangohud-git     # oder aktuelle AUR-Version

3. Hilfsprogramme

sudo pacman -S python curl

1. Gambas3

sudo apt update
sudo apt install gambas3 gambas3-gb-image gambas3-gb-settings \
  gambas3-gb-form gambas3-gb-desktop gambas3-gb-gui

Auf manchen Debian-Versionen heißt das Paket gambas3-gb-gui oder nur gambas3. Prüfen mit apt search gambas3.

2. MangoHud

sudo apt install mangohud

3. Hilfsprogramme

sudo apt install python3 curl

1. Gambas3

sudo dnf install gambas3

2. MangoHud

sudo dnf install mangohud

3. Hilfsprogramme

sudo dnf install python3 curl

Projekt starten

./launch_steam.sh
# oder direkt:
gambas3 PerGameMangoConfig/PerGameMangoConfig.gambas

Executable neu bauen

Nach Quelltextänderungen genügt gbc3 -a nicht – es erzeugt nur die kompilierten Klassen unter .gambas/. Das Startprogramm entsteht mit:

cd PerGameMangoConfig
rm -rf .gambas && gbc3 -a
gambas3 --make "$PWD"

gbc3 -a meldet trotzdem OK, wenn ein Symbol fehlt, das erst zur Lauftime gebraucht wird. Deshalb nach jedem Umbau einmal starten und das Log prüfen.

Menüeintrag

Im .project sind Menüeinträge für Arch, Debian, Fedora und Ubuntu hinterlegt (Spiele/Werkzeuge). Wer den Eintrag manuell möchte, legt eine Desktop-Datei an:

[Desktop Entry]
Type=Application
Name=PerGameMangoConfig
Comment=MangoHud-Konfiguration pro Spiel
Exec=/pfad/zu/PerGameMangoConfig/launch_steam.sh
Icon=pergamemangoconfig
Terminal=false
Categories=Game;Utility;

Erster Start

  1. Verzeichnisse anlegen

    Die App legt ~/mymangopergames selbst an. Vorhandene Dateien werden nicht überschrieben.

  2. Spiel starten

    Ein Spiel starten und in der App auf All my Games bzw. Game/MangoHud wechseln. Der Prozess wird erkannt.

  3. Profil wählen und merken

    Profil wählen, Zielpfad prüfen, Config merken aktivieren und Spiel merken klicken. Ab jetzt wird der Pfad direkt verwendet.

  4. MangoHud aktivieren

    Launch-Option in Steam: mangohud %command%

  5. pgc verlinken

    Siehe oben – nur nötig, wenn die App von außen gesteuert werden soll.

FAQ

Häufige Fragen und die Ursachen dahinter.

pgc: Unknown command: pgc

Der Link zeigt auf eine Datei, die es nicht gibt. Fast immer so entstanden:

# falsch, wenn im Home-Verzeichnis ausgeführt:
sudo ln -s "$PWD/pgc" /usr/local/bin/pgc
# -> Link zeigt auf ~/pgc

Richtig – ohne sudo, weil ~/.local/bin schon im PATH liegt:

mkdir -p ~/.local/bin
ln -sf /pfad/zu/PerGameMangoConfig/pgc ~/.local/bin/pgc
pgc --check

Warum im Log steht, was zu tun ist: Die App prüft beim Start den Zustand und gibt den fertigen Befehl aus.

pgc meldet „läuft nicht", obwohl die App offen ist

Der Prozessname ist gbr3, nicht PerGameMangoConfig. pgc prüft pgrep -x gbr3 und liest dann die Kommandozeile. Ein pgrep -f PerGameMangoConfig wäre unbrauchbar, weil es den eigenen Aufruf mitmatcht.

Mein Befehl wird ignoriert

Drei mögliche Gründe:

  • Die App war beim Schreiben nicht gestartet – Befehle vor dem Start werden absichtlich verworfen.
  • Die Zeile war leer oder enthielt Tippfehler. Der Befehlsname muss in Großbuchstaben, Pfade dürfen Leerzeichen enthalten, wenn der ganze Befehl in Anführungszeichen steht.
  • Etwas anderes als ; oder | wurde als Trenner verwendet – jedes Zeilenende ist ein eigener Befehl.

Im Log-Tab steht jede Zeile als [INFO] Externer Befehl: …. Damit lässt sich genau sehen, was angekommen ist.

Wie sehe ich, ob MangoHud wirkt?

MangoHud muss in Steam unter den Launch-Optionen stehen: mangohud %command%. Wird die Steam-Automatik benutzt, ist nach einer Änderung an der VDF ein Neustart von Steam nötig – die Steam-Sitzung hält die Library im Speicher.

Nach dem Speichern erinnert die App im Log daran, dass MangoHud manuell zu aktivieren ist – Taste Shift+F4.

Das Spiel wird nicht erkannt

Bei Wine/Proton ist der Prozessname gekürzt – /proc/PID/comm erlaubt nur 15 Zeichen. Die App liest deshalb /proc/PID/exe und /proc/PID/cmdline aus. Trotzdem kann die Zuordnung scheitern, wenn:

  • das Spiel zu schnell beendet wurde,
  • die SteamAppId in keinem Elternprozess steht,
  • der Prozessname dem Spiel in keiner der Listen entspricht.

Abhilfe: pgc LOOKUP oder den Namen von Hand in die Liste übernehmen.

Meine Config wird überschrieben

Beim Speichern wird eine Sicherung mit Zeitstempel neben die Datei gelegt: datei.conf.20260927_142530. Vorhandene Dateien werden nie gelöscht.

Damit gar nichts erst überschrieben wird, Config merken aktivieren – dann wird der bestätigte Pfad verwendet und nicht neu gesucht.

Cover-Bilder werden nicht geladen

Die Cover kommen von SteamGridDB und Heroic. Es braucht eine Internetverbindung und ein installiertes curl. Die Bilder werden unter ~/.cache/heroic-covers/ zwischengespeichert.

Start unter Wayland: „Vom System skaliert" ist aktiv

KDE skaliert X11- und Proton-Fenster dann selbst, was zu Auflösungsproblemen führen kann. Die App warnt beim Start. Lösung: unter Systemeinstellungen → Anzeige → Skalierung auf „Anwendung skalieren" umstellen, oder Wayland-Support des Spiels nutzen.

Nach einer Änderung passiert gar nichts

Der Bau mit gbc3 -a erzeugt kein ausführbares Programm. Nötig ist:

cd PerGameMangoConfig
rm -rf .gambas && gbc3 -a
gambas3 --make "$PWD"

Danach PerGameMangoConfig.gambas neu starten. Prüfen, ob die Datei aktuell ist: ls -la PerGameMangoConfig.gambas – der Zeitstempel muss gerade sein.

Wie lege ich ein eigenes Profil an?

In ~/mymangopergames/profiles.ini einen neuen Abschnitt anlegen, z. B. [ULTRA], darunter die MangoHud-Parameter als schlüssel=wert. Die vollständige Liste aller 49 Parameter steht im Reiter Profiles/Info und in mango.csv.

Danach pgc PROFILE ULTRA.

Kann ich Befehle aus einem Skript oder einer Tastenbindung senden?

Ja – das ist der Hauptzweck. Alles, was eine Zeile in ~/mymangopergames/pgc_commands.log schreiben kann:

#!/bin/bash
# Profil beim Spielstart automatisch setzen
pgc "PROFILE MINI;CONF ~/.config/MangoHud/mini.conf;SAVE"

Unter Wayland funktioniert das ohne Fenster-Fokus, im Gegensatz zu Tastenkürzeln.

Was bedeutet die Meldung im Log-Tab nach dem Start?

Sie bezieht sich nur auf den externen Helper pgc:

MeldungBedeutung
[OK] pgc ist installiertexterne Steuerung einsatzbereit
[WARN] nicht im PATHln -sf-Befehl steht dabei
[WARN] nicht ausführbarchmod +x steht dabei
[WARN] nicht gefundencp und chmod stehen dabei

Die App selbst läuft auch ohne pgc – die Meldung betrifft nur die Bequemlichkeit, Befehle ohne Pfad aufzurufen.