From 228bbc1e8e6963708563ff12d2e4b9004bed1b88 Mon Sep 17 00:00:00 2001 From: Ilya Fedin Date: Tue, 11 Mar 2025 05:51:46 +0000 Subject: [PATCH] Always use app ID based icon name This allows to unify it between flatpak and non-flatpak builds and corresponds to what most other GUI apps on Linux do --- Telegram/CMakeLists.txt | 16 ++++++++-------- .../platform/linux/specific_linux.cpp | 6 +++--- .../SourceFiles/platform/linux/tray_linux.cpp | 8 ++++---- lib/xdg/org.telegram.desktop.desktop | 2 +- snap/snapcraft.yaml | 2 -- 5 files changed, 16 insertions(+), 18 deletions(-) diff --git a/Telegram/CMakeLists.txt b/Telegram/CMakeLists.txt index 828eedbf1b..6acfb7d752 100644 --- a/Telegram/CMakeLists.txt +++ b/Telegram/CMakeLists.txt @@ -2063,14 +2063,14 @@ if (LINUX AND DESKTOP_APP_USE_PACKAGED) configure_file("../lib/xdg/org.telegram.desktop.metainfo.xml" "${CMAKE_CURRENT_BINARY_DIR}/org.telegram.desktop.metainfo.xml" @ONLY) generate_appdata_changelog(Telegram "${CMAKE_SOURCE_DIR}/changelog.txt" "${CMAKE_CURRENT_BINARY_DIR}/org.telegram.desktop.metainfo.xml") install(TARGETS Telegram RUNTIME DESTINATION "${CMAKE_INSTALL_BINDIR}" BUNDLE DESTINATION "${CMAKE_INSTALL_BINDIR}") - install(FILES "Resources/art/icon16.png" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/16x16/apps" RENAME "telegram.png") - install(FILES "Resources/art/icon32.png" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/32x32/apps" RENAME "telegram.png") - install(FILES "Resources/art/icon48.png" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/48x48/apps" RENAME "telegram.png") - install(FILES "Resources/art/icon64.png" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/64x64/apps" RENAME "telegram.png") - install(FILES "Resources/art/icon128.png" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/128x128/apps" RENAME "telegram.png") - install(FILES "Resources/art/icon256.png" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/256x256/apps" RENAME "telegram.png") - install(FILES "Resources/art/icon512.png" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/512x512/apps" RENAME "telegram.png") - install(FILES "Resources/icons/tray_monochrome.svg" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/symbolic/apps" RENAME "telegram-symbolic.svg") + install(FILES "Resources/art/icon16.png" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/16x16/apps" RENAME "org.telegram.desktop.png") + install(FILES "Resources/art/icon32.png" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/32x32/apps" RENAME "org.telegram.desktop.png") + install(FILES "Resources/art/icon48.png" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/48x48/apps" RENAME "org.telegram.desktop.png") + install(FILES "Resources/art/icon64.png" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/64x64/apps" RENAME "org.telegram.desktop.png") + install(FILES "Resources/art/icon128.png" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/128x128/apps" RENAME "org.telegram.desktop.png") + install(FILES "Resources/art/icon256.png" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/256x256/apps" RENAME "org.telegram.desktop.png") + install(FILES "Resources/art/icon512.png" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/512x512/apps" RENAME "org.telegram.desktop.png") + install(FILES "Resources/icons/tray_monochrome.svg" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/icons/hicolor/symbolic/apps" RENAME "org.telegram.desktop-symbolic.svg") install(FILES "../lib/xdg/org.telegram.desktop.desktop" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/applications") install(FILES "${CMAKE_CURRENT_BINARY_DIR}/org.telegram.desktop.service" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/dbus-1/services") install(FILES "${CMAKE_CURRENT_BINARY_DIR}/org.telegram.desktop.metainfo.xml" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/metainfo") diff --git a/Telegram/SourceFiles/platform/linux/specific_linux.cpp b/Telegram/SourceFiles/platform/linux/specific_linux.cpp index 7a0dd78e9b..303978af66 100644 --- a/Telegram/SourceFiles/platform/linux/specific_linux.cpp +++ b/Telegram/SourceFiles/platform/linux/specific_linux.cpp @@ -488,6 +488,7 @@ void InstallLauncher() { const auto icon = icons + ApplicationIconName() + u".png"_q; QFile::remove(icon); + QFile::remove(icons + u"telegram.png"_q); if (QFile::copy(u":/gui/art/logo_256.png"_q, icon)) { DEBUG_LOG(("App Info: Icon copied to '%1'").arg(icon)); } @@ -758,9 +759,8 @@ QImage DefaultApplicationIcon() { } QString ApplicationIconName() { - static const auto Result = KSandbox::isFlatpak() - ? qEnvironmentVariable("FLATPAK_ID") - : u"telegram"_q; + static const auto Result = QGuiApplication::desktopFileName().remove( + u"._"_q + Core::Launcher::Instance().instanceHash()); return Result; } diff --git a/Telegram/SourceFiles/platform/linux/tray_linux.cpp b/Telegram/SourceFiles/platform/linux/tray_linux.cpp index f7e91e688a..13b745b1d6 100644 --- a/Telegram/SourceFiles/platform/linux/tray_linux.cpp +++ b/Telegram/SourceFiles/platform/linux/tray_linux.cpp @@ -30,11 +30,11 @@ namespace { using namespace gi::repository; [[nodiscard]] QString PanelIconName(int counter, bool muted) { - return (counter > 0) + return ApplicationIconName() + ((counter > 0) ? (muted - ? u"telegram-mute-panel"_q - : u"telegram-attention-panel"_q) - : u"telegram-panel"_q; + ? u"-mute"_q + : u"-attention"_q) + : QString()) + u"-panel"_q; } } // namespace diff --git a/lib/xdg/org.telegram.desktop.desktop b/lib/xdg/org.telegram.desktop.desktop index 100752f006..365516b4dd 100644 --- a/lib/xdg/org.telegram.desktop.desktop +++ b/lib/xdg/org.telegram.desktop.desktop @@ -3,7 +3,7 @@ Name=Telegram Comment=New era of messaging TryExec=telegram-desktop Exec=telegram-desktop -- %u -Icon=telegram +Icon=org.telegram.desktop Terminal=false StartupWMClass=TelegramDesktop Type=Application diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index 290fbb136a..aeca7ed4a1 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -149,8 +149,6 @@ parts: version="${version}$(git describe --tags | sed 's,^v[^-]\+,,')" craftctl set version="$version" - - sed -i 's|^Icon=telegram$|Icon=${SNAP}/meta/gui/icon.png|g' lib/xdg/org.telegram.desktop.desktop override-build: | craftctl default rm -rf "$CRAFT_PART_INSTALL/usr/share/icons"