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}