main
 1{
 2  lib,
 3  fetchFromGitHub,
 4  flutter341,
 5  pkg-config,
 6  alsa-lib,
 7  libnotify,
 8  mpv-unwrapped,
 9  copyDesktopItems,
10  makeDesktopItem,
11}:
12flutter341.buildFlutterApplication rec {
13  pname = "musly-player";
14  version = "1.0.13";
15
16  src = fetchFromGitHub {
17    owner = "dddevid";
18    repo = "Musly";
19    tag = "v${version}";
20    hash = "sha256-ddPX+3MRTf978G41yTVT7KoEgxvEDlsvBkPFTFlhwwY=";
21  };
22
23  pubspecLock = lib.importJSON ./pubspec.lock.json;
24
25  nativeBuildInputs = [
26    copyDesktopItems
27    pkg-config
28  ];
29
30  buildInputs = [
31    alsa-lib
32    libnotify
33  ];
34
35  extraWrapProgramArgs = ''
36    --prefix LD_LIBRARY_PATH : $out/app/musly/lib:${lib.makeLibraryPath [mpv-unwrapped]}
37  '';
38
39  postFixup = ''
40    mv "$out/bin/musly" "$out/bin/${pname}"
41  '';
42
43  desktopItems = [
44    (makeDesktopItem {
45      name = "Musly";
46      exec = pname;
47      icon = "${src}/logo.png";
48      genericName = "Music Player";
49      desktopName = "Musly";
50      categories = ["AudioVideo" "Audio" "Player" "Music"];
51    })
52  ];
53
54  meta = {
55    description = "A beautiful Flutter music streaming client for Subsonic-compatible servers with a modern Apple Music-inspired UI.";
56    homepage = "https://github.com/dddevid/Musly";
57    licence = lib.licenses.cc-by-nc-sa-40;
58    platforms = ["x86_64-linux"];
59  };
60}