diff --git a/packages/frontend/apps/electron/forge.config.mjs b/packages/frontend/apps/electron/forge.config.mjs index 6c3c5d2cf5..f99e72567f 100644 --- a/packages/frontend/apps/electron/forge.config.mjs +++ b/packages/frontend/apps/electron/forge.config.mjs @@ -12,7 +12,7 @@ import { icnsPath, iconPngPath, iconUrl, - iconX64PngPath, + iconX512PngPath, icoPath, platform, productName, @@ -85,8 +85,8 @@ const makers = [ config: { icons: [ { - file: iconX64PngPath, - size: 64, + file: iconX512PngPath, + size: 512, }, ], }, @@ -98,8 +98,14 @@ const makers = [ options: { name: productName, productName, - icon: iconX64PngPath, + icon: iconX512PngPath, mimeType: linuxMimeTypes, + scripts: { + // maker-deb does not have a way to include arbitrary files in package root + // instead, put files in extraResource, and then install with a script + postinst: './resources/deb/postinst', + prerm: './resources/deb/prerm', + }, }, }, }, @@ -115,6 +121,12 @@ const makers = [ id: fromBuildIdentifier(appIdMap), icon: iconPngPath, // not working yet branch: buildType, + files: [ + [ + './resources/affine.metainfo.xml', + '/usr/share/metainfo/affine.metainfo.xml', + ], + ], runtimeVersion: '20.08', finishArgs: [ // Wayland/X11 Rendering @@ -160,7 +172,10 @@ export default { } : undefined, // We need the following line for updater - extraResource: ['./resources/app-update.yml'], + extraResource: [ + './resources/app-update.yml', + ...(platform === 'linux' ? ['./resources/affine.metainfo.xml'] : []), + ], protocols: [ { name: productName, diff --git a/packages/frontend/apps/electron/resources/affine.metainfo.xml b/packages/frontend/apps/electron/resources/affine.metainfo.xml new file mode 100644 index 0000000000..a1d5f812b8 --- /dev/null +++ b/packages/frontend/apps/electron/resources/affine.metainfo.xml @@ -0,0 +1,73 @@ + + + affine + + AFFiNE + Productivity and note-taking app + + CC0-1.0 + MIT AND LicenseRef-proprietary=https://github.com/toeverything/AFFiNE/blob/canary/LICENSE + + https://affine.pro + https://github.com/toeverything/AFFiNE/issues + https://docs.affine.pro/docs + https://github.com/toeverything/AFFiNE + https://docs.affine.pro/docs/contributing + + + + Office + + + notes + canvas + + + #1e96eb + + + + 800 + always + + + x-scheme-handler/affine + + + pointing + keyboard + tablet + touch + + + +

Write, Draw, Plan, All at Once. With AI.

+

AFFiNE is a workspace with fully merged docs, whiteboards and databases. Get more things done, your creativity isn’t monotone.

+

Features

+ +
+ + pro.affine.AFFiNE.desktop + + + https://affine.pro/overview/Write.jpg + + + https://affine.pro/overview/Draw.jpg + + + https://affine.pro/overview/Plan.jpg + + + + + + https://github.com/toeverything/AFFiNE/releases/tag/v0.21.2 + + +
diff --git a/packages/frontend/apps/electron/resources/deb/postinst b/packages/frontend/apps/electron/resources/deb/postinst new file mode 100644 index 0000000000..1f145acbd1 --- /dev/null +++ b/packages/frontend/apps/electron/resources/deb/postinst @@ -0,0 +1,5 @@ +#!/bin/sh +set -e + +BUILD_TYPE=$(ls /usr/lib | grep '^affine') +install -Dm0644 /usr/lib/${BUILD_TYPE}/resources/affine.metainfo.xml /usr/share/metainfo/affine.metainfo.xml diff --git a/packages/frontend/apps/electron/resources/deb/prerm b/packages/frontend/apps/electron/resources/deb/prerm new file mode 100644 index 0000000000..24c7840c65 --- /dev/null +++ b/packages/frontend/apps/electron/resources/deb/prerm @@ -0,0 +1,4 @@ +#!/bin/sh +set -e + +rm /usr/share/metainfo/affine.metainfo.xml diff --git a/packages/frontend/apps/electron/resources/icons/icon_beta_512x512.png b/packages/frontend/apps/electron/resources/icons/icon_beta_512x512.png new file mode 100644 index 0000000000..73703495d2 Binary files /dev/null and b/packages/frontend/apps/electron/resources/icons/icon_beta_512x512.png differ diff --git a/packages/frontend/apps/electron/resources/icons/icon_canary_512x512.png b/packages/frontend/apps/electron/resources/icons/icon_canary_512x512.png new file mode 100644 index 0000000000..620e668ebe Binary files /dev/null and b/packages/frontend/apps/electron/resources/icons/icon_canary_512x512.png differ diff --git a/packages/frontend/apps/electron/resources/icons/icon_internal_512x512.png b/packages/frontend/apps/electron/resources/icons/icon_internal_512x512.png new file mode 100644 index 0000000000..32622ace52 Binary files /dev/null and b/packages/frontend/apps/electron/resources/icons/icon_internal_512x512.png differ diff --git a/packages/frontend/apps/electron/resources/icons/icon_stable_512x512.png b/packages/frontend/apps/electron/resources/icons/icon_stable_512x512.png new file mode 100644 index 0000000000..35a4c953b7 Binary files /dev/null and b/packages/frontend/apps/electron/resources/icons/icon_stable_512x512.png differ diff --git a/packages/frontend/apps/electron/scripts/make-env.ts b/packages/frontend/apps/electron/scripts/make-env.ts index ce7439d052..70a62d25c3 100644 --- a/packages/frontend/apps/electron/scripts/make-env.ts +++ b/packages/frontend/apps/electron/scripts/make-env.ts @@ -30,6 +30,11 @@ const iconX64PngPath = path.join( `./resources/icons/icon_${buildType}_64x64.png` ); +const iconX512PngPath = path.join( + ROOT, + `./resources/icons/icon_${buildType}_512x512.png` +); + const icnsPath = path.join( ROOT, !stableBuild @@ -77,6 +82,7 @@ export { iconPngPath, iconUrl, iconX64PngPath, + iconX512PngPath, icoPath, platform, productName,