diff --git a/Telegram/CMakeLists.txt b/Telegram/CMakeLists.txt index f0cb97ca7..ef63827a4 100644 --- a/Telegram/CMakeLists.txt +++ b/Telegram/CMakeLists.txt @@ -1681,8 +1681,8 @@ endif() if (LINUX AND DESKTOP_APP_USE_PACKAGED) include(GNUInstallDirs) - configure_file("../lib/xdg/telegramdesktop.metainfo.xml" "${CMAKE_CURRENT_BINARY_DIR}/telegramdesktop.metainfo.xml" @ONLY) - generate_appdata_changelog(Telegram "${CMAKE_SOURCE_DIR}/changelog.txt" "${CMAKE_CURRENT_BINARY_DIR}/telegramdesktop.metainfo.xml") + 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") @@ -1691,6 +1691,6 @@ if (LINUX AND DESKTOP_APP_USE_PACKAGED) 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 "../lib/xdg/telegramdesktop.desktop" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/applications") - install(FILES "${CMAKE_CURRENT_BINARY_DIR}/telegramdesktop.metainfo.xml" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/metainfo") + install(FILES "../lib/xdg/org.telegram.desktop.desktop" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/applications") + install(FILES "${CMAKE_CURRENT_BINARY_DIR}/org.telegram.desktop.metainfo.xml" DESTINATION "${CMAKE_INSTALL_DATAROOTDIR}/metainfo") endif() diff --git a/Telegram/Resources/qrc/telegram/telegram.qrc b/Telegram/Resources/qrc/telegram/telegram.qrc index 859714567..d9b026c88 100644 --- a/Telegram/Resources/qrc/telegram/telegram.qrc +++ b/Telegram/Resources/qrc/telegram/telegram.qrc @@ -53,6 +53,6 @@ ../../default_shortcuts-custom.json - ../../../../lib/xdg/telegramdesktop.desktop + ../../../../lib/xdg/org.telegram.desktop.desktop diff --git a/Telegram/SourceFiles/platform/linux/specific_linux.cpp b/Telegram/SourceFiles/platform/linux/specific_linux.cpp index f6b6276da..9f10e7bd3 100644 --- a/Telegram/SourceFiles/platform/linux/specific_linux.cpp +++ b/Telegram/SourceFiles/platform/linux/specific_linux.cpp @@ -114,7 +114,7 @@ static void t_desktop_application_init(TDesktopApplication *application) { namespace Platform { namespace { -constexpr auto kDesktopFile = ":/misc/telegramdesktop.desktop"_cs; +constexpr auto kDesktopFile = ":/misc/org.telegram.desktop.desktop"_cs; #ifndef DESKTOP_APP_DISABLE_DBUS_INTEGRATION void PortalAutostart(bool start, bool silent) { @@ -481,6 +481,21 @@ bool GenerateDesktopFile( DEBUG_LOG(("App Info: removing old .desktop files")); QFile::remove(qsl("%1telegram.desktop").arg(targetPath)); QFile::remove(qsl("%1telegramdesktop.desktop").arg(targetPath)); + + const auto appimagePath = qsl("file://%1%2").arg( + cExeDir(), + cExeName()).toUtf8(); + + char md5Hash[33] = { 0 }; + hashMd5Hex( + appimagePath.constData(), + appimagePath.size(), + md5Hash); + + QFile::remove(qsl("%1appimagekit_%2-%3.desktop").arg( + targetPath, + md5Hash, + AppName.utf16().replace(' ', '_'))); } return true; @@ -647,7 +662,11 @@ int psFixPrevious() { namespace Platform { void start() { - QGuiApplication::setDesktopFileName([] { + const auto d = QFile::encodeName(QDir(cWorkingDir()).absolutePath()); + char h[33] = { 0 }; + hashMd5Hex(d.constData(), d.size(), h); + + QGuiApplication::setDesktopFileName([&] { if (KSandbox::isFlatpak()) { return qEnvironmentVariable("FLATPAK_ID") + qsl(".desktop"); } @@ -659,23 +678,11 @@ void start() { + qsl(".desktop"); } - if (!Core::UpdaterDisabled() && !cExeName().isEmpty()) { - const auto appimagePath = qsl("file://%1%2").arg( - cExeDir(), - cExeName()).toUtf8(); - - char md5Hash[33] = { 0 }; - hashMd5Hex( - appimagePath.constData(), - appimagePath.size(), - md5Hash); - - return qsl("appimagekit_%1-%2.desktop").arg( - md5Hash, - AppName.utf16().replace(' ', '_')); + if (!Core::UpdaterDisabled()) { + return qsl("org.telegram.desktop.%1.desktop").arg(h); } - return qsl("telegramdesktop.desktop"); + return qsl("org.telegram.desktop.desktop"); }()); LOG(("Launcher filename: %1").arg(QGuiApplication::desktopFileName())); @@ -703,10 +710,6 @@ void start() { #endif // DESKTOP_APP_USE_PACKAGED_FONTS #endif // !DESKTOP_APP_DISABLE_DBUS_INTEGRATION - const auto d = QFile::encodeName(QDir(cWorkingDir()).absolutePath()); - char h[33] = { 0 }; - hashMd5Hex(d.constData(), d.size(), h); - Webview::WebKit2Gtk::SetSocketPath(qsl("%1/%2-%3-webview-%4").arg( QDir::tempPath(), h, diff --git a/Telegram/build/changelog2appdata.py b/Telegram/build/changelog2appdata.py index c8b1b5dd4..bbcd95032 100755 --- a/Telegram/build/changelog2appdata.py +++ b/Telegram/build/changelog2appdata.py @@ -66,7 +66,7 @@ def update_appdata(appdata_path, changelog, max_items=None): def main(): ap = argparse.ArgumentParser("Parse Telegram changelog") ap.add_argument("-c", "--changelog-path", default="changelog.txt") - ap.add_argument("-a", "--appdata-path", default="lib/xdg/telegramdesktop.metainfo.xml") + ap.add_argument("-a", "--appdata-path", default="lib/xdg/org.telegram.desktop.metainfo.xml") ap.add_argument("-n", "--num-releases", type=int, default=None) args = ap.parse_args() update_appdata(args.appdata_path, diff --git a/lib/xdg/telegramdesktop.desktop b/lib/xdg/org.telegram.desktop.desktop similarity index 100% rename from lib/xdg/telegramdesktop.desktop rename to lib/xdg/org.telegram.desktop.desktop diff --git a/lib/xdg/telegramdesktop.metainfo.xml b/lib/xdg/org.telegram.desktop.metainfo.xml similarity index 100% rename from lib/xdg/telegramdesktop.metainfo.xml rename to lib/xdg/org.telegram.desktop.metainfo.xml diff --git a/snap/snapcraft.yaml b/snap/snapcraft.yaml index 2f5c59e2f..96ff9f46a 100644 --- a/snap/snapcraft.yaml +++ b/snap/snapcraft.yaml @@ -17,7 +17,7 @@ apps: telegram-desktop: command: bin/desktop-launch telegram-desktop common-id: org.telegram.desktop - desktop: usr/share/applications/telegramdesktop.desktop + desktop: usr/share/applications/org.telegram.desktop.desktop environment: # Tell glib to use portals on file associations handling. GTK_USE_PORTAL: 1 @@ -86,7 +86,7 @@ parts: plugin: cmake source: . source-type: git - parse-info: [usr/share/metainfo/telegramdesktop.metainfo.xml] + parse-info: [usr/share/metainfo/org.telegram.desktop.metainfo.xml] build-environment: - LD_LIBRARY_PATH: $CRAFT_STAGE/usr/lib/$CRAFT_ARCH_TRIPLET${LD_LIBRARY_PATH:+:$LD_LIBRARY_PATH} build-packages: @@ -142,7 +142,7 @@ parts: craftctl set version="$version" - sed -i 's|^Icon=telegram$|Icon=${SNAP}/meta/gui/icon.png|g' lib/xdg/telegramdesktop.desktop + 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"