diff --git a/.forgejo/workflows/Linux.yaml b/.forgejo/workflows/Linux.yaml new file mode 100644 index 00000000..83bff492 --- /dev/null +++ b/.forgejo/workflows/Linux.yaml @@ -0,0 +1,51 @@ +name: Linux Build + +on: + push: + branches: [ "main" ] + pull_request: + branches: [ "main" ] + +jobs: + publish: + + runs-on: ubuntu-latest + + steps: + - name: Checkout repo + uses: actions/checkout@v4 + + - name: Setup Node + uses: actions/setup-node@v4 + with: + node-version: 24 + + - name: Install deps + run: npm ci + + - name: Sync capacitor + run: npx cap sync + + - name: Generate assets + run: npx capacitor-assets generate --pwa + + - name: Update web app + run: npx cap copy + + - name: Update electron app + run: npx cap copy electron + + - name: Convert icon + run: magick -background none -density 300 -resize 256x256 ./assets/icon.svg ./icons/icon.png + + - name: Copy icon + run: cp ./icons/icon.png ./electron/assets/icon.png + + - name: Build + run: mkdir -p build && cd build && npx electron-packager ../electron miarven --platform=linux --arch=x64 --icon=../icons/icon.png --overwrite --asar + + - name: Upload Artifact + uses: actions/upload-artifact@v3 + with: + name: Windows + path: ./build/miarven-linux-x64/ \ No newline at end of file diff --git a/.forgejo/workflows/Windows.yaml b/.forgejo/workflows/Windows.yaml new file mode 100644 index 00000000..8b41570b --- /dev/null +++ b/.forgejo/workflows/Windows.yaml @@ -0,0 +1,51 @@ +name: Linux Build + +on: + push: + branches: [ "main" ] + pull_request: + branches: [ "main" ] + +jobs: + publish: + + runs-on: ubuntu-latest + + steps: + - name: Checkout repo + uses: actions/checkout@v4 + + - name: Setup Node + uses: actions/setup-node@v4 + with: + node-version: 24 + + - name: Install deps + run: npm ci + + - name: Sync capacitor + run: npx cap sync + + - name: Generate assets + run: npx capacitor-assets generate --pwa + + - name: Update web app + run: npx cap copy + + - name: Update electron app + run: npx cap copy electron + + - name: Convert icon + run: magick -background none -density 300 -define icon:auto-resize=256,128,64,48,32,16 ./assets/icon.svg ./icons/icon.ico + + - name: Copy icon + run: cp ./icons/icon.ico ./electron/assets/icon.ico + + - name: Build + run: mkdir -p build && cd build && npx electron-packager ../electron miarven --platform=win32 --arch=x64 --icon=../icons/icon.png --overwrite --asar + + - name: Upload Artifact + uses: actions/upload-artifact@v3 + with: + name: Windows + path: ./build/miarven-win32-x64/ \ No newline at end of file diff --git a/android/app/src/main/res/drawable-land-hdpi/splash.png b/android/app/src/main/res/drawable-land-hdpi/splash.png index 49376af7..da94cea9 100644 Binary files a/android/app/src/main/res/drawable-land-hdpi/splash.png and b/android/app/src/main/res/drawable-land-hdpi/splash.png differ diff --git a/android/app/src/main/res/drawable-land-ldpi/splash.png b/android/app/src/main/res/drawable-land-ldpi/splash.png index 7e583296..6e37dbd5 100644 Binary files a/android/app/src/main/res/drawable-land-ldpi/splash.png and b/android/app/src/main/res/drawable-land-ldpi/splash.png differ diff --git a/android/app/src/main/res/drawable-land-mdpi/splash.png b/android/app/src/main/res/drawable-land-mdpi/splash.png index 3f61a70d..ac05792b 100644 Binary files a/android/app/src/main/res/drawable-land-mdpi/splash.png and b/android/app/src/main/res/drawable-land-mdpi/splash.png differ diff --git a/android/app/src/main/res/drawable-land-xhdpi/splash.png b/android/app/src/main/res/drawable-land-xhdpi/splash.png index f1d62513..62424ffb 100644 Binary files a/android/app/src/main/res/drawable-land-xhdpi/splash.png and b/android/app/src/main/res/drawable-land-xhdpi/splash.png differ diff --git a/android/app/src/main/res/drawable-land-xxhdpi/splash.png b/android/app/src/main/res/drawable-land-xxhdpi/splash.png index a81af1b0..04edf4f1 100644 Binary files a/android/app/src/main/res/drawable-land-xxhdpi/splash.png and b/android/app/src/main/res/drawable-land-xxhdpi/splash.png differ diff --git a/android/app/src/main/res/drawable-land-xxxhdpi/splash.png b/android/app/src/main/res/drawable-land-xxxhdpi/splash.png index f3003058..272e3b0b 100644 Binary files a/android/app/src/main/res/drawable-land-xxxhdpi/splash.png and b/android/app/src/main/res/drawable-land-xxxhdpi/splash.png differ diff --git a/android/app/src/main/res/drawable-port-hdpi/splash.png b/android/app/src/main/res/drawable-port-hdpi/splash.png index c172e05f..95d57947 100644 Binary files a/android/app/src/main/res/drawable-port-hdpi/splash.png and b/android/app/src/main/res/drawable-port-hdpi/splash.png differ diff --git a/android/app/src/main/res/drawable-port-ldpi/splash.png b/android/app/src/main/res/drawable-port-ldpi/splash.png index 85e50c05..fb86a2d1 100644 Binary files a/android/app/src/main/res/drawable-port-ldpi/splash.png and b/android/app/src/main/res/drawable-port-ldpi/splash.png differ diff --git a/android/app/src/main/res/drawable-port-mdpi/splash.png b/android/app/src/main/res/drawable-port-mdpi/splash.png index b45f9a61..4479ee4d 100644 Binary files a/android/app/src/main/res/drawable-port-mdpi/splash.png and b/android/app/src/main/res/drawable-port-mdpi/splash.png differ diff --git a/android/app/src/main/res/drawable-port-xhdpi/splash.png b/android/app/src/main/res/drawable-port-xhdpi/splash.png index 556a7e27..c7542e52 100644 Binary files a/android/app/src/main/res/drawable-port-xhdpi/splash.png and b/android/app/src/main/res/drawable-port-xhdpi/splash.png differ diff --git a/android/app/src/main/res/drawable-port-xxhdpi/splash.png b/android/app/src/main/res/drawable-port-xxhdpi/splash.png index 841529cb..80d1db30 100644 Binary files a/android/app/src/main/res/drawable-port-xxhdpi/splash.png and b/android/app/src/main/res/drawable-port-xxhdpi/splash.png differ diff --git a/android/app/src/main/res/drawable-port-xxxhdpi/splash.png b/android/app/src/main/res/drawable-port-xxxhdpi/splash.png index 26dfdc97..0ef30a8f 100644 Binary files a/android/app/src/main/res/drawable-port-xxxhdpi/splash.png and b/android/app/src/main/res/drawable-port-xxxhdpi/splash.png differ diff --git a/android/app/src/main/res/drawable/splash.png b/android/app/src/main/res/drawable/splash.png index b45f9a61..4479ee4d 100644 Binary files a/android/app/src/main/res/drawable/splash.png and b/android/app/src/main/res/drawable/splash.png differ diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher_background.png b/android/app/src/main/res/mipmap-hdpi/ic_launcher_background.png index 1a355f2c..0feb4c7d 100644 Binary files a/android/app/src/main/res/mipmap-hdpi/ic_launcher_background.png and b/android/app/src/main/res/mipmap-hdpi/ic_launcher_background.png differ diff --git a/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png b/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png index df1c40ea..59678412 100644 Binary files a/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png and b/android/app/src/main/res/mipmap-hdpi/ic_launcher_foreground.png differ diff --git a/android/app/src/main/res/mipmap-ldpi/ic_launcher_background.png b/android/app/src/main/res/mipmap-ldpi/ic_launcher_background.png index ad07eb14..b999324d 100644 Binary files a/android/app/src/main/res/mipmap-ldpi/ic_launcher_background.png and b/android/app/src/main/res/mipmap-ldpi/ic_launcher_background.png differ diff --git a/android/app/src/main/res/mipmap-ldpi/ic_launcher_foreground.png b/android/app/src/main/res/mipmap-ldpi/ic_launcher_foreground.png index 93cce128..395b1e91 100644 Binary files a/android/app/src/main/res/mipmap-ldpi/ic_launcher_foreground.png and b/android/app/src/main/res/mipmap-ldpi/ic_launcher_foreground.png differ diff --git a/android/app/src/main/res/mipmap-mdpi/ic_launcher_background.png b/android/app/src/main/res/mipmap-mdpi/ic_launcher_background.png index 562e541c..5b990d7b 100644 Binary files a/android/app/src/main/res/mipmap-mdpi/ic_launcher_background.png and b/android/app/src/main/res/mipmap-mdpi/ic_launcher_background.png differ diff --git a/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png b/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png index 11b3a485..7d4bc845 100644 Binary files a/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png and b/android/app/src/main/res/mipmap-mdpi/ic_launcher_foreground.png differ diff --git a/android/app/src/main/res/mipmap-xhdpi/ic_launcher_background.png b/android/app/src/main/res/mipmap-xhdpi/ic_launcher_background.png index 117f3721..adf06478 100644 Binary files a/android/app/src/main/res/mipmap-xhdpi/ic_launcher_background.png and b/android/app/src/main/res/mipmap-xhdpi/ic_launcher_background.png differ diff --git a/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png b/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png index 7c772f6a..601e1ad6 100644 Binary files a/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png and b/android/app/src/main/res/mipmap-xhdpi/ic_launcher_foreground.png differ diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_background.png b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_background.png index 0735875a..5da73954 100644 Binary files a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_background.png and b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_background.png differ diff --git a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png index a9028041..44101964 100644 Binary files a/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png and b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.png differ diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_background.png b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_background.png index 3b14e419..62d0494e 100644 Binary files a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_background.png and b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_background.png differ diff --git a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png index 595f2470..cf94d618 100644 Binary files a/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png and b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.png differ diff --git a/build-android.sh b/build-android.sh index 3d584dc7..e36e4a05 100755 --- a/build-android.sh +++ b/build-android.sh @@ -1,2 +1,3 @@ +npx capacitor-assets generate --android cd android ./gradlew assembleRelease \ No newline at end of file diff --git a/build-linux.sh b/build-linux.sh index f591884d..7e39ec3f 100755 --- a/build-linux.sh +++ b/build-linux.sh @@ -1,3 +1,7 @@ +npx cap copy electron +npx capacitor-assets generate --pwa +magick -background none -density 300 -resize 256x256 ./assets/icon.svg ./icons/icon.png +cp ./icons/icon.png ./electron/assets/icon.png mkdir build cd build -npx electron-packager ../electron miarven --platform=linux --arch=x64 \ No newline at end of file +npx electron-packager ../electron miarven --platform=linux --arch=x64 --icon=../icons/icon.png --overwrite --asar \ No newline at end of file diff --git a/build-windows.sh b/build-windows.sh index 9a1101e2..87ebf712 100755 --- a/build-windows.sh +++ b/build-windows.sh @@ -1,3 +1,8 @@ +npx cap copy electron +npx capacitor-assets generate --pwa +magick -background none -density 300 -define icon:auto-resize=256,128,64,48,32,16 ./assets/icon.svg ./icons/icon.ico +cp ./icons/icon.ico ./electron/assets/icon.ico mkdir build cd build -npx electron-packager ../electron miarven --platform=win32 --arch=x64 \ No newline at end of file +npx electron-packager ../electron miarven --platform=win32 --arch=x64 --icon=../icons/icon.ico --overwrite --asar + diff --git a/electron/assets/appIcon.ico b/electron/assets/appIcon.ico deleted file mode 100644 index 1aea5a5c..00000000 Binary files a/electron/assets/appIcon.ico and /dev/null differ diff --git a/electron/assets/appIcon.png b/electron/assets/appIcon.png deleted file mode 100644 index 7e8612e1..00000000 Binary files a/electron/assets/appIcon.png and /dev/null differ diff --git a/electron/assets/icon.ico b/electron/assets/icon.ico new file mode 100644 index 00000000..001d7d6c Binary files /dev/null and b/electron/assets/icon.ico differ diff --git a/electron/assets/icon.png b/electron/assets/icon.png new file mode 100644 index 00000000..009ef14d Binary files /dev/null and b/electron/assets/icon.png differ diff --git a/electron/assets/splash.gif b/electron/assets/splash.gif deleted file mode 100644 index 5ee8351b..00000000 Binary files a/electron/assets/splash.gif and /dev/null differ diff --git a/electron/assets/splash.png b/electron/assets/splash.png deleted file mode 100644 index ce554d18..00000000 Binary files a/electron/assets/splash.png and /dev/null differ diff --git a/electron/src/setup.ts b/electron/src/setup.ts index e7c957bf..de092b19 100644 --- a/electron/src/setup.ts +++ b/electron/src/setup.ts @@ -7,7 +7,8 @@ import { import chokidar from 'chokidar'; import type { MenuItemConstructorOptions } from 'electron'; import { app, BrowserWindow, Menu, MenuItem, nativeImage, Tray, session } from 'electron'; -import electronIsDev from 'electron-is-dev'; +//import electronIsDev from 'electron-is-dev'; +var electronIsDev = false; import electronServe from 'electron-serve'; import windowStateKeeper from 'electron-window-state'; import { join } from 'path'; @@ -99,8 +100,14 @@ export class ElectronCapacitorApp { async init(): Promise { const icon = nativeImage.createFromPath( - join(app.getAppPath(), 'assets', process.platform === 'win32' ? 'appIcon.ico' : 'appIcon.png') + join(app.getAppPath(), 'assets', process.platform === 'win32' ? 'icon.ico' : 'icon.png') ); + + const appName = "olcxja.miarven" + app.setName(appName); + + app.setAppUserModelId(appName); + this.mainWindowState = windowStateKeeper({ defaultWidth: 1000, defaultHeight: 800, @@ -114,6 +121,7 @@ export class ElectronCapacitorApp { y: this.mainWindowState.y, width: this.mainWindowState.width, height: this.mainWindowState.height, + autoHideMenuBar: true, webPreferences: { nodeIntegration: true, contextIsolation: true, @@ -122,6 +130,7 @@ export class ElectronCapacitorApp { preload: preloadPath, }, }); + this.mainWindowState.manage(this.MainWindow); if (this.CapacitorFileConfig.backgroundColor) { @@ -163,31 +172,18 @@ export class ElectronCapacitorApp { } // Setup the main manu bar at the top of our window. - Menu.setApplicationMenu(Menu.buildFromTemplate(this.AppMenuBarMenuTemplate)); + //Menu.setApplicationMenu(Menu.buildFromTemplate(this.AppMenuBarMenuTemplate)); + Menu.setApplicationMenu(null); - // If the splashscreen is enabled, show it first while the main window loads then switch it out for the main window, or just load the main window from the start. - if (this.CapacitorFileConfig.electron?.splashScreenEnabled) { - this.SplashScreen = new CapacitorSplashScreen({ - imageFilePath: join( - app.getAppPath(), - 'assets', - this.CapacitorFileConfig.electron?.splashScreenImageName ?? 'splash.png' - ), - windowWidth: 400, - windowHeight: 400, - }); - this.SplashScreen.init(this.loadMainWindow, this); - } else { - this.loadMainWindow(this); - } + + this.loadMainWindow(this); + // Security this.MainWindow.webContents.setWindowOpenHandler((details) => { - if (!details.url.includes(this.customScheme)) { - return { action: 'deny' }; - } else { + return { action: 'allow' }; - } + }); this.MainWindow.webContents.on('will-navigate', (event, _newURL) => { if (!this.MainWindow.webContents.getURL().includes(this.customScheme)) { @@ -207,12 +203,14 @@ export class ElectronCapacitorApp { this.MainWindow.show(); } setTimeout(() => { - if (electronIsDev) { - this.MainWindow.webContents.openDevTools(); - } + CapElectronEventEmitter.emit('CAPELECTRON_DeeplinkListenerInitialized', ''); }, 400); }); + + this.MainWindow.setMenu(null); + this.MainWindow.setAutoHideMenuBar(true); + this.MainWindow.removeMenu(); } } diff --git a/icons/icon.ico b/icons/icon.ico new file mode 100644 index 00000000..001d7d6c Binary files /dev/null and b/icons/icon.ico differ diff --git a/icons/icon.png b/icons/icon.png new file mode 100644 index 00000000..009ef14d Binary files /dev/null and b/icons/icon.png differ diff --git a/sync-project.sh b/sync-project.sh index 23ada1c2..b0811179 100755 --- a/sync-project.sh +++ b/sync-project.sh @@ -1,9 +1,7 @@ #update plugins npx cap sync #update assets -#npx capacitor-assets generate -#for some reason icon is broken without this -npx capacitor-assets generate --pwa -npx capacitor-assets generate --android +npx capacitor-assets generate #update webroot -npx cap copy \ No newline at end of file +npx cap copy +npx cap copy electron \ No newline at end of file