diff --git a/pkgs/applications/audio/spotify/default.nix b/pkgs/applications/audio/spotify/default.nix index 245d96dee018..13edd8ea3830 100644 --- a/pkgs/applications/audio/spotify/default.nix +++ b/pkgs/applications/audio/spotify/default.nix @@ -64,7 +64,7 @@ let in stdenv.mkDerivation { - pname = "spotify"; + pname = "spotify-unwrapped"; inherit version; # fetch from snapcraft instead of the debian repository most repos fetch from. diff --git a/pkgs/applications/audio/spotify/wrapper.nix b/pkgs/applications/audio/spotify/wrapper.nix new file mode 100644 index 000000000000..418ef3cbc03e --- /dev/null +++ b/pkgs/applications/audio/spotify/wrapper.nix @@ -0,0 +1,31 @@ +{ symlinkJoin +, lib +, spotify-unwrapped +, makeWrapper + + # High-DPI support: Spotify's --force-device-scale-factor argument; not added + # if `null`, otherwise, should be a number. +, deviceScaleFactor ? null +}: + +symlinkJoin { + name = "spotify-${spotify-unwrapped.version}"; + + paths = [ spotify-unwrapped.out ]; + + nativeBuildInputs = [ makeWrapper ]; + preferLocalBuild = true; + passthru.unwrapped = spotify-unwrapped; + postBuild = '' + wrapProgram $out/bin/spotify \ + ${lib.optionalString (deviceScaleFactor != null) '' + --add-flags ${lib.escapeShellArg "--force-device-scale-factor=${ + builtins.toString deviceScaleFactor + }"} + ''} + ''; + + meta = spotify-unwrapped.meta // { + priority = (spotify-unwrapped.meta.priority or 0) - 1; + }; +} diff --git a/pkgs/top-level/all-packages.nix b/pkgs/top-level/all-packages.nix index f636f0fd894e..e08da2d177dc 100644 --- a/pkgs/top-level/all-packages.nix +++ b/pkgs/top-level/all-packages.nix @@ -23326,7 +23326,7 @@ in spek = callPackage ../applications/audio/spek { }; - spotify = callPackage ../applications/audio/spotify { + spotify-unwrapped = callPackage ../applications/audio/spotify { libgcrypt = libgcrypt_1_5; libpng = libpng12; curl = curl.override { @@ -23334,6 +23334,8 @@ in }; }; + spotify = callPackage ../applications/audio/spotify/wrapper.nix { }; + libspotify = callPackage ../development/libraries/libspotify (config.libspotify or {}); sourcetrail = callPackage ../development/tools/sourcetrail { };