mirror of
https://github.com/arduino/arduino-ide.git
synced 2025-07-08 20:06:32 +00:00
fix: missing app icon for AppImage on Linux (#2190)
Closes #131 Signed-off-by: Akos Kitta <a.kitta@arduino.cc>
This commit is contained in:
parent
e03e5eb603
commit
e08439b6a4
@ -15,6 +15,7 @@ import {
|
|||||||
} from '../common/protocol/ide-updater';
|
} from '../common/protocol/ide-updater';
|
||||||
import { IsTempSketch } from '../node/is-temp-sketch';
|
import { IsTempSketch } from '../node/is-temp-sketch';
|
||||||
import { ElectronArduino } from './electron-arduino';
|
import { ElectronArduino } from './electron-arduino';
|
||||||
|
import { FixAppImageIcon } from './fix-app-image-icon';
|
||||||
import { IDEUpdaterImpl } from './ide-updater/ide-updater-impl';
|
import { IDEUpdaterImpl } from './ide-updater/ide-updater-impl';
|
||||||
import { ElectronMainApplication } from './theia/electron-main-application';
|
import { ElectronMainApplication } from './theia/electron-main-application';
|
||||||
import { ElectronMainWindowServiceImpl } from './theia/electron-main-window-service';
|
import { ElectronMainWindowServiceImpl } from './theia/electron-main-window-service';
|
||||||
@ -58,4 +59,8 @@ export default new ContainerModule((bind, unbind, isBound, rebind) => {
|
|||||||
// eclipse-theia/theia#12500
|
// eclipse-theia/theia#12500
|
||||||
bind(TheiaMainApiFixFalsyHandlerId).toSelf().inSingletonScope();
|
bind(TheiaMainApiFixFalsyHandlerId).toSelf().inSingletonScope();
|
||||||
rebind(TheiaMainApi).toService(TheiaMainApiFixFalsyHandlerId);
|
rebind(TheiaMainApi).toService(TheiaMainApiFixFalsyHandlerId);
|
||||||
|
|
||||||
|
// https://github.com/arduino/arduino-ide/issues/131
|
||||||
|
bind(FixAppImageIcon).toSelf().inSingletonScope();
|
||||||
|
bind(ElectronMainApplicationContribution).toService(FixAppImageIcon);
|
||||||
});
|
});
|
||||||
|
@ -0,0 +1,31 @@
|
|||||||
|
import { environment } from '@theia/application-package/lib/environment';
|
||||||
|
import { isOSX, isWindows } from '@theia/core/lib/common/os';
|
||||||
|
import {
|
||||||
|
ElectronMainApplication,
|
||||||
|
ElectronMainApplicationContribution,
|
||||||
|
} from '@theia/core/lib/electron-main/electron-main-application';
|
||||||
|
import { injectable } from '@theia/core/shared/inversify';
|
||||||
|
import { join } from 'node:path';
|
||||||
|
|
||||||
|
// Fixes no application icon for the AppImage on Linux (https://github.com/arduino/arduino-ide/issues/131)
|
||||||
|
// The fix was based on https://github.com/eclipse-theia/theia-blueprint/pull/180.
|
||||||
|
// Upstream: https://github.com/electron-userland/electron-builder/issues/4617
|
||||||
|
@injectable()
|
||||||
|
export class FixAppImageIcon implements ElectronMainApplicationContribution {
|
||||||
|
onStart(application: ElectronMainApplication): void {
|
||||||
|
if (isOSX || isWindows || environment.electron.isDevMode()) {
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
const windowOptions = application.config.electron.windowOptions;
|
||||||
|
if (windowOptions && windowOptions.icon === undefined) {
|
||||||
|
windowOptions.icon = join(
|
||||||
|
__dirname,
|
||||||
|
'..',
|
||||||
|
'..',
|
||||||
|
'resources',
|
||||||
|
'icons',
|
||||||
|
'512x512.png'
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
@ -119,6 +119,7 @@
|
|||||||
"arduino-ide-electron-main.js",
|
"arduino-ide-electron-main.js",
|
||||||
"src-gen",
|
"src-gen",
|
||||||
"lib",
|
"lib",
|
||||||
|
"resources/icons/512x512.png",
|
||||||
"!**node_modules/**"
|
"!**node_modules/**"
|
||||||
],
|
],
|
||||||
"extraResources": [
|
"extraResources": [
|
||||||
|
Loading…
x
Reference in New Issue
Block a user