summaryrefslogtreecommitdiff
path: root/tw
diff options
context:
space:
mode:
Diffstat (limited to 'tw')
-rw-r--r--tw/home.scm1
-rw-r--r--tw/home/lap.scm2
-rw-r--r--tw/packages/games.scm29
3 files changed, 31 insertions, 1 deletions
diff --git a/tw/home.scm b/tw/home.scm
index ebccfce9..92b1f580 100644
--- a/tw/home.scm
+++ b/tw/home.scm
@@ -519,6 +519,7 @@ show_border=1
(simple-service 'gui-environment home-environment-variables-service-type
`(("TERMINAL" . "kitty")
+ ("QT_X11_NO_MITSHM" . "1") ; fixes a Steam issue: https://gitlab.com/nonguix/nonguix/-/issues/267
("_JAVA_OPTIONS" .
,(string-append
"$_JAVA_OPTIONS${_JAVA_OPTIONS:+ }-Dawt.useSystemAAFontSettings=on -Dswing.aatext=true "
diff --git a/tw/home/lap.scm b/tw/home/lap.scm
index 1b8e2908..9b79fb68 100644
--- a/tw/home/lap.scm
+++ b/tw/home/lap.scm
@@ -32,7 +32,7 @@
#:select (signal-desktop))
#:use-module ((nongnu packages nvidia)
#:select (nvidia-system-monitor))
- #:use-module ((nongnu packages steam-client)
+ #:use-module ((tw packages games) ; (nongnu packages steam-client)
#:select (steam-nvidia))
#:use-module (tw home)
#:use-module (tw services desktop)
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