71 lines
1.6 KiB
Nix
71 lines
1.6 KiB
Nix
{
|
|
lib,
|
|
stdenv,
|
|
makeDesktopItem,
|
|
copyDesktopItems,
|
|
chromium,
|
|
writeShellScriptBin,
|
|
}: let
|
|
pname = "spotify-webapp";
|
|
version = "1.0.0";
|
|
|
|
chromiumWithWidevine = chromium.override {
|
|
enableWideVine = true;
|
|
};
|
|
|
|
launchScript = writeShellScriptBin "spotify-webapp" ''
|
|
exec ${chromiumWithWidevine}/bin/chromium \
|
|
--app=https://open.spotify.com \
|
|
--class=spotify-webapp \
|
|
--name=spotify-webapp \
|
|
--user-data-dir="$HOME/.config/spotify-webapp" \
|
|
--enable-features=UseOzonePlatform \
|
|
--ozone-platform=wayland \
|
|
"$@"
|
|
'';
|
|
in
|
|
stdenv.mkDerivation {
|
|
inherit pname version;
|
|
|
|
dontUnpack = true;
|
|
dontBuild = true;
|
|
|
|
nativeBuildInputs = [copyDesktopItems];
|
|
|
|
desktopItems = [
|
|
(makeDesktopItem {
|
|
name = "spotify-webapp";
|
|
exec = "spotify-webapp %U";
|
|
icon = "spotify";
|
|
desktopName = "Spotify";
|
|
genericName = "Music Streaming";
|
|
comment = "Listen to music on Spotify";
|
|
categories = [
|
|
"Audio"
|
|
"Music"
|
|
"AudioVideo"
|
|
];
|
|
mimeTypes = ["x-scheme-handler/spotify"];
|
|
startupWMClass = "spotify-webapp";
|
|
startupNotify = true;
|
|
})
|
|
];
|
|
|
|
installPhase = ''
|
|
runHook preInstall
|
|
|
|
mkdir -p $out/bin
|
|
ln -s ${launchScript}/bin/spotify-webapp $out/bin/spotify-webapp
|
|
|
|
runHook postInstall
|
|
'';
|
|
|
|
meta = with lib; {
|
|
description = "Spotify web app running in Chromium";
|
|
homepage = "https://open.spotify.com";
|
|
license = licenses.free;
|
|
maintainers = [];
|
|
platforms = platforms.linux;
|
|
mainProgram = "spotify-webapp";
|
|
};
|
|
}
|