Explorar o código

add app to open at login by default

Eva Ho hai 1 ano
pai
achega
bc54daf2bc
Modificáronse 1 ficheiros con 15 adicións e 1 borrados
  1. 15 1
      app/src/index.ts

+ 15 - 1
app/src/index.ts

@@ -1,5 +1,6 @@
 import { spawn, exec } from 'child_process'
 import { app, autoUpdater, dialog, Tray, Menu } from 'electron'
+import Store from 'electron-store'
 import * as path from 'path'
 import * as fs from 'fs'
 
@@ -7,6 +8,8 @@ import { analytics, id } from './telemetry'
 
 require('@electron/remote/main').initialize()
 
+
+const store = new Store();
 let tray: Tray | null = null
 
 const SingleInstanceLock = app.requestSingleInstanceLock()
@@ -23,7 +26,9 @@ const createSystemtray = () => {
 
   tray = new Tray(iconPath)
 
-  const contextMenu = Menu.buildFromTemplate([{ role: 'quit', label: 'Quit Ollama', accelerator: 'Command+Q' }])
+  const contextMenu = Menu.buildFromTemplate([
+    { role: 'quit', label: 'Quit Ollama', accelerator: 'Command+Q' }
+  ])
 
   tray.setContextMenu(contextMenu)
   tray.setToolTip('Ollama')
@@ -107,6 +112,15 @@ app.on('ready', () => {
   if (process.platform === 'darwin') {
     app.dock.hide()
 
+    if (!store.has('first-time-run')) {
+      // This is the first run
+      app.setLoginItemSettings({ openAtLogin: true })
+      store.set('first-time-run', false);
+    } else {
+      // The app has been run before
+      app.setLoginItemSettings({ openAtLogin: app.getLoginItemSettings().openAtLogin })
+    }
+
     if (!app.isInApplicationsFolder()) {
       const chosen = dialog.showMessageBoxSync({
         type: 'question',