Skip to content

Commit

Permalink
feat(linix): Emit D-Bus signal directly for dock notification badges
Browse files Browse the repository at this point in the history
Closes #298, #424, #189

remove (#) title prefix when `Notification Badge` option is toggled

explode scuffed option libunity dependency (kabloomed)
  • Loading branch information
Covkie committed Jun 21, 2024
1 parent 456d5a6 commit dd703eb
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 1 deletion.
14 changes: 13 additions & 1 deletion src/main/appBadge.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import { app, NativeImage, nativeImage } from "electron";
import { join } from "path";
import { BADGE_DIR } from "shared/paths";
import { exec } from "child_process";

const imgCache = new Map<number, NativeImage>();
function loadBadge(index: number) {
Expand All @@ -25,7 +26,18 @@ export function setBadgeCount(count: number) {
switch (process.platform) {
case "linux":
if (count === -1) count = 0;
app.setBadgeCount(count);
// app.setBadgeCount(count);

function emitDBusBadge(count: number, visible: boolean) {
const badgeCountCommand = `gdbus emit --session --object-path / --signal com.canonical.Unity.LauncherEntry.Update "application://vesktop.desktop" "{'count': <int64 ${count}>, 'count-visible': <${visible}>}"`;
exec(badgeCountCommand)
}

if (count === 0) {
emitDBusBadge(count, false);
break;
}
emitDBusBadge(count, true);
break;
case "darwin":
if (count === 0) {
Expand Down
4 changes: 4 additions & 0 deletions src/main/mainWindow.ts
Original file line number Diff line number Diff line change
Expand Up @@ -445,6 +445,10 @@ 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*/, '');
mainWin.setTitle(cleanedTitle);
});

initWindowBoundsListeners(win);
if (!isDeckGameMode && (Settings.store.tray ?? true) && process.platform !== "darwin") initTray(win);
Expand Down

0 comments on commit dd703eb

Please sign in to comment.