diff --git a/src/main/appBadge.ts b/src/main/appBadge.ts index 2c69cdb..b87d063 100644 --- a/src/main/appBadge.ts +++ b/src/main/appBadge.ts @@ -4,11 +4,12 @@ * Copyright (c) 2023 Vendicated and Vencord contributors */ -import dbus from "@homebridge/dbus-native"; import { app, NativeImage, nativeImage } from "electron"; import { join } from "path"; import { BADGE_DIR } from "shared/paths"; +import { dbus, getSessionBus } from "./utils/dbus"; + const imgCache = new Map(); function loadBadge(index: number) { const cached = imgCache.get(index); @@ -29,7 +30,7 @@ export function setBadgeCount(count: number) { throw new Error("count must be a number"); // sanitize } - const sessionBus = dbus.sessionBus(); + const sessionBus = getSessionBus(); sessionBus.connection.message({ type: dbus.messageType.signal, serial: 1, diff --git a/src/main/utils/dbus.ts b/src/main/utils/dbus.ts new file mode 100644 index 0000000..581e12e --- /dev/null +++ b/src/main/utils/dbus.ts @@ -0,0 +1,16 @@ +/* + * SPDX-License-Identifier: GPL-3.0 + * Vesktop, a desktop app aiming to give you a snappier Discord Experience + * Copyright (c) 2023 Vendicated and Vencord contributors + */ + +import dbus from "@homebridge/dbus-native"; + +let sessionBus: dbus.MessageBus | null; + +export function getSessionBus(): dbus.MessageBus { + if (!sessionBus) sessionBus = dbus.sessionBus(); + return sessionBus; +} + +export { dbus };