diff options
author | Timo Wilken <guix@twilken.net> | 2023-12-15 21:04:24 +0100 |
---|---|---|
committer | John Kehayias <john.kehayias@protonmail.com> | 2024-01-03 17:24:44 -0500 |
commit | 07b884a7b1f019f427e4d17e0094326069152f40 (patch) | |
tree | e3080767f34f391e42cfe0b576d2915e77ef4006 | |
parent | 8956906f6bed6709e71f0c26ed6a3620f40dc487 (diff) |
nongnu: steam-nvidia: Fix launching .desktop files.
Steam installs .desktop files that refer to an executable called `steam'.
Installing steam-nvidia as the `steam-nvidia' executable breaks this, which
means Steam cannot be launched from its desktop icon. This also applies to
.desktop files for individual games generated by Steam, when they are copied
from `<ngc-sandbox-home>/.local/share/applications/'.
Fix this by always installing Steam's wrapper executable as `steam'. We add a
new field using "binary" to keep things shorter.
This has the downside that the `steam' and `steam-nvidia' packages cannot be
installed in the same profile, but likely people wouldn't want to do this
anyway.
Fixes #294.
* nongnu/packages/steam-client.scm (steam-nvidia-container)[binary-name]:
Specify for compatibility with .desktop files.
* nonguix/multiarch-container.scm (<nonguix-container>)[binary-name,
ngc-binary-name]: New field and accessor.
(nonguix-container->package): Use it to set correct executable name.
(make-internal-script): Use it in message.
Co-authored-by: John Kehayias <john.kehayias@protonmail.com>
Signed-off-by: John Kehayias <john.kehayias@protonmail.com>
-rw-r--r-- | nongnu/packages/steam-client.scm | 3 | ||||
-rw-r--r-- | nonguix/multiarch-container.scm | 7 |
2 files changed, 8 insertions, 2 deletions
diff --git a/nongnu/packages/steam-client.scm b/nongnu/packages/steam-client.scm index 2f313c7..c8ff950 100644 --- a/nongnu/packages/steam-client.scm +++ b/nongnu/packages/steam-client.scm @@ -7,6 +7,7 @@ ;;; Copyright © 2021, 2022 John Kehayias <john.kehayias@protonmail.com> ;;; Copyright © 2023 Giacomo Leidi <goodoldpaul@autistici.org> ;;; Copyright © 2023 Elijah Malaby +;;; Copyright © 2023 Timo Wilken <guix@twilken.net> (define-module (nongnu packages steam-client) #:use-module ((guix licenses) #:prefix license:) @@ -200,6 +201,8 @@ all games will be installed."))) (nonguix-container (inherit steam-container) (name "steam-nvidia") + ;; Steam's .desktop files expect a "steam" executable, so provide that. + (binary-name "steam") (union64 (replace-mesa (ngc-union64 steam-container))) (union32 (replace-mesa (ngc-union32 steam-container))))) diff --git a/nonguix/multiarch-container.scm b/nonguix/multiarch-container.scm index b333b71..8d3bf70 100644 --- a/nonguix/multiarch-container.scm +++ b/nonguix/multiarch-container.scm @@ -8,6 +8,7 @@ ;;; Copyright © 2023 Giacomo Leidi <goodoldpaul@autistici.org> ;;; Copyright © 2023 Attila Lendvai <attila@lendvai.name> ;;; Copyright © 2023 Elijah Malaby +;;; Copyright © 2023 Timo Wilken <guix@twilken.net> ;;; The script provided by this package may optionally be started as ;;; a shell instead of automatically launching the wrapped entrypoint by setting @@ -50,6 +51,7 @@ #:export (nonguix-container nonguix-container? ngc-name + ngc-binary-name ngc-version ngc-wrap-package ngc-run @@ -82,6 +84,7 @@ nonguix-container make-nonguix-container nonguix-container? this-nonguix-container (name ngc-name) + (binary-name ngc-binary-name (default (ngc-name this-nonguix-container)) (thunked)) (version ngc-version (default #f)) (wrap-package ngc-wrap-package) (run ngc-run) @@ -207,7 +210,7 @@ in a sandboxed FHS environment." (manifest-target (assoc-ref %build-inputs "fhs-manifest")) (manifest-dest (string-append out "/etc/" ,(ngc-manifest-name container))) (wrapper-target (assoc-ref %build-inputs "fhs-wrapper")) - (wrapper-dest (string-append out "/bin/" ,(ngc-name container))) + (wrapper-dest (string-append out "/bin/" ,(ngc-binary-name container))) (link-files ',(ngc-link-files container))) (mkdir-p (string-append out "/sbin")) (mkdir-p (string-append out "/etc")) @@ -528,7 +531,7 @@ application." (if asound32-opt (display "\n\n/etc/asound.conf configured for 32-bit.\n\n\n") (display (string-append "\n\n/etc/asound.conf configured for 64-bit.\nLaunch " - #$(ngc-name container) + #$(ngc-binary-name container) " with \"" (basename #$(ngc-run container)) " -- --asound32\" to use 32-bit instead.\n\n\n"))) |