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}