Linux: Fix StartupWMClass to fix app icon

This commit is contained in:
ayumi-signal
2025-10-14 14:24:32 -07:00
committed by GitHub
parent df93632f0a
commit dbaf2f5e68
5 changed files with 29 additions and 0 deletions

View File

@@ -521,6 +521,11 @@
}, },
"linux": { "linux": {
"category": "Network;InstantMessaging;Chat", "category": "Network;InstantMessaging;Chat",
"desktop": {
"entry": {
"StartupWMClass": "signal"
}
},
"target": [ "target": [
"deb" "deb"
], ],

View File

@@ -34,6 +34,10 @@ const APP_ID_PATH = 'build.appId';
const PRODUCTION_APP_ID = 'org.whispersystems.signal-desktop'; const PRODUCTION_APP_ID = 'org.whispersystems.signal-desktop';
const ALPHA_APP_ID = 'org.whispersystems.signal-desktop-alpha'; 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'; const DESKTOP_NAME_PATH = 'desktopName';
// Note: we're avoiding dashes in our .desktop name due to xdg-settings behavior // 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, NAME_PATH, PRODUCTION_NAME);
checkValue(packageJson, PRODUCT_NAME_PATH, PRODUCTION_PRODUCT_NAME); checkValue(packageJson, PRODUCT_NAME_PATH, PRODUCTION_PRODUCT_NAME);
checkValue(packageJson, APP_ID_PATH, PRODUCTION_APP_ID); 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); 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, NAME_PATH, ALPHA_NAME);
_.set(packageJson, PRODUCT_NAME_PATH, ALPHA_PRODUCT_NAME); _.set(packageJson, PRODUCT_NAME_PATH, ALPHA_PRODUCT_NAME);
_.set(packageJson, APP_ID_PATH, ALPHA_APP_ID); _.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); _.set(packageJson, DESKTOP_NAME_PATH, ALPHA_DESKTOP_NAME);
// ------- // -------

View File

@@ -34,6 +34,10 @@ const APP_ID_PATH = 'build.appId';
const PRODUCTION_APP_ID = 'org.whispersystems.signal-desktop'; const PRODUCTION_APP_ID = 'org.whispersystems.signal-desktop';
const AXOLOTL_APP_ID = 'org.whispersystems.signal-desktop-axolotl'; 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'; const DESKTOP_NAME_PATH = 'desktopName';
// Note: we're avoiding dashes in our .desktop name due to xdg-settings behavior // 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, NAME_PATH, PRODUCTION_NAME);
checkValue(packageJson, PRODUCT_NAME_PATH, PRODUCTION_PRODUCT_NAME); checkValue(packageJson, PRODUCT_NAME_PATH, PRODUCTION_PRODUCT_NAME);
checkValue(packageJson, APP_ID_PATH, PRODUCTION_APP_ID); 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); 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, NAME_PATH, AXOLOTL_NAME);
_.set(packageJson, PRODUCT_NAME_PATH, AXOLOTL_PRODUCT_NAME); _.set(packageJson, PRODUCT_NAME_PATH, AXOLOTL_PRODUCT_NAME);
_.set(packageJson, APP_ID_PATH, AXOLOTL_APP_ID); _.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); _.set(packageJson, DESKTOP_NAME_PATH, AXOLOTL_DESKTOP_NAME);
// ------- // -------

View File

@@ -33,6 +33,10 @@ const APP_ID_PATH = 'build.appId';
const PRODUCTION_APP_ID = 'org.whispersystems.signal-desktop'; const PRODUCTION_APP_ID = 'org.whispersystems.signal-desktop';
const BETA_APP_ID = 'org.whispersystems.signal-desktop-beta'; 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'; const DESKTOP_NAME_PATH = 'desktopName';
// Note: we're avoiding dashes in our .desktop name due to xdg-settings behavior // 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, NAME_PATH, PRODUCTION_NAME);
checkValue(packageJson, PRODUCT_NAME_PATH, PRODUCTION_PRODUCT_NAME); checkValue(packageJson, PRODUCT_NAME_PATH, PRODUCTION_PRODUCT_NAME);
checkValue(packageJson, APP_ID_PATH, PRODUCTION_APP_ID); 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); 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, NAME_PATH, BETA_NAME);
_.set(packageJson, PRODUCT_NAME_PATH, BETA_PRODUCT_NAME); _.set(packageJson, PRODUCT_NAME_PATH, BETA_PRODUCT_NAME);
_.set(packageJson, APP_ID_PATH, BETA_APP_ID); _.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); _.set(packageJson, DESKTOP_NAME_PATH, BETA_DESKTOP_NAME);
// ------- // -------

View File

@@ -37,6 +37,10 @@ const APP_ID_PATH = 'build.appId';
const PRODUCTION_APP_ID = 'org.whispersystems.signal-desktop'; const PRODUCTION_APP_ID = 'org.whispersystems.signal-desktop';
const STAGING_APP_ID = 'org.whispersystems.signal-desktop-staging'; 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'; const DESKTOP_NAME_PATH = 'desktopName';
// Note: we're avoiding dashes in our .desktop name due to xdg-settings behavior // 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, NAME_PATH, PRODUCTION_NAME);
checkValue(packageJson, PRODUCT_NAME_PATH, PRODUCTION_PRODUCT_NAME); checkValue(packageJson, PRODUCT_NAME_PATH, PRODUCTION_PRODUCT_NAME);
checkValue(packageJson, APP_ID_PATH, PRODUCTION_APP_ID); 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); 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, NAME_PATH, STAGING_NAME);
_.set(packageJson, PRODUCT_NAME_PATH, STAGING_PRODUCT_NAME); _.set(packageJson, PRODUCT_NAME_PATH, STAGING_PRODUCT_NAME);
_.set(packageJson, APP_ID_PATH, STAGING_APP_ID); _.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); _.set(packageJson, DESKTOP_NAME_PATH, STAGING_DESKTOP_NAME);
// ------- // -------