diff --git a/Telegram/SourceFiles/platform/linux/specific_linux.cpp b/Telegram/SourceFiles/platform/linux/specific_linux.cpp index 303978af66..e6bdfe2c14 100644 --- a/Telegram/SourceFiles/platform/linux/specific_linux.cpp +++ b/Telegram/SourceFiles/platform/linux/specific_linux.cpp @@ -759,7 +759,9 @@ QImage DefaultApplicationIcon() { } QString ApplicationIconName() { - static const auto Result = QGuiApplication::desktopFileName().remove( + static const auto Result = (KSandbox::isSnap() + ? u"snap.%1."_q.arg(qEnvironmentVariable("SNAP_INSTANCE_NAME")) + : QString()) + QGuiApplication::desktopFileName().remove( u"._"_q + Core::Launcher::Instance().instanceHash()); return Result; } diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index aeca7ed4a1..7ef0aefda8 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -1,6 +1,5 @@ name: telegram-desktop adopt-info: telegram -icon: Telegram/Resources/art/icon512@2x.png base: core24 grade: stable @@ -151,7 +150,16 @@ parts: craftctl set version="$version" override-build: | craftctl default - rm -rf "$CRAFT_PART_INSTALL/usr/share/icons" + + APP_ID=org.telegram.desktop + sed -i "s/^Icon=$APP_ID$/Icon=snap.telegram-desktop./g" "$CRAFT_PART_INSTALL/usr/share/applications/$APP_ID.desktop" + for i in $(find "$CRAFT_PART_INSTALL/usr/share/icons" -name "$APP_ID*.svg" -o -name "$APP_ID*.png"); do + PREFIXED="$(dirname "$i")/snap.$CRAFT_PROJECT_NAME.$(basename "$i" | sed "s/$APP_ID//")" + mv "$i" "$PREFIXED" + DEST="$(dirname "$i" | sed 's@usr/share@meta/gui@')" + mkdir -p "$DEST" + cp -r "$PREFIXED" "$DEST" + done after: - ada - ffmpeg