Open Araxeus opened 1 year ago
You need to create a shortcut to your app in the start menu, and it needs to include the following:
appUserModelId Application User Model ID
appUserModelId
toastActivatorClsid Value depends on the SnoreToast version! https://github.com/KDE/snoretoast/blob/v0.9.0/CMakeLists.txt#L5 https://github.com/KDE/snoretoast/blob/v0.7.0/CMakeLists.txt#L5
toastActivatorClsid
You need to do app.setAppUserModelId(appID)
app.setAppUserModelId(appID)
Here is an example from youtube-music :
if (is.windows()) { // Depends on SnoreToast version https://github.com/KDE/snoretoast/blob/master/CMakeLists.txt#L5 const toastActivatorClsid = "eb1fdd5b-8f70-4b5a-b230-998a2dc19303"; // v0.7.0 const appID = "com.github.th-ch.youtube-music"; app.setAppUserModelId(appID); const appLocation = process.execPath; const appData = app.getPath("appData"); // continue if not in dev mode / running portable app if (!is.dev() && !appLocation.startsWith(path.join(appData, "..", "Local", "Temp"))) { // shortcutPath can be anywhere inside AppData\Roaming\Microsoft\Windows\Start Menu\Programs\ const shortcutPath = path.join(appData, "Microsoft", "Windows", "Start Menu", "Programs", "YouTube Music.lnk"); // check if shortcut doesn't exist -> create it, if it exist and invalid -> update it try { const shortcutDetails = electron.shell.readShortcutLink(shortcutPath); // throws error if it doesn't exist yet // validate shortcutDetails if ( shortcutDetails.target !== appLocation || shortcutDetails.appUserModelId !== appID || shortcutDetails.toastActivatorClsid !== toastActivatorClsid ) { throw "needUpdate"; } // if the execution got to this line, the shortcut exists and is valid } catch (error) { // if not valid -> Register shortcut electron.shell.writeShortcutLink( shortcutPath, error === "needUpdate" ? "update" : "create", { target: appLocation, cwd: path.dirname(appLocation), description: "YouTube Music Desktop App - including custom plugins", appUserModelId: appID, toastActivatorClsid } ); } } }
this method currently requires Electron but you could get packages from npm / make similar functions yourself
@mikaelbr
Thanks for the guide 🙌 ! Added link to this post here 027f0d6c837542459357d59bcc8aee1bf447a9fb. If you have any suggestion how to have an official way to know the version, I'm happy to hear it!
You need to create a shortcut to your app in the start menu, and it needs to include the following:
appUserModelId
Application User Model IDtoastActivatorClsid
Value depends on the SnoreToast version! https://github.com/KDE/snoretoast/blob/v0.9.0/CMakeLists.txt#L5 https://github.com/KDE/snoretoast/blob/v0.7.0/CMakeLists.txt#L5You need to do
app.setAppUserModelId(appID)
Here is an example from youtube-music :