commit ac35e31e348ee2969b9807d600a784eb25d584dc Author: JMARyA Date: Wed Mar 5 19:53:00 2025 +0100 🎉 init diff --git a/README.md b/README.md new file mode 100644 index 0000000..7f8b953 --- /dev/null +++ b/README.md @@ -0,0 +1,37 @@ +# GamePKG + +**Save PG Games as Arch Linux Packages.** + +GamePKG allows you to package any game, including ROMs, as an Arch Linux package (`.pkg.tar.zst`). This enables easy installation, removal, and system-wide management of games with `pacman`. + +## Features +- **System Integration**: Automatically sets up a desktop menu entry with game icons. +- **Extras Included**: Icons, banners, and additional metadata. +- **Wine Support**: Handles necessary Wine dependencies and launch scripts for Windows games. +- **Effortless Management**: Install and remove games just like any other package. + +## Installation & Removal +With GamePKG, games can be distributed via [`pacco`](https://git.hydrar.de/jmarya/pacco), making installations seamless: + +```sh +pacman -S games/elden.ring # Install a game +pacman -R games/elden.ring # Remove a game +``` + +## Package Format +Each game package should contain: +- **Game Icons** → `/usr/share/icons/` +- **Menu Entry** → `/usr/share/applications/` +- **Game Files** → `/games` +- **README** → Game-specific information + +The menu entry should allow launching the game with a single click, requiring no additional setup. The package should declare any necessary dependencies. +Game Icons and Metadata can be sourced from SteamGridDB. + +### Naming Convention +Game names should be formatted by replacing spaces with dots (e.g., `Game Title` -> `game.title`). + +## Building a Game Package +See the `examples/` directory for a minimal build template to package games. + +- [Windows Games](./examples/wine/) diff --git a/examples/wine/PKGBUILD b/examples/wine/PKGBUILD new file mode 100644 index 0000000..16904f5 --- /dev/null +++ b/examples/wine/PKGBUILD @@ -0,0 +1,12 @@ +pkgname=game.title +pkgver=1.0 +pkgrel=1 +pkgdesc="" +arch=('x86_64') +depends=('wine' 'umu-launcher') +source=() +sha256sums=() + +package() { + rsync -vzr ./root/ "$pkgdir/" +} diff --git a/examples/wine/root/usr/share/applications/Game Title.desktop b/examples/wine/root/usr/share/applications/Game Title.desktop new file mode 100644 index 0000000..5fc5784 --- /dev/null +++ b/examples/wine/root/usr/share/applications/Game Title.desktop @@ -0,0 +1,9 @@ +[Desktop Entry] +Name= +Comment= +Exec=env WINEPREFIX="$HOME/Games/umu/game.title" STEAM_COMPAT_LIBRARY_PATHS="/games" bash -c "umu-run /games/game.title/_Redist/vc_redist.x64.exe /Install /Quiet && umu-run /games/game.title/_Redist/vc_redist.x86.exe /Install /Quiet && umu-run /games/game.title/game.exe" +Icon=/usr/share/icons/game.title/icon.png +StartupNotify=true +Terminal=false +Type=Application +Categories=Game;