summaryrefslogtreecommitdiff
path: root/tw/packages/games.scm
diff options
context:
space:
mode:
Diffstat (limited to 'tw/packages/games.scm')
-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