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