aboutsummaryrefslogtreecommitdiff
path: root/tw/packages
diff options
context:
space:
mode:
authorTimo Wilken2023-11-11 20:19:57 +0100
committerTimo Wilken2023-11-11 20:19:57 +0100
commit9c55ea4984d64b7780911ae4ab6c47fcc9973c73 (patch)
tree4d09011d133986d7114063fe181b219c74fe520b /tw/packages
parente3e2fcdbd9b1afca78cd641078612572aa53225b (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.scm29
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