main
1{
2 lib,
3 fetchFromGitHub,
4 flutter341,
5 libappindicator,
6 mpv-unwrapped,
7 copyDesktopItems,
8 makeDesktopItem,
9}:
10flutter341.buildFlutterApplication rec {
11 pname = "particle-music";
12 version = "2.2.1";
13
14 src = fetchFromGitHub {
15 owner = "AfalpHy";
16 repo = "ParticleMusic";
17 tag = "v${version}";
18 hash = "sha256-b6c5ZDmbTo0nRvoVMhAq+xbfTw0tpAwHE0cbW0qWXlU=";
19 };
20
21 pubspecLock = lib.importJSON ./pubspec.lock.json;
22
23 gitHashes = {
24 audio_service_win = "sha256-MkZj8EmIe6WQmDFT+lBLdHTBLjLwh1YonZoZYPG4W7I=";
25 audio_tags_lofty = "sha256-h1bflJY1SaqYWnqkz7D9thMaObXq8J0MriA6wDz0WdM=";
26 media_kit_libs_android_audio = "sha256-27u8cPSThJFvYV1iMWjFMXfqrpQPtT9OwoezrKXtyt4=";
27 media_kit_libs_ios_audio = "sha256-27u8cPSThJFvYV1iMWjFMXfqrpQPtT9OwoezrKXtyt4=";
28 media_kit_libs_macos_audio = "sha256-27u8cPSThJFvYV1iMWjFMXfqrpQPtT9OwoezrKXtyt4=";
29 media_kit_libs_windows_audio = "sha256-27u8cPSThJFvYV1iMWjFMXfqrpQPtT9OwoezrKXtyt4=";
30 super_context_menu = "sha256-9D1BOJ+Deky/hktMw6zXelKVBlkmLtL5F9n7mbwHvo4=";
31 tray_manager = "sha256-JvT62iBbTVr2CAyCoAVpAoIywCqjxx4TkTgljH6BnYE=";
32 window_manager = "sha256-Xt9m+YzLTVKDF5Gk165MVy6yx81O/1Arqqk0caTGoXc=";
33 };
34
35 nativeBuildInputs = [copyDesktopItems];
36
37 buildInputs = [
38 libappindicator
39 ];
40
41 extraWrapProgramArgs = ''
42 --prefix LD_LIBRARY_PATH : $out/app/ParticleMusic/lib:${lib.makeLibraryPath [mpv-unwrapped]}
43 '';
44
45 postFixup = ''
46 mv "$out/bin/ParticleMusic" "$out/bin/${pname}"
47 '';
48
49 desktopItems = [
50 (makeDesktopItem {
51 name = "ParticleMusic";
52 exec = pname;
53 icon = "${src}/assets/app_icon.png";
54 genericName = "Music Player";
55 desktopName = "Particle Music";
56 categories = ["AudioVideo" "Audio" "Player" "Music"];
57 })
58 ];
59
60 meta = {
61 description = "A cross-platform local music player based on Flutter";
62 homepage = "https://github.com/AfalpHy/ParticleMusic";
63 licence = with lib.licenses; [asl20];
64 platforms = lib.platforms.linux;
65 };
66}