Просмотр исходного кода

fix(nix): add desktop application entry (#8972)

Caleb Norton 2 месяцев назад
Родитель
Сommit
aca1eb6b5b
1 измененных файлов с 22 добавлено и 0 удалено
  1. 22 0
      nix/desktop.nix

+ 22 - 0
nix/desktop.nix

@@ -15,6 +15,8 @@
   cargo,
   rustc,
   makeBinaryWrapper,
+  copyDesktopItems,
+  makeDesktopItem,
   nodejs,
   jq,
 }:
@@ -57,12 +59,28 @@ rustPlatform.buildRustPackage rec {
     pkg-config
     bun
     makeBinaryWrapper
+    copyDesktopItems
     cargo
     rustc
     nodejs
     jq
   ];
 
+  # based on packages/desktop/src-tauri/release/appstream.metainfo.xml
+  desktopItems = lib.optionals stdenv.isLinux [
+    (makeDesktopItem {
+      name = "ai.opencode.opencode";
+      desktopName = "OpenCode";
+      comment = "Open source AI coding agent";
+      exec = "opencode-desktop";
+      icon = "opencode";
+      terminal = false;
+      type = "Application";
+      categories = [ "Development" "IDE" ];
+      startupWMClass = "opencode";
+    })
+  ];
+
   buildInputs = [
     openssl
   ]
@@ -121,6 +139,10 @@ rustPlatform.buildRustPackage rec {
   # It looks for them in the location specified in tauri.conf.json.
 
   postInstall = lib.optionalString stdenv.isLinux ''
+    # Install icon
+    mkdir -p $out/share/icons/hicolor/128x128/apps
+    cp ../../../packages/desktop/src-tauri/icons/prod/128x128.png $out/share/icons/hicolor/128x128/apps/opencode.png
+
     # Wrap the binary to ensure it finds the libraries
     wrapProgram $out/bin/opencode-desktop \
       --prefix LD_LIBRARY_PATH : ${