| 
									
										
										
										
											2024-04-29 00:36:27 +02:00
										 |  |  | "use strict"; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-07-18 21:37:45 +03:00
										 |  |  | import electron from "electron"; | 
					
						
							| 
									
										
										
										
											2024-07-18 22:07:57 +03:00
										 |  |  | import electronDebug from "electron-debug"; | 
					
						
							|  |  |  | import electronDl from "electron-dl"; | 
					
						
							| 
									
										
										
										
											2024-07-18 21:35:17 +03:00
										 |  |  | import sqlInit from "./src/services/sql_init.js"; | 
					
						
							|  |  |  | import windowService from "./src/services/window.js"; | 
					
						
							|  |  |  | import tray from "./src/services/tray.js"; | 
					
						
							| 
									
										
										
										
											2025-03-25 20:10:19 +02:00
										 |  |  | import options from "./src/services/options.js"; | 
					
						
							| 
									
										
										
										
											2024-04-29 00:36:27 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-07-27 16:40:59 +03:00
										 |  |  | import sourceMapSupport from "source-map-support"; | 
					
						
							|  |  |  | sourceMapSupport.install(); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-07-20 23:07:32 +03:00
										 |  |  | // Prevent Trilium starting twice on first install and on uninstall for the Windows installer.
 | 
					
						
							| 
									
										
										
										
											2025-01-09 18:07:02 +02:00
										 |  |  | if ((await import("electron-squirrel-startup")).default) { | 
					
						
							|  |  |  |     process.exit(0); | 
					
						
							| 
									
										
										
										
											2024-07-20 23:07:32 +03:00
										 |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-04-29 00:36:27 +02:00
										 |  |  | // Adds debug features like hotkeys for triggering dev tools and reload
 | 
					
						
							| 
									
										
										
										
											2024-07-18 22:07:57 +03:00
										 |  |  | electronDebug(); | 
					
						
							| 
									
										
										
										
											2024-04-29 00:36:27 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-07-18 22:07:57 +03:00
										 |  |  | electronDl({ saveAs: true }); | 
					
						
							| 
									
										
										
										
											2024-04-29 00:36:27 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | // needed for excalidraw export https://github.com/zadam/trilium/issues/4271
 | 
					
						
							| 
									
										
										
										
											2025-01-09 18:07:02 +02:00
										 |  |  | electron.app.commandLine.appendSwitch("enable-experimental-web-platform-features"); | 
					
						
							| 
									
										
										
										
											2025-03-26 08:30:56 +02:00
										 |  |  | electron.app.commandLine.appendSwitch("lang", options.getOptionOrNull("formattingLocale") ?? "en"); | 
					
						
							| 
									
										
										
										
											2024-04-29 00:36:27 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-02-03 01:09:01 +02:00
										 |  |  | electron.app.userAgentFallback = `${electron.app.getName()} ${electron.app.getVersion()}`; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-04-29 00:36:27 +02:00
										 |  |  | // Quit when all windows are closed, except on macOS. There, it's common
 | 
					
						
							|  |  |  | // for applications and their menu bar to stay active until the user quits
 | 
					
						
							|  |  |  | // explicitly with Cmd + Q.
 | 
					
						
							| 
									
										
										
										
											2024-05-01 11:32:08 +02:00
										 |  |  | electron.app.on("window-all-closed", () => { | 
					
						
							| 
									
										
										
										
											2025-01-09 18:07:02 +02:00
										 |  |  |     if (process.platform !== "darwin") { | 
					
						
							|  |  |  |         electron.app.quit(); | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2024-04-29 00:36:27 +02:00
										 |  |  | }); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-05-01 11:32:08 +02:00
										 |  |  | electron.app.on("ready", async () => { | 
					
						
							| 
									
										
										
										
											2025-01-09 18:07:02 +02:00
										 |  |  |     //    electron.app.setAppUserModelId('com.github.zadam.trilium');
 | 
					
						
							| 
									
										
										
										
											2024-04-29 00:36:27 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-01-09 18:07:02 +02:00
										 |  |  |     // if db is not initialized -> setup process
 | 
					
						
							|  |  |  |     // if db is initialized, then we need to wait until the migration process is finished
 | 
					
						
							|  |  |  |     if (sqlInit.isDbInitialized()) { | 
					
						
							|  |  |  |         await sqlInit.dbReady; | 
					
						
							| 
									
										
										
										
											2024-04-29 00:36:27 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-12-22 15:45:54 +02:00
										 |  |  |         await windowService.createMainWindow(electron.app); | 
					
						
							| 
									
										
										
										
											2025-01-09 18:07:02 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |         if (process.platform === "darwin") { | 
					
						
							|  |  |  |             electron.app.on("activate", async () => { | 
					
						
							|  |  |  |                 if (electron.BrowserWindow.getAllWindows().length === 0) { | 
					
						
							|  |  |  |                     await windowService.createMainWindow(electron.app); | 
					
						
							|  |  |  |                 } | 
					
						
							|  |  |  |             }); | 
					
						
							| 
									
										
										
										
											2024-04-29 00:36:27 +02:00
										 |  |  |         } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-01-09 18:07:02 +02:00
										 |  |  |         tray.createTray(); | 
					
						
							|  |  |  |     } else { | 
					
						
							|  |  |  |         await windowService.createSetupWindow(); | 
					
						
							|  |  |  |     } | 
					
						
							| 
									
										
										
										
											2024-04-29 00:36:27 +02:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-01-09 18:07:02 +02:00
										 |  |  |     await windowService.registerGlobalShortcuts(); | 
					
						
							| 
									
										
										
										
											2024-04-29 00:36:27 +02:00
										 |  |  | }); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-05-01 11:32:08 +02:00
										 |  |  | electron.app.on("will-quit", () => { | 
					
						
							| 
									
										
										
										
											2025-01-09 18:07:02 +02:00
										 |  |  |     electron.globalShortcut.unregisterAll(); | 
					
						
							| 
									
										
										
										
											2024-04-29 00:36:27 +02:00
										 |  |  | }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // this is to disable electron warning spam in the dev console (local development only)
 | 
					
						
							|  |  |  | process.env["ELECTRON_DISABLE_SECURITY_WARNINGS"] = "true"; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2025-01-09 18:07:02 +02:00
										 |  |  | await import("./src/main.js"); |