diff --git a/CHANGELOG.md b/CHANGELOG.md index e7d966e..6b444f0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -3,6 +3,17 @@ An electron-base client for Google Hangouts Chat, since Google didn't see fit to provide one. ## CHANGELOG +### 5.27.23-1 + +Add support for several iconThemes, to match some 'monochrome' desktop themes. 3 values are supported : + +* `default` : the good old green ones +* `colored` : the new colored google ones +* `mono` : an attempt at monochrome icon theme + +Edit `~/.config/google-hangouts-chat-linux.json` and set `"iconTheme":"colored"` for instance, then **restart**. + +No GUI setting for now. ### 5.27.22-4 diff --git a/README.md b/README.md index e75e307..570831c 100644 --- a/README.md +++ b/README.md @@ -101,6 +101,18 @@ So, **to use electron's Wayland rendering** edit `/usr/share/applciations/google See full [CHANGELOG](./CHANGELOG.md). +### 5.27.23-1 + +Add support for several iconThemes, to match some 'monochrome' desktop themes. 3 values are supported : + +* `default` : the good old green ones +* `colored` : the new colored google ones +* `mono` : an attempt at monochrome icon theme + +Edit `~/.config/google-hangouts-chat-linux.json` and set `"iconTheme":"colored"` for instance, then **restart**. + +No GUI setting for now. + ### 5.27.22-4 Fix systray notification (favicon name changed on google side) see https://github.com/squalou/google-chat-linux/issues/87 diff --git a/assets/icon/badge-256.png b/assets/icon/badge-256.png deleted file mode 100644 index d3cbb52..0000000 Binary files a/assets/icon/badge-256.png and /dev/null differ diff --git a/assets/icon/badge-48.png b/assets/icon/badge-48.png deleted file mode 100644 index 2c88774..0000000 Binary files a/assets/icon/badge-48.png and /dev/null differ diff --git a/assets/icon/colored/badge-64.png b/assets/icon/colored/badge-64.png new file mode 100644 index 0000000..5a239e4 Binary files /dev/null and b/assets/icon/colored/badge-64.png differ diff --git a/assets/icon/colored/normal-64.png b/assets/icon/colored/normal-64.png new file mode 100644 index 0000000..b57639c Binary files /dev/null and b/assets/icon/colored/normal-64.png differ diff --git a/assets/icon/colored/offline-64.png b/assets/icon/colored/offline-64.png new file mode 100644 index 0000000..a29f8c0 Binary files /dev/null and b/assets/icon/colored/offline-64.png differ diff --git a/assets/icon/badge-64.png b/assets/icon/default/badge-64.png similarity index 100% rename from assets/icon/badge-64.png rename to assets/icon/default/badge-64.png diff --git a/assets/icon/normal-64.png b/assets/icon/default/normal-64.png similarity index 100% rename from assets/icon/normal-64.png rename to assets/icon/default/normal-64.png diff --git a/assets/icon/offline-64.png b/assets/icon/default/offline-64.png similarity index 100% rename from assets/icon/offline-64.png rename to assets/icon/default/offline-64.png diff --git a/assets/icon/mono/badge-64.png b/assets/icon/mono/badge-64.png new file mode 100644 index 0000000..c9c6143 Binary files /dev/null and b/assets/icon/mono/badge-64.png differ diff --git a/assets/icon/mono/normal-64.png b/assets/icon/mono/normal-64.png new file mode 100644 index 0000000..f6d3033 Binary files /dev/null and b/assets/icon/mono/normal-64.png differ diff --git a/assets/icon/mono/offline-64.png b/assets/icon/mono/offline-64.png new file mode 100644 index 0000000..f1e5fa1 Binary files /dev/null and b/assets/icon/mono/offline-64.png differ diff --git a/assets/icon/normal-256.png b/assets/icon/normal-256.png deleted file mode 100644 index 68bf547..0000000 Binary files a/assets/icon/normal-256.png and /dev/null differ diff --git a/assets/icon/normal-48.png b/assets/icon/normal-48.png deleted file mode 100644 index 06738d7..0000000 Binary files a/assets/icon/normal-48.png and /dev/null differ diff --git a/assets/icon/offline-256.png b/assets/icon/offline-256.png deleted file mode 100644 index 9a383b9..0000000 Binary files a/assets/icon/offline-256.png and /dev/null differ diff --git a/assets/icon/offline-48.png b/assets/icon/offline-48.png deleted file mode 100644 index 15f8b64..0000000 Binary files a/assets/icon/offline-48.png and /dev/null differ diff --git a/package-lock.json b/package-lock.json index a3f466b..de51db5 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "google-chat-linux", - "version": "5.27.22-4", + "version": "5.27.23-1", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "google-chat-linux", - "version": "5.27.22-4", + "version": "5.27.23-1", "license": "WTFPL", "dependencies": { "electron-context-menu": "^3.5.0" diff --git a/package.json b/package.json index 88ca4ec..e2d9c5b 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "google-chat-linux", - "version": "5.27.22-4", + "version": "5.27.23-1", "description": "Unofficial alternative Google Chat desktop app", "main": "src/index.js", "scripts": { diff --git a/src/configs.js b/src/configs.js index fadbc71..91564d9 100644 --- a/src/configs.js +++ b/src/configs.js @@ -14,6 +14,8 @@ const setConfigDefaults = (configuration) => { configuration.thirdPartyAuthLoginMode = configuration.thirdPartyAuthLoginMode === undefined ? false : configuration.thirdPartyAuthLoginMode; configuration.useOldUrl = configuration.useOldUrl === undefined ? false : configuration.useOldUrl; configuration.languages = configuration.languages === undefined ? undefined : configuration.languages; + configuration.iconTheme = configuration.iconTheme === undefined ? 'default' : configuration.iconTheme; + pathsManifest.setIconTheme(configuration.iconTheme) if (process.platform === 'win32') { configuration.keepMinimized = true; } diff --git a/src/paths.js b/src/paths.js index 5d390fe..73d6318 100644 --- a/src/paths.js +++ b/src/paths.js @@ -1,9 +1,32 @@ const path = require("path"); const { app } = require("electron"); +let theme = 'default'; +const iconPathTemplate = `\`icon/\${theme}/\${iconName}\``; +const evalIconPath = (theme, iconName) => { + return eval(iconPathTemplate); +} + +const setIconTheme = (t) => { + theme = t; +} + + +const normal = () => { + return path.resolve(process.resourcesPath, evalIconPath(theme, "normal-64.png")) +} +const badge = () => { + return path.resolve(process.resourcesPath, evalIconPath(theme, "badge-64.png")) +} +const offline = () => { + return path.resolve(process.resourcesPath, evalIconPath(theme, "offline-64.png")) +} + module.exports = { "configsPath": path.resolve(app.getPath("appData"), "google-hangouts-chat-linux.json"), - "NORMAL": path.resolve(process.resourcesPath, "icon/normal-64.png"), - "BADGE": path.resolve(process.resourcesPath, "icon/badge-64.png"), - "OFFLINE": path.resolve(process.resourcesPath, "icon/offline-64.png") + "OVERLAY_NEW_NOTIF": path.resolve(process.resourcesPath, "icon/overlay-new-xs.png"), + normal: normal, + badge: badge, + offline: offline, + setIconTheme: setIconTheme } diff --git a/src/tray.js b/src/tray.js index 4165c17..515c088 100644 --- a/src/tray.js +++ b/src/tray.js @@ -60,7 +60,7 @@ const initializeTray = (windowObj) => { // -> moved things to ipcRenderer preload mechanism in faviconChange.js - thank you ankurk91 :-) // see https://github.com/ankurk91/google-chat-electron.git try { - systemTrayIcon = new Tray(pathsManifest.OFFLINE); + systemTrayIcon = new Tray(pathsManifest.offline()); } catch (e) { console.log(e) console.log("set Tray icon failed !") @@ -86,11 +86,11 @@ ipcMain.on('favicon-changed', (evt, href) => { function iconForType(iconType) { if (iconType == "NORMAL") { - return pathsManifest.NORMAL; + return pathsManifest.normal(); } else if (iconType == "ATTENTION") { - return pathsManifest.BADGE; + return pathsManifest.badge(); } else { - return pathsManifest.OFFLINE; + return pathsManifest.offline(); } } diff --git a/src/window.js b/src/window.js index 61946ee..80beed8 100644 --- a/src/window.js +++ b/src/window.js @@ -215,7 +215,7 @@ const getBrowserWindowOptions = (config) => { }, "show": false, "backgroundColor": "#262727", - "icon": pathsManifest.NORMAL, + "icon": pathsManifest.normal(), } }