Skip to content

Instantly share code, notes, and snippets.

@felipec
Last active August 17, 2026 21:35
Show Gist options
  • Select an option

  • Save felipec/86dcbe352d9f01bdc43c89bb5846e1bd to your computer and use it in GitHub Desktop.

Select an option

Save felipec/86dcbe352d9f01bdc43c89bb5846e1bd to your computer and use it in GitHub Desktop.
proton-ge-custom-bin
# Maintainer: Felipe Contreras <felipe.contreras@gmail.com>
## pkginfo
pkgdesc='A fancy custom distribution of Valves Proton with various patches'
pkgname=proton-ge-custom-bin
pkgver=GE_Proton11_5
pkgrel=1
epoch=1
arch=('x86_64' 'aarch64')
license=('BSD' 'LGPL' 'zlib' 'MIT' 'MPL' 'custom')
changelog=changelog.md
provides=('proton' "proton-ge-custom=${pkgver/_/.}")
conflicts=('proton-ge-custom' 'proton-ge-bin')
## dependencies
depends=(
'python'
'lapack'
'lib32-lapack'
)
optdepends=(
'vulkan-icd-loader: dxvk dependency'
'lib32-vulkan-icd-loader: dxvk dependency for 32bit prefixes'
'kdialog: KDE splash dialog support'
'zenity: GNOME splash dialog support'
'python-kivy: splash dialog support (big picture mode)'
'steam: use proton with steam like intended'
'vulkan-driver: driver to be used by dxvk'
'winetricks: protonfixes backend - highly recommended'
'wine: support for 32bit prefixes'
'xboxdrv: gamepad driver service'
)
## makepkg options
options=(!strip emptydirs)
install=pleasenote.install
## fix naming conventions, matching upstream
_pkgname=${pkgname//-bin/}
_pkgver=${pkgver//_/-}
_srcdir="${_pkgver}-${CARCH}"
## paths and files
_protondir=usr/share/steam/compatibilitytools.d/${_pkgname}
_licensedir=usr/share/licenses/${pkgname}
_execfile=usr/bin/proton-ge
_protoncfg=${_protondir}/user_settings.py
## user edited files to backup
backup=("$_protoncfg")
## sources
url='https://github.com/GloriousEggroll/proton-ge-custom'
source=(
'user_settings.py'
'launcher.sh'
'proton-ge-custom-bin.conf'
'pam_limits.conf'
)
source_x86_64=(
"${_pkgver}_${pkgrel}-x86_64.tar.gz::${url}/releases/download/${_pkgver}/${_pkgver}-x86_64.tar.gz"
)
source_aarch64=(
"${_pkgver}_${pkgrel}-aarch64.tar.gz::${url}/releases/download/${_pkgver}/${_pkgver}-aarch64.tar.gz"
)
sha512sums=(
'5d1a841d3f8f65f9e62742f84eeccfb198a0292a97ba9109f377a550a4de0e2913d1e17b3d90ecd37ac09411dc67e54662dc1be301554ce05fd128d842252deb'
'78ede6d50f9c43407da511c8b37dcf60aae2ddbd461c0081f0d0ce3de08ace3a84dee86e9253acbac829b47c5818ef4e1a354ccb05feaa9853ce279dc3f903fd'
'ac2bd634838ffe6b90f2637e229013f0993fc1013271dbeefd216dc262a8bb79e4a5ce15a75cbfcb0c3b521d32f4ebe1ed25a6b066b99cc327b60bd6d7212e6f'
'60bcb1ad899d108fca9c6267321d11871feae96b696e44607ef533becc6decb493e93cbe699382e8163ad83f35cfa003a059499c37278f31afeba4700be6e356'
)
sha512sums_x86_64=(
'8fb1f3ae65a8dc22efd8099ff489075f0eebddf01c445b423244589f6f0a1e19c01de5d1e722b97fc1ebaf6390c813052ed55290058f8d21f1353a36146f4a2c'
)
sha512sums_aarch64=(
'fa3048f55a70e4090a38e23d4182bcf4100c6cfbdb1a9b1b21aa01dfd2ba68ef6cc70f00242171c0f836d1e4753dfca146453baba6042f2d61ebef47d4f3cd84'
)
build() {
## patches
sed -i "s|_proton=echo|_proton=/${_protondir}/proton|" "${srcdir}"/launcher.sh
sed -i -r 's|"GE-Proton.*"|"Proton-GE"|' "${_srcdir}"/compatibilitytool.vdf
## fixes from namcap inspection
strip --preserve-dates --strip-unneeded "${_srcdir}"/files/bin/wine*
}
package() {
## create paths
install -d "${pkgdir}/${_protondir}/"
install -d "${pkgdir}/${_licensedir}/"
install -d "${pkgdir}/$(dirname "${_execfile}")/"
install -d "${pkgdir}/etc/security/limits.d/"
install -d "${pkgdir}/usr/lib/modules-load.d"
## licenses
mv "${_srcdir}/LICENSE" "${pkgdir}/${_licensedir}/license"
mv "${_srcdir}/LICENSE.OFL" "${pkgdir}/${_licensedir}/license_OFL"
mv "${_srcdir}/PATENTS.AV1" "${pkgdir}/${_licensedir}/license_AV1"
## config files
install --mode=0775 --group=50 "${srcdir}"/user_settings.py "${pkgdir}/${_protoncfg}"
install --mode=0644 "${srcdir}"/pam_limits.conf "${pkgdir}"/etc/security/limits.d/10-games.conf
install --mode=0644 "${srcdir}"/${pkgname}.conf "${pkgdir}"/usr/lib/modules-load.d/${pkgname}.conf
## executables
mv "${_srcdir}"/* "${pkgdir}/${_protondir}"
install --mode=0755 "${srcdir}"/launcher.sh "${pkgdir}/${_execfile}"
}
@Richardn2002

Copy link
Copy Markdown

thank you! But question: why the lapack dependencies?

@felipec

felipec commented Aug 17, 2026

Copy link
Copy Markdown
Author

@Richardn2002 I did an analysis of all the libraries provided by Proton-GE and all the dependencies are covered by Steam runtimes so they don't need to be installed on the system, with the exception of lapack. The way it works is not straightforward so maybe they are not needed (or depends on the runtime), but if any dependency is needed, it would be that one.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment