diff --git a/package.json b/package.json index c9a728580f..0a8ba48af4 100644 --- a/package.json +++ b/package.json @@ -521,6 +521,11 @@ }, "linux": { "category": "Network;InstantMessaging;Chat", + "desktop": { + "entry": { + "StartupWMClass": "signal" + } + }, "target": [ "deb" ], diff --git a/scripts/prepare_alpha_build.js b/scripts/prepare_alpha_build.js index abd0160d28..7ab55fe0f2 100644 --- a/scripts/prepare_alpha_build.js +++ b/scripts/prepare_alpha_build.js @@ -34,6 +34,10 @@ const APP_ID_PATH = 'build.appId'; const PRODUCTION_APP_ID = 'org.whispersystems.signal-desktop'; const ALPHA_APP_ID = 'org.whispersystems.signal-desktop-alpha'; +const STARTUP_WM_CLASS_PATH = 'build.linux.desktop.entry.StartupWMClass'; +const PRODUCTION_WM_CLASS = 'signal'; +const ALPHA_WM_CLASS = 'signalalpha'; + const DESKTOP_NAME_PATH = 'desktopName'; // Note: we're avoiding dashes in our .desktop name due to xdg-settings behavior @@ -55,6 +59,7 @@ function checkValue(object, objectPath, expected) { checkValue(packageJson, NAME_PATH, PRODUCTION_NAME); checkValue(packageJson, PRODUCT_NAME_PATH, PRODUCTION_PRODUCT_NAME); checkValue(packageJson, APP_ID_PATH, PRODUCTION_APP_ID); +checkValue(packageJson, STARTUP_WM_CLASS_PATH, PRODUCTION_WM_CLASS); checkValue(packageJson, DESKTOP_NAME_PATH, PRODUCTION_DESKTOP_NAME); // ------- @@ -62,6 +67,7 @@ checkValue(packageJson, DESKTOP_NAME_PATH, PRODUCTION_DESKTOP_NAME); _.set(packageJson, NAME_PATH, ALPHA_NAME); _.set(packageJson, PRODUCT_NAME_PATH, ALPHA_PRODUCT_NAME); _.set(packageJson, APP_ID_PATH, ALPHA_APP_ID); +_.set(packageJson, STARTUP_WM_CLASS_PATH, ALPHA_WM_CLASS); _.set(packageJson, DESKTOP_NAME_PATH, ALPHA_DESKTOP_NAME); // ------- diff --git a/scripts/prepare_axolotl_build.js b/scripts/prepare_axolotl_build.js index d9938a300f..154ea4d6a2 100644 --- a/scripts/prepare_axolotl_build.js +++ b/scripts/prepare_axolotl_build.js @@ -34,6 +34,10 @@ const APP_ID_PATH = 'build.appId'; const PRODUCTION_APP_ID = 'org.whispersystems.signal-desktop'; const AXOLOTL_APP_ID = 'org.whispersystems.signal-desktop-axolotl'; +const STARTUP_WM_CLASS_PATH = 'build.linux.desktop.entry.StartupWMClass'; +const PRODUCTION_WM_CLASS = 'signal'; +const AXOLOTL_WM_CLASS = 'signalaxolotl'; + const DESKTOP_NAME_PATH = 'desktopName'; // Note: we're avoiding dashes in our .desktop name due to xdg-settings behavior @@ -55,6 +59,7 @@ function checkValue(object, objectPath, expected) { checkValue(packageJson, NAME_PATH, PRODUCTION_NAME); checkValue(packageJson, PRODUCT_NAME_PATH, PRODUCTION_PRODUCT_NAME); checkValue(packageJson, APP_ID_PATH, PRODUCTION_APP_ID); +checkValue(packageJson, STARTUP_WM_CLASS_PATH, PRODUCTION_WM_CLASS); checkValue(packageJson, DESKTOP_NAME_PATH, PRODUCTION_DESKTOP_NAME); // ------- @@ -62,6 +67,7 @@ checkValue(packageJson, DESKTOP_NAME_PATH, PRODUCTION_DESKTOP_NAME); _.set(packageJson, NAME_PATH, AXOLOTL_NAME); _.set(packageJson, PRODUCT_NAME_PATH, AXOLOTL_PRODUCT_NAME); _.set(packageJson, APP_ID_PATH, AXOLOTL_APP_ID); +_.set(packageJson, STARTUP_WM_CLASS_PATH, AXOLOTL_WM_CLASS); _.set(packageJson, DESKTOP_NAME_PATH, AXOLOTL_DESKTOP_NAME); // ------- diff --git a/scripts/prepare_beta_build.js b/scripts/prepare_beta_build.js index 26a90527d1..9c61b3135d 100644 --- a/scripts/prepare_beta_build.js +++ b/scripts/prepare_beta_build.js @@ -33,6 +33,10 @@ const APP_ID_PATH = 'build.appId'; const PRODUCTION_APP_ID = 'org.whispersystems.signal-desktop'; const BETA_APP_ID = 'org.whispersystems.signal-desktop-beta'; +const STARTUP_WM_CLASS_PATH = 'build.linux.desktop.entry.StartupWMClass'; +const PRODUCTION_WM_CLASS = 'signal'; +const BETA_WM_CLASS = 'signalbeta'; + const DESKTOP_NAME_PATH = 'desktopName'; // Note: we're avoiding dashes in our .desktop name due to xdg-settings behavior @@ -54,6 +58,7 @@ function checkValue(object, objectPath, expected) { checkValue(packageJson, NAME_PATH, PRODUCTION_NAME); checkValue(packageJson, PRODUCT_NAME_PATH, PRODUCTION_PRODUCT_NAME); checkValue(packageJson, APP_ID_PATH, PRODUCTION_APP_ID); +checkValue(packageJson, STARTUP_WM_CLASS_PATH, PRODUCTION_WM_CLASS); checkValue(packageJson, DESKTOP_NAME_PATH, PRODUCTION_DESKTOP_NAME); // ------- @@ -61,6 +66,7 @@ checkValue(packageJson, DESKTOP_NAME_PATH, PRODUCTION_DESKTOP_NAME); _.set(packageJson, NAME_PATH, BETA_NAME); _.set(packageJson, PRODUCT_NAME_PATH, BETA_PRODUCT_NAME); _.set(packageJson, APP_ID_PATH, BETA_APP_ID); +_.set(packageJson, STARTUP_WM_CLASS_PATH, BETA_WM_CLASS); _.set(packageJson, DESKTOP_NAME_PATH, BETA_DESKTOP_NAME); // ------- diff --git a/scripts/prepare_staging_build.js b/scripts/prepare_staging_build.js index 2e74ae5deb..bd5b70387a 100644 --- a/scripts/prepare_staging_build.js +++ b/scripts/prepare_staging_build.js @@ -37,6 +37,10 @@ const APP_ID_PATH = 'build.appId'; const PRODUCTION_APP_ID = 'org.whispersystems.signal-desktop'; const STAGING_APP_ID = 'org.whispersystems.signal-desktop-staging'; +const STARTUP_WM_CLASS_PATH = 'build.linux.desktop.entry.StartupWMClass'; +const PRODUCTION_WM_CLASS = 'signal'; +const STAGING_WM_CLASS = 'signalstaging'; + const DESKTOP_NAME_PATH = 'desktopName'; // Note: we're avoiding dashes in our .desktop name due to xdg-settings behavior @@ -58,6 +62,7 @@ function checkValue(object, objectPath, expected) { checkValue(packageJson, NAME_PATH, PRODUCTION_NAME); checkValue(packageJson, PRODUCT_NAME_PATH, PRODUCTION_PRODUCT_NAME); checkValue(packageJson, APP_ID_PATH, PRODUCTION_APP_ID); +checkValue(packageJson, STARTUP_WM_CLASS_PATH, PRODUCTION_WM_CLASS); checkValue(packageJson, DESKTOP_NAME_PATH, PRODUCTION_DESKTOP_NAME); // ------- @@ -66,6 +71,7 @@ _.set(packageJson, VERSION_PATH, STAGING_VERSION); _.set(packageJson, NAME_PATH, STAGING_NAME); _.set(packageJson, PRODUCT_NAME_PATH, STAGING_PRODUCT_NAME); _.set(packageJson, APP_ID_PATH, STAGING_APP_ID); +_.set(packageJson, STARTUP_WM_CLASS_PATH, STAGING_WM_CLASS); _.set(packageJson, DESKTOP_NAME_PATH, STAGING_DESKTOP_NAME); // -------