Explorar o código

app: fix #218 and keep dock open on install

Jeffrey Morgan hai 1 ano
pai
achega
dbb3174cbc
Modificáronse 3 ficheiros con 12 adicións e 6 borrados
  1. 6 1
      app/src/app.tsx
  2. 5 4
      app/src/index.ts
  3. 1 1
      app/src/install.ts

+ 6 - 1
app/src/app.tsx

@@ -2,7 +2,7 @@ import { useState } from 'react'
 import copy from 'copy-to-clipboard'
 import { CheckIcon, DocumentDuplicateIcon } from '@heroicons/react/24/outline'
 import Store from 'electron-store'
-import { getCurrentWindow } from '@electron/remote'
+import { getCurrentWindow, app } from '@electron/remote'
 
 import { install } from './install'
 import OllamaIcon from './ollama.svg'
@@ -107,6 +107,11 @@ export default function () {
               <button
                 onClick={() => {
                   store.set('first-time-run', true)
+
+                  if (process.platform === 'darwin') {
+                    app.dock.hide()
+                  }
+
                   window.close()
                 }}
                 className='no-drag rounded-dm mx-auto w-[60%] rounded-md bg-black px-4 py-2 text-sm text-white hover:brightness-110'

+ 5 - 4
app/src/index.ts

@@ -36,6 +36,7 @@ app.on('ready', () => {
   const gotTheLock = app.requestSingleInstanceLock()
   if (!gotTheLock) {
     app.exit(0)
+    return
   }
 
   app.on('second-instance', () => {
@@ -56,10 +57,6 @@ app.on('ready', () => {
   init()
 })
 
-if (process.platform === 'darwin') {
-  app.dock.hide()
-}
-
 function firstRunWindow() {
   // Create the browser window.
   welcomeWindow = new BrowserWindow({
@@ -198,6 +195,10 @@ function init() {
   server()
 
   if (store.get('first-time-run') && installed()) {
+    if (process.platform === 'darwin') {
+      app.dock.hide()
+    }
+
     app.setLoginItemSettings({ openAtLogin: app.getLoginItemSettings().openAtLogin })
     return
   }

+ 1 - 1
app/src/install.ts

@@ -15,7 +15,7 @@ export function installed() {
 export async function install() {
   const command = `do shell script "mkdir -p ${path.dirname(
     symlinkPath
-  )} && ln -F -s ${ollama} ${symlinkPath}" with administrator privileges`
+  )} && ln -F -s \\"${ollama}\\" \\"${symlinkPath}\\"" with administrator privileges`
 
   await exec(`osascript -e '${command}'`)
 }