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})