fix(electron): add icon for AppImage build (#6257)

1. the icon is fixed in `/Applications`: 128b8c22f9 (diff-a694a3e854f53b066e34ec310e05bd18b4944c016455f6963f54a351784d5fa6L91)
2. the App's icon MUST be 64x64 png and set via `setIcon`

![image](https://github.com/toeverything/AFFiNE/assets/584378/bbce0007-066b-413f-a85a-193acbbe5c13)
This commit is contained in:
Brooooooklyn
2024-03-21 14:29:02 +00:00
parent 540e456704
commit 85ee22329c
9 changed files with 257 additions and 146 deletions

View File

@@ -10,6 +10,7 @@ import {
buildType,
icnsPath,
iconUrl,
iconX64PngPath,
icoPath,
platform,
productName,
@@ -77,6 +78,14 @@ const makers = [
!process.env.SKIP_BUNDLE && {
name: '@pengx17/electron-forge-maker-appimage',
platforms: ['linux'],
config: {
icons: [
{
file: iconX64PngPath,
size: 64,
},
],
},
},
].filter(Boolean);

View File

@@ -42,7 +42,7 @@
"@electron-forge/plugin-auto-unpack-natives": "^7.3.0",
"@electron-forge/shared-types": "^7.3.0",
"@emotion/react": "^11.11.4",
"@pengx17/electron-forge-maker-appimage": "^1.0.2",
"@pengx17/electron-forge-maker-appimage": "^1.1.1",
"@toeverything/infra": "workspace:*",
"@types/uuid": "^9.0.8",
"builder-util-runtime": "^9.2.4",

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

View File

@@ -20,6 +20,11 @@ const icoPath = path.join(
: './resources/icons/icon.ico'
);
const iconX64PngPath = path.join(
ROOT,
`./resources/icons/icon_${buildType}_64x64.png`
);
const icnsPath = path.join(
ROOT,
!stableBuild
@@ -46,6 +51,7 @@ export {
icnsPath,
iconPngPath,
iconUrl,
iconX64PngPath,
icoPath,
platform,
productName,

View File

@@ -5,6 +5,7 @@ import { BrowserWindow, type CookiesSetDetails, nativeTheme } from 'electron';
import electronWindowState from 'electron-window-state';
import { isLinux, isMacOS, isWindows } from '../shared/utils';
import { buildType } from './config';
import { mainWindowOrigin } from './constants';
import { ensureHelperProcess } from './helper-process';
import { logger } from './logger';
@@ -76,6 +77,12 @@ async function createWindow(additionalArguments: string[]) {
},
});
if (isLinux()) {
browserWindow.setIcon(
join(__dirname, `../resources/icons/icon_${buildType}_64x64.png`)
);
}
nativeTheme.themeSource = 'light';
mainWindowState.manage(browserWindow);