diff options
author | Timo Wilken | 2023-11-11 20:19:57 +0100 |
---|---|---|
committer | Timo Wilken | 2023-11-11 20:19:57 +0100 |
commit | 9c55ea4984d64b7780911ae4ab6c47fcc9973c73 (patch) | |
tree | 4d09011d133986d7114063fe181b219c74fe520b /tw/packages | |
parent | e3e2fcdbd9b1afca78cd641078612572aa53225b (diff) |
Install fixed Steam launcher in home profile
This can run Cities:Skylines with "Steam Linux Runtime 1.0 (scout)" as a
forced Steam compatibility tool.
Installing it here is easier than launching Steam from the command line every
time.
Diffstat (limited to 'tw/packages')
-rw-r--r-- | tw/packages/games.scm | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/tw/packages/games.scm b/tw/packages/games.scm index 701f983a..b40590ba 100644 --- a/tw/packages/games.scm +++ b/tw/packages/games.scm @@ -40,10 +40,39 @@ #:use-module ((guix licenses) #:prefix license:) #:use-module (guix modules) #:use-module (guix packages) + #:use-module ((nongnu packages nvidia) + #:select (nvda)) + #:use-module ((nongnu packages steam-client) + #:select (steam-container)) #:use-module (nonguix build-system binary) + #:use-module ((nonguix multiarch-container) + #:select (nonguix-container nonguix-container->package ngc-union32 ngc-union64)) #:use-module ((nonguix licenses) #:prefix nonguix-license:)) +;;; Steam + +;; TODO: revert to upstream Nonguix' `steam-nvidia-container' once +;; https://gitlab.com/nonguix/nonguix/-/merge_requests/359 is merged or libx11 +;; is ungrafted in Guix. +(define replace-mesa* + (let* ((mesa-fixed (@@ (nongnu packages steam-client) mesa-fixed)) + (mesa/nvda (package (inherit mesa) (replacement nvda))) + (mesa-fixed/nvda (package (inherit mesa-fixed) (replacement nvda)))) + (package-input-rewriting + `((,mesa . ,mesa/nvda) + (,mesa-fixed . ,mesa-fixed/nvda))))) + +(define-public steam-nvidia + (nonguix-container->package + (nonguix-container + (inherit steam-container) + ;; All .desktop files refer to an executable called "steam". + (name "steam") + (union64 (replace-mesa* (ngc-union64 steam-container))) + (union32 (replace-mesa* (ngc-union32 steam-container)))))) + + ;; Simutrans (define-public simutrans |