main
 1# Modify from https://github.com/bet4it/nur-packages/blob/cad7c4585ef10f189352ca894866d345081a44ce/pkgs/kelivo/package.nix
 2{
 3  lib,
 4  selfLib,
 5  flutter347,
 6  fetchFromGitHub,
 7  copyDesktopItems,
 8  makeDesktopItem,
 9  gst_all_1,
10  keybinder3,
11  libappindicator,
12}:
13flutter347.buildFlutterApplication (finalAttrs: {
14  pname = "kelivo";
15  version = "1.3.0";
16
17  src = fetchFromGitHub {
18    owner = "Chevey339";
19    repo = "kelivo";
20    tag = "v${finalAttrs.version}";
21    hash = "sha256-sQZPgIS6ZPnG1KLIgKCKJzWFnhpvURb+ZQcdsMvNXOk=";
22  };
23
24  passthru.updateScript = [(toString ./update.sh)];
25
26  pubspecLock = lib.importJSON ./pubspec.lock.json;
27
28  customSourceBuilders.sqlite3 = selfLib.sqlite3SourceBuilder;
29
30  nativeBuildInputs = [
31    copyDesktopItems
32  ];
33
34  buildInputs = [
35    gst_all_1.gst-plugins-base
36    gst_all_1.gstreamer
37    keybinder3
38    libappindicator
39  ];
40
41  desktopItems = [
42    (makeDesktopItem {
43      name = "com.psyche.kelivo";
44      exec = "kelivo";
45      icon = "com.psyche.kelivo";
46      desktopName = "Kelivo";
47      startupWMClass = "com.psyche.kelivo";
48      comment = "An LLM chat client";
49      categories = [
50        "Network"
51        "Chat"
52      ];
53    })
54  ];
55
56  postInstall = ''
57    install -Dm644 assets/app_icon.png \
58      $out/share/icons/hicolor/512x512/apps/com.psyche.kelivo.png
59    ln -s com.psyche.kelivo.png \
60      $out/share/icons/hicolor/512x512/apps/kelivo.png
61  '';
62
63  meta = {
64    description = "LLM chat client";
65    homepage = "https://github.com/Chevey339/kelivo";
66    license = lib.licenses.agpl3Only;
67    platforms = ["x86_64-linux" "aarch64-linux"];
68  };
69})