Fix AppImage windows not showing the application icon (#6444)

Signed-off-by: Damien Degois <damien@degois.info>

Signed-off-by: Damien Degois <damien@degois.info>
This commit is contained in:
Damien Degois authored and GitHub committed 2022-10-21 14:55:11 -04:00
1 parent c591f08bc4
commit 8bc5856b8c
3 files changed
+31 -3

No files matched your search

@@ -9,6 +9,12 @@ import { BrowserWindow } from "electron";
import type { ElectronWindow } from "./create-lens-window.injectable";
import type { RequireExactlyOne } from "type-fest";
import openLinkInBrowserInjectable from "../../../../common/utils/open-link-in-browser.injectable";
import getAbsolutePathInjectable from "../../../../common/path/get-absolute-path.injectable";
import lensResourcesDirInjectable from "../../../../common/vars/lens-resources-dir.injectable";
import isLinuxInjectable from "../../../../common/vars/is-linux.injectable";
import fsInjectable from "../../../../common/fs/fs.injectable";
import applicationInformationInjectable from "../../../../common/vars/application-information.injectable";
export type ElectronWindowTitleBarStyle = "hiddenInset" | "hidden" | "default" | "customButtonsOnHover";
@@ -45,6 +51,10 @@ const createElectronWindowInjectable = getInjectable({
instantiate: (di): CreateElectronWindow => {
const logger = di.inject(loggerInjectable);
const openLinkInBrowser = di.inject(openLinkInBrowserInjectable);
const getAbsolutePath = di.inject(getAbsolutePathInjectable);
const lensResourcesDir = di.inject(lensResourcesDirInjectable);
const isLinux = di.inject(isLinuxInjectable);
const applicationInformation = di.inject(applicationInformationInjectable);
return (configuration) => {
const applicationWindowState = di.inject(
@@ -79,6 +89,23 @@ const createElectronWindowInjectable = getInjectable({
},
});
if (isLinux) {
const iconFileName = [
getAbsolutePath(lensResourcesDir, `../${applicationInformation.name}.png`),
`/usr/share/icons/hicolor/512x512/apps/${applicationInformation.name}.png`,
].find(di.inject(fsInjectable).existsSync);
if (iconFileName != null) {
try {
browserWindow.setIcon(iconFileName);
} catch (err) {
logger.warn(`Error while setting window icon ${err}`);
}
} else {
logger.warn(`No suitable icon found for task bar.`);
}
}
applicationWindowState.manage(browserWindow);
browserWindow