| 
									
										
										
										
											2024-04-29 00:36:27 +02:00
										 |  |  | "use strict"; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-05-01 11:32:08 +02:00
										 |  |  | import electron = require("electron"); | 
					
						
							|  |  |  | import sqlInit = require("./src/services/sql_init"); | 
					
						
							|  |  |  | import appIconService = require("./src/services/app_icon"); | 
					
						
							|  |  |  | import windowService = require("./src/services/window"); | 
					
						
							|  |  |  | import tray = require("./src/services/tray"); | 
					
						
							| 
									
										
										
										
											2024-04-29 00:36:27 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  | // Adds debug features like hotkeys for triggering dev tools and reload
 | 
					
						
							|  |  |  | require("electron-debug")(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | appIconService.installLocalAppIcon(); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | require("electron-dl")({ saveAs: true }); | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | // needed for excalidraw export https://github.com/zadam/trilium/issues/4271
 | 
					
						
							| 
									
										
										
										
											2024-05-01 11:32:08 +02:00
										 |  |  | electron.app.commandLine.appendSwitch( | 
					
						
							|  |  |  |   "enable-experimental-web-platform-features" | 
					
						
							|  |  |  | ); | 
					
						
							| 
									
										
										
										
											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", () => { | 
					
						
							| 
									
										
										
										
											2024-04-29 00:36:27 +02:00
										 |  |  |   if (process.platform !== "darwin") { | 
					
						
							| 
									
										
										
										
											2024-05-01 11:32:08 +02:00
										 |  |  |     electron.app.quit(); | 
					
						
							| 
									
										
										
										
											2024-04-29 00:36:27 +02:00
										 |  |  |   } | 
					
						
							|  |  |  | }); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-05-01 11:32:08 +02:00
										 |  |  | electron.app.on("ready", async () => { | 
					
						
							|  |  |  |   //    electron.app.setAppUserModelId('com.github.zadam.trilium');
 | 
					
						
							| 
									
										
										
										
											2024-04-29 00:36:27 +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-05-01 11:32:08 +02:00
										 |  |  |     await windowService.createMainWindow(electron.app); | 
					
						
							| 
									
										
										
										
											2024-04-29 00:36:27 +02:00
										 |  |  | 
 | 
					
						
							|  |  |  |     if (process.platform === "darwin") { | 
					
						
							| 
									
										
										
										
											2024-05-01 11:32:08 +02:00
										 |  |  |       electron.app.on("activate", async () => { | 
					
						
							|  |  |  |         if (electron.BrowserWindow.getAllWindows().length === 0) { | 
					
						
							|  |  |  |           await windowService.createMainWindow(electron.app); | 
					
						
							| 
									
										
										
										
											2024-04-29 00:36:27 +02:00
										 |  |  |         } | 
					
						
							|  |  |  |       }); | 
					
						
							|  |  |  |     } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |     tray.createTray(); | 
					
						
							|  |  |  |   } else { | 
					
						
							|  |  |  |     await windowService.createSetupWindow(); | 
					
						
							|  |  |  |   } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |   await windowService.registerGlobalShortcuts(); | 
					
						
							|  |  |  | }); | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2024-05-01 11:32:08 +02:00
										 |  |  | electron.app.on("will-quit", () => { | 
					
						
							|  |  |  |   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"; | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | require("./src/www.js"); |