diff --git a/src/main/appBadge.ts b/src/main/appBadge.ts index 602c14ab..40b68c6b 100644 --- a/src/main/appBadge.ts +++ b/src/main/appBadge.ts @@ -7,7 +7,7 @@ import { app, NativeImage, nativeImage } from "electron"; import { join } from "path"; import { BADGE_DIR } from "shared/paths"; -import { exec } from "child_process"; +import { execFile } from "child_process"; const imgCache = new Map(); function loadBadge(index: number) { @@ -25,18 +25,31 @@ let lastIndex: null | number = -1; export function setBadgeCount(count: number) { switch (process.platform) { case "linux": - if (count === -1) count = 0; - // app.setBadgeCount(count); + if (typeof count !== "number") { //sanitize + console.log("what the hel- *kaboom*") + break; + } function emitDBusBadge(count: number, visible: boolean) { - const badgeCountCommand = `gdbus emit --session --object-path / --signal com.canonical.Unity.LauncherEntry.Update "application://vesktop.desktop" "{'count': , 'count-visible': <${visible}>}"`; - exec(badgeCountCommand) + execFile ("gdbus", [ + "emit", + "--session", + "--object-path", + "/", + "--signal", + "com.canonical.Unity.LauncherEntry.Update", + "application://vesktop.desktop", + `{\'count\': , \'count-visible\': <${visible}>}` + ]); } - if (count === 0) { emitDBusBadge(count, false); break; } + if (count === -1) { + emitDBusBadge(0, true); + break; + } emitDBusBadge(count, true); break; case "darwin": diff --git a/src/main/mainWindow.ts b/src/main/mainWindow.ts index 33f5a282..39acec86 100644 --- a/src/main/mainWindow.ts +++ b/src/main/mainWindow.ts @@ -446,7 +446,7 @@ function createMainWindow() { if (Settings.store.staticTitle) win.on("page-title-updated", e => e.preventDefault()); else if (Settings.store.appBadge) mainWin.webContents.on('page-title-updated', (_, title) => { - let cleanedTitle = title.replace(/^\(\d+\)\s*/, ''); + let cleanedTitle = title.replace(/^\(\d+\)\s*|•\s/, ''); mainWin.setTitle(cleanedTitle); });