cosmic-workspaces-epoch: substitute fallback background path

The directory `/usr/share/backgrounds/pop/` is not accessible on NixOS
because the directory `/usr` does not exist on NixOS. The package
`cosmic-wallpapers` exists in nixpkgs that provides the background image
that is used in the COSMIC DE's screenshots on the first-party
website[0]. Substitute the unreachable, FHS path with a valid path of
the background image from the Nix store.

Note: We are putting in a different fallback background path alltogether
but I believe that this is okay because that is used by upstream in
their marketing materials. Meaning, after substitution, we match
marketing screenshots from upstream.

[0]: https://system76.com/cosmic/
This commit is contained in:
Pratham Patel
2025-04-11 14:06:34 +05:30
parent 5997b997dc
commit 24c9885c8f
@@ -3,6 +3,7 @@
stdenv,
rustPlatform,
fetchFromGitHub,
cosmic-wallpapers,
libcosmicAppHook,
pkg-config,
libinput,
@@ -23,6 +24,22 @@ rustPlatform.buildRustPackage (finalAttrs: {
hash = "sha256-3jivE0EaSddPxMYn9DDaYUMafPf60XeCwVeQegbt++c=";
};
postPatch = ''
# While the `kate-hazen-COSMIC-desktop-wallpaper.png` image is present
# in the `pop-wallpapers` package, we're using the Orion Nebula image
# from NASA available in the `cosmic-wallpapers` package. Mainly because
# the previous image was used in the GNOME shell extension and the
# Orion Nebula image is widely used in the Rust-based COSMIC DE's
# marketing materials. Another reason to use the Orion Nebula image
# is that it's actually the default wallpaper as configured by the
# `cosmic-bg` package's configuration in upstream [1] [2].
#
# [1]: https://github.com/pop-os/cosmic-bg/blob/epoch-1.0.0-alpha.6/config/src/lib.rs#L142
# [2]: https://github.com/pop-os/cosmic-bg/blob/epoch-1.0.0-alpha.6/data/v1/all#L3
substituteInPlace src/view/mod.rs \
--replace-fail '/usr/share/backgrounds/pop/kate-hazen-COSMIC-desktop-wallpaper.png' "${cosmic-wallpapers}/share/backgrounds/cosmic/orion_nebula_nasa_heic0601a.jpg"
'';
useFetchCargoVendor = true;
cargoHash = "sha256-l5y9bOG/h24EfiAFfVKjtzYCzjxU2TI8wh6HBUwoVcE=";