diff options
Diffstat (limited to 'nixpkgs/pkgs/by-name/co/cosmic-session/package.nix')
-rw-r--r-- | nixpkgs/pkgs/by-name/co/cosmic-session/package.nix | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/nixpkgs/pkgs/by-name/co/cosmic-session/package.nix b/nixpkgs/pkgs/by-name/co/cosmic-session/package.nix new file mode 100644 index 000000000000..cebd00aff004 --- /dev/null +++ b/nixpkgs/pkgs/by-name/co/cosmic-session/package.nix @@ -0,0 +1,72 @@ +{ + lib, + fetchFromGitHub, + bash, + rustPlatform, + just, + dbus, + rust, + stdenv, + xdg-desktop-portal-cosmic, +}: +rustPlatform.buildRustPackage rec { + pname = "cosmic-session"; + version = "0-unstable-2024-01-17"; + + src = fetchFromGitHub { + owner = "pop-os"; + repo = pname; + rev = "8e73c0f6940288c4a24a102a7ba9f20eb6bd754f"; + sha256 = "sha256-plglQ9i+kcG70v9ElCzwNMhO1xcuEAQiO0DeZfRjbcg="; + }; + + cargoLock = { + lockFile = ./Cargo.lock; + outputHashes = { + "cosmic-notifications-util-0.1.0" = "sha256-GmTT7SFBqReBMe4GcNSym1YhsKtFQ/0hrDcwUqXkaBw="; + "launch-pad-0.1.0" = "sha256-tnbSJ/GP9GTnLnikJmvb9XrJSgnUnWjadABHF43L1zc="; + }; + }; + + postPatch = '' + substituteInPlace Justfile \ + --replace '#!/usr/bin/env' "#!$(command -v env)" \ + --replace 'target/release/cosmic-session' "target/${ + rust.lib.toRustTargetSpecShort stdenv.hostPlatform + }/release/cosmic-session" + substituteInPlace data/start-cosmic \ + --replace '#!/bin/bash' "#!${lib.getBin bash}/bin/bash" \ + --replace '/usr/bin/cosmic-session' "$out/bin/cosmic-session" \ + --replace '/usr/bin/dbus-run-session' "${ + lib.getBin dbus + }/bin/dbus-run-session" + substituteInPlace data/cosmic.desktop --replace '/usr/bin/start-cosmic' "$out/bin/start-cosmic" + ''; + + nativeBuildInputs = [ just ]; + + dontUseJustBuild = true; + + justFlags = [ + "--set" + "prefix" + (placeholder "out") + "--set" + "xdp_cosmic" + xdg-desktop-portal-cosmic + ]; + + passthru.providedSessions = [ "cosmic" ]; + + meta = with lib; { + homepage = "https://github.com/pop-os/cosmic-session"; + description = "Session manager for the COSMIC desktop environment"; + license = licenses.gpl3Only; + mainProgram = "cosmic-session"; + maintainers = with maintainers; [ + a-kenji + nyanbinary + ]; + platforms = platforms.linux; + }; +} |