mirror of
				https://github.com/TriliumNext/Notes.git
				synced 2025-10-31 21:11:30 +08:00 
			
		
		
		
	feat(flake): desktop item, wrapped binary
This commit is contained in:
		
							parent
							
								
									fc4ec9a045
								
							
						
					
					
						commit
						d506283e48
					
				
							
								
								
									
										8
									
								
								flake.lock
									
									
									
										generated
									
									
									
								
							
							
						
						
									
										8
									
								
								flake.lock
									
									
									
										generated
									
									
									
								
							| @ -20,16 +20,16 @@ | |||||||
|     }, |     }, | ||||||
|     "nixpkgs": { |     "nixpkgs": { | ||||||
|       "locked": { |       "locked": { | ||||||
|         "lastModified": 1748460289, |         "lastModified": 1748437600, | ||||||
|         "narHash": "sha256-7doLyJBzCllvqX4gszYtmZUToxKvMUrg45EUWaUYmBg=", |         "narHash": "sha256-hYKMs3ilp09anGO7xzfGs3JqEgUqFMnZ8GMAqI6/k04=", | ||||||
|         "owner": "nixos", |         "owner": "nixos", | ||||||
|         "repo": "nixpkgs", |         "repo": "nixpkgs", | ||||||
|         "rev": "96ec055edbe5ee227f28cdbc3f1ddf1df5965102", |         "rev": "7282cb574e0607e65224d33be8241eae7cfe0979", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       }, |       }, | ||||||
|       "original": { |       "original": { | ||||||
|         "owner": "nixos", |         "owner": "nixos", | ||||||
|         "ref": "nixos-unstable", |         "ref": "nixos-25.05", | ||||||
|         "repo": "nixpkgs", |         "repo": "nixpkgs", | ||||||
|         "type": "github" |         "type": "github" | ||||||
|       } |       } | ||||||
|  | |||||||
							
								
								
									
										76
									
								
								flake.nix
									
									
									
									
									
								
							
							
						
						
									
										76
									
								
								flake.nix
									
									
									
									
									
								
							| @ -1,28 +1,50 @@ | |||||||
| { | { | ||||||
|   description = "A very basic flake"; |   description = "TriliumNext Notes (experimental flake)"; | ||||||
| 
 | 
 | ||||||
|   inputs = { |   inputs = { | ||||||
|     nixpkgs.url = "github:nixos/nixpkgs?ref=nixos-unstable"; |     nixpkgs.url = "github:nixos/nixpkgs/nixos-25.05"; | ||||||
|     flake-utils.url = "github:numtide/flake-utils"; |     flake-utils.url = "github:numtide/flake-utils"; | ||||||
|   }; |   }; | ||||||
| 
 | 
 | ||||||
|   outputs = { self, nixpkgs, flake-utils }: |   outputs = | ||||||
|     flake-utils.lib.eachDefaultSystem (system: |     { | ||||||
|  |       self, | ||||||
|  |       nixpkgs, | ||||||
|  |       flake-utils, | ||||||
|  |     }: | ||||||
|  |     flake-utils.lib.eachDefaultSystem ( | ||||||
|  |       system: | ||||||
|       let |       let | ||||||
|  |         packageJSON = builtins.fromJSON (builtins.readFile ./package.json); | ||||||
|         pkgs = import nixpkgs { inherit system; }; |         pkgs = import nixpkgs { inherit system; }; | ||||||
|         electron = pkgs.electron_35; |         electron = pkgs.electron_35; | ||||||
|         build = pkgs.stdenv.mkDerivation (finalAttrs: { |         inherit (pkgs) | ||||||
|  |           copyDesktopItems | ||||||
|  |           lib | ||||||
|  |           makeBinaryWrapper | ||||||
|  |           makeDesktopItem | ||||||
|  |           nodejs | ||||||
|  |           pnpm | ||||||
|  |           stdenv | ||||||
|  |           wrapGAppsHook3 | ||||||
|  |           ; | ||||||
|  |         desktop = stdenv.mkDerivation (finalAttrs: { | ||||||
|           pname = "triliumnext-desktop"; |           pname = "triliumnext-desktop"; | ||||||
|           version = "0.94.0"; |           version = packageJSON.version; | ||||||
|           src = pkgs.lib.cleanSource ./.; |           src = lib.cleanSource ./.; | ||||||
| 
 | 
 | ||||||
|           nativeBuildInputs = with pkgs; [ |           nativeBuildInputs = [ | ||||||
|             pnpm.configHook |             pnpm.configHook | ||||||
|             nodejs |             nodejs | ||||||
|             nodejs.python |             nodejs.python | ||||||
|  |             copyDesktopItems | ||||||
|  |             makeBinaryWrapper | ||||||
|  |             wrapGAppsHook3 | ||||||
|           ]; |           ]; | ||||||
| 
 | 
 | ||||||
|           buildPhase = '' |           buildPhase = '' | ||||||
|  |             runHook preBuild | ||||||
|  | 
 | ||||||
|             # Disable NX interaction |             # Disable NX interaction | ||||||
|             export NX_TUI=false |             export NX_TUI=false | ||||||
|             export NX_DAEMON=false |             export NX_DAEMON=false | ||||||
| @ -33,20 +55,48 @@ | |||||||
|             # Rebuild dependencies |             # Rebuild dependencies | ||||||
|             export npm_config_nodedir=${electron.headers} |             export npm_config_nodedir=${electron.headers} | ||||||
|             pnpm nx run desktop:rebuild-deps --outputStyle stream --verbose |             pnpm nx run desktop:rebuild-deps --outputStyle stream --verbose | ||||||
|  | 
 | ||||||
|  |             runHook postBuild | ||||||
|           ''; |           ''; | ||||||
| 
 | 
 | ||||||
|           installPhase = '' |           installPhase = '' | ||||||
|             mkdir -p $out             |             runHook preInstall | ||||||
|             cp -r apps/desktop/dist $out | 
 | ||||||
|  |             mkdir -p $out/{bin,opt/trilium} | ||||||
|  |             cp --archive apps/desktop/dist/* $out/opt/trilium | ||||||
|  |             makeWrapper ${lib.getExe electron} $out/bin/trilium \ | ||||||
|  |               "''${gappsWrapperArgs[@]}" \ | ||||||
|  |               --set-default ELECTRON_IS_DEV 0 \ | ||||||
|  |               --add-flags $out/opt/trilium/main.cjs | ||||||
|  | 
 | ||||||
|  |             runHook postInstall | ||||||
|           ''; |           ''; | ||||||
| 
 | 
 | ||||||
|           pnpmDeps = pkgs.pnpm.fetchDeps { |           desktopItems = [ | ||||||
|  |             (makeDesktopItem { | ||||||
|  |               name = "TriliumNext Notes"; | ||||||
|  |               exec = finalAttrs.meta.mainProgram; | ||||||
|  |               icon = "trilium"; | ||||||
|  |               comment = finalAttrs.meta.description; | ||||||
|  |               desktopName = "TriliumNext Notes"; | ||||||
|  |               categories = [ "Office" ]; | ||||||
|  |               startupWMClass = "Trilium Notes Next"; | ||||||
|  |             }) | ||||||
|  |           ]; | ||||||
|  | 
 | ||||||
|  |           pnpmDeps = pnpm.fetchDeps { | ||||||
|             inherit (finalAttrs) pname version src; |             inherit (finalAttrs) pname version src; | ||||||
|             hash = "sha256-xC0u1h92wtthylOAw+IF9mpFi0c4xajJhUcA9pqzcAw="; |             hash = "sha256-xC0u1h92wtthylOAw+IF9mpFi0c4xajJhUcA9pqzcAw="; | ||||||
|           }; |           }; | ||||||
|  | 
 | ||||||
|  |           meta = { | ||||||
|  |             description = "Free and open-source, cross-platform hierarchical note taking application with focus on building large personal knowledge bases"; | ||||||
|  |             mainProgram = "trilium"; | ||||||
|  |           }; | ||||||
|         }); |         }); | ||||||
|       in { |       in | ||||||
|         packages.default = build; |       { | ||||||
|  |         packages.default = desktop; | ||||||
|       } |       } | ||||||
|     ); |     ); | ||||||
| } | } | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 FliegendeWurst
						FliegendeWurst