summarylogtreecommitdiffstats
diff options
context:
space:
mode:
authorDan Elkouby2019-12-29 13:46:02 +0200
committerDan Elkouby2019-12-29 15:26:51 +0200
commit49bd5aa5790a7e0fda365ba49b030f6ea8413af2 (patch)
tree59b8010723cc000e8f3df00af28263ccbe177aec
downloadaur-49bd5aa5790a7e0fda365ba49b030f6ea8413af2.tar.gz
Import telegram-desktop from [community]
-rw-r--r--.SRCINFO60
-rw-r--r--CMakeLists.inj20
-rw-r--r--PKGBUILD130
-rw-r--r--Revert-Change-some-private-header-includes.patch66
-rw-r--r--Revert-Disable-DemiBold-fallback-for-Semibold.patch30
-rw-r--r--Use-system-wide-font.patch32
-rw-r--r--libtgvoip.patch18
-rw-r--r--no-gtk2.patch32
-rw-r--r--tdesktop.patch466
-rw-r--r--tdesktop_lottie_animation_qtdebug.patch15
-rw-r--r--tg.protocol11
11 files changed, 880 insertions, 0 deletions
diff --git a/.SRCINFO b/.SRCINFO
new file mode 100644
index 000000000000..7a50f5ac5c21
--- /dev/null
+++ b/.SRCINFO
@@ -0,0 +1,60 @@
+pkgbase = telegram-desktop
+ pkgdesc = Official Telegram Desktop client
+ pkgver = 1.8.15
+ pkgrel = 2
+ url = https://desktop.telegram.org/
+ arch = x86_64
+ license = GPL3
+ makedepends = cmake
+ makedepends = git
+ makedepends = gyp
+ makedepends = range-v3
+ makedepends = python
+ makedepends = libappindicator-gtk3
+ makedepends = dos2unix
+ depends = ffmpeg
+ depends = hicolor-icon-theme
+ depends = minizip
+ depends = openal
+ depends = qt5-base
+ depends = qt5-imageformats
+ depends = openssl
+ optdepends = libnotify: desktop notifications
+ optdepends = ttf-opensans: default Open Sans font family
+ source = tdesktop::git+https://github.com/telegramdesktop/tdesktop.git#tag=v1.8.15
+ source = libtgvoip::git+https://github.com/telegramdesktop/libtgvoip
+ source = variant::git+https://github.com/mapbox/variant
+ source = Catch2::git+https://github.com/catchorg/Catch2.git
+ source = GSL::git+https://github.com/Microsoft/GSL.git
+ source = crl::git+https://github.com/telegramdesktop/crl.git
+ source = xxHash::git+https://github.com/Cyan4973/xxHash.git
+ source = rlottie::git+https://github.com/john-preston/rlottie.git
+ source = tg.protocol
+ source = CMakeLists.inj
+ source = libtgvoip.patch
+ source = tdesktop.patch
+ source = no-gtk2.patch
+ source = Revert-Disable-DemiBold-fallback-for-Semibold.patch
+ source = tdesktop_lottie_animation_qtdebug.patch
+ source = Revert-Change-some-private-header-includes.patch
+ source = Use-system-wide-font.patch
+ sha512sums = SKIP
+ sha512sums = SKIP
+ sha512sums = SKIP
+ sha512sums = SKIP
+ sha512sums = SKIP
+ sha512sums = SKIP
+ sha512sums = SKIP
+ sha512sums = SKIP
+ sha512sums = b87414ceaae19185a8a5749cea1f6d9f3fc3c69b8dd729e3db8790cde00b987c3c827cd30baf0eac579d1884e34aa2f37bb90778c3c0bc9ca211d75a82891b9d
+ sha512sums = b759e45282c7bd04e1fdcbfd0c009773782bebde36d96363db9869a9d78e7fad41314ad311b7afbfa57db4e66c0265da17e9f81f6d62a972466cb71d19d4b47c
+ sha512sums = d60694dc701aa985b0e82a12c9732b945082470441c687b33167a94f94efcf253baf43bb7280ec160ba338485ee5c62de138e4804cae05f27cc5cf4298166d39
+ sha512sums = 218f8711eefb5a8115222e099e6d08fc4079584b3aa3594d05a43390f37d5b51fbf1b64511c3a3e7792ef6c32fa6f4c8a65b6188a9efbd340304602552f3a595
+ sha512sums = 117b0c2bae3d3d3aa94d41382621be4e05c3314a2831dba59e1bcfb443e7b8ff4bcd0403544fa0cb6def85b444146bf59eef9da25f96b041d3ce8f5429b4a867
+ sha512sums = d5cd7ecb5583258462c21a9ae3d4e8ae8c709d47d7ce2c45f8ae23100d24993398b8372021957b9a4607b3988f366e1c0cf64d724d901cb70212665c481217e9
+ sha512sums = 79fcbee94f09df6b443c2b967afe4cba367985af13004b130da27f7bdf20974f76148a8056e98ce92000fabed80a1ff3cb2d332f6f8c70eed8aa909281533cd5
+ sha512sums = 087dd821690dfedf1c275f264a0223b123e31ab9ee95050023930470bc9c866958cae00e2fd9132e6f7efbc4f1dfc3fdc20f8fba1fc9472d92bd702eaa60adb0
+ sha512sums = 2c1bb75449b4634befa3edaac5d20e4b29ede21119549d9a3895dda9d4723f618dd950ee32133e04186fa65d07f80081ba3e3d5585209ba9112aa754d06fbb5c
+
+pkgname = telegram-desktop
+
diff --git a/CMakeLists.inj b/CMakeLists.inj
new file mode 100644
index 000000000000..e6cfed4cf6dd
--- /dev/null
+++ b/CMakeLists.inj
@@ -0,0 +1,20 @@
+# The text will be put into the appropriate CMakeLists by the PKGBUILD
+
+# Avoid rpath compiler parameter
+set_target_properties(Telegram PROPERTIES SKIP_BUILD_RPATH TRUE)
+
+# This makes up for patch of gyp utility, supporting precompiled headers. If
+# Telegram/Patches/gyp.diff file will be changed in future, please check these
+# lines.
+include(../../Telegram/gyp/PrecompiledHeader.cmake)
+add_precompiled_header(Telegram ../../Telegram/SourceFiles/stdafx.h)
+add_precompiled_header(lib_base ../../Telegram/SourceFiles/base/base_pch.h)
+add_precompiled_header(lib_export ../../Telegram/SourceFiles/export/export_pch.h)
+add_precompiled_header(lib_storage ../../Telegram/SourceFiles/storage/storage_pch.h)
+add_precompiled_header(lib_mtproto ../../Telegram/SourceFiles/mtproto/mtp_pch.h)
+add_precompiled_header(lib_ui ../../Telegram/SourceFiles/ui/ui_pch.h)
+
+# You can discover new PCHs using this link:
+# https://github.com/telegramdesktop/tdesktop/search?q=pch_header&unscoped_q=pch_header
+
+# vim: ft=cmake
diff --git a/PKGBUILD b/PKGBUILD
new file mode 100644
index 000000000000..a3a25b2aed11
--- /dev/null
+++ b/PKGBUILD
@@ -0,0 +1,130 @@
+# Maintainer: Sven-Hendrik Haase <svenstaro@gmail.com>
+# Contributor: hexchain <i@hexchain.org>
+
+# Thanks Nicholas Guriev <guriev-ns@ya.ru> for the patches!
+# https://github.com/mymedia2/tdesktop
+
+pkgname=telegram-desktop
+pkgver=1.8.15
+pkgrel=2
+pkgdesc='Official Telegram Desktop client'
+arch=('x86_64')
+url="https://desktop.telegram.org/"
+license=('GPL3')
+depends=('ffmpeg' 'hicolor-icon-theme' 'minizip' 'openal' 'qt5-base' 'qt5-imageformats' 'openssl')
+makedepends=('cmake' 'git' 'gyp' 'range-v3' 'python' 'libappindicator-gtk3' 'dos2unix')
+optdepends=('libnotify: desktop notifications'
+ 'ttf-opensans: default Open Sans font family')
+source=(
+ "tdesktop::git+https://github.com/telegramdesktop/tdesktop.git#tag=v$pkgver"
+ "libtgvoip::git+https://github.com/telegramdesktop/libtgvoip"
+ "variant::git+https://github.com/mapbox/variant"
+ "Catch2::git+https://github.com/catchorg/Catch2.git"
+ "GSL::git+https://github.com/Microsoft/GSL.git"
+ "crl::git+https://github.com/telegramdesktop/crl.git"
+ "xxHash::git+https://github.com/Cyan4973/xxHash.git"
+ "rlottie::git+https://github.com/john-preston/rlottie.git"
+ "tg.protocol"
+ "CMakeLists.inj"
+ "libtgvoip.patch"
+
+ "tdesktop.patch"
+ "no-gtk2.patch"
+ "Revert-Disable-DemiBold-fallback-for-Semibold.patch"
+ "tdesktop_lottie_animation_qtdebug.patch"
+ "Revert-Change-some-private-header-includes.patch"
+ "Use-system-wide-font.patch"
+)
+sha512sums=('SKIP'
+ 'SKIP'
+ 'SKIP'
+ 'SKIP'
+ 'SKIP'
+ 'SKIP'
+ 'SKIP'
+ 'SKIP'
+ 'b87414ceaae19185a8a5749cea1f6d9f3fc3c69b8dd729e3db8790cde00b987c3c827cd30baf0eac579d1884e34aa2f37bb90778c3c0bc9ca211d75a82891b9d'
+ 'b759e45282c7bd04e1fdcbfd0c009773782bebde36d96363db9869a9d78e7fad41314ad311b7afbfa57db4e66c0265da17e9f81f6d62a972466cb71d19d4b47c'
+ 'd60694dc701aa985b0e82a12c9732b945082470441c687b33167a94f94efcf253baf43bb7280ec160ba338485ee5c62de138e4804cae05f27cc5cf4298166d39'
+ '218f8711eefb5a8115222e099e6d08fc4079584b3aa3594d05a43390f37d5b51fbf1b64511c3a3e7792ef6c32fa6f4c8a65b6188a9efbd340304602552f3a595'
+ '117b0c2bae3d3d3aa94d41382621be4e05c3314a2831dba59e1bcfb443e7b8ff4bcd0403544fa0cb6def85b444146bf59eef9da25f96b041d3ce8f5429b4a867'
+ 'd5cd7ecb5583258462c21a9ae3d4e8ae8c709d47d7ce2c45f8ae23100d24993398b8372021957b9a4607b3988f366e1c0cf64d724d901cb70212665c481217e9'
+ '79fcbee94f09df6b443c2b967afe4cba367985af13004b130da27f7bdf20974f76148a8056e98ce92000fabed80a1ff3cb2d332f6f8c70eed8aa909281533cd5'
+ '087dd821690dfedf1c275f264a0223b123e31ab9ee95050023930470bc9c866958cae00e2fd9132e6f7efbc4f1dfc3fdc20f8fba1fc9472d92bd702eaa60adb0'
+ '2c1bb75449b4634befa3edaac5d20e4b29ede21119549d9a3895dda9d4723f618dd950ee32133e04186fa65d07f80081ba3e3d5585209ba9112aa754d06fbb5c')
+
+prepare() {
+ cd "$srcdir/tdesktop"
+ git submodule init
+ git config submodule.Telegram/ThirdParty/libtgvoip.url "$srcdir/libtgvoip"
+ git config submodule.Telegram/ThirdParty/variant.url "$srcdir/variant"
+ git config submodule.Telegram/ThirdParty/GSL.url "$srcdir/GSL"
+ git config submodule.Telegram/ThirdParty/Catch.url "$srcdir/Catch2"
+ git config submodule.Telegram/ThirdParty/crl.url "$srcdir/crl"
+ git config submodule.Telegram/ThirdParty/xxHash.url "$srcdir/xxHash"
+ git config submodule.Telegram/ThirdParty/rlottie.url "$srcdir/rlottie"
+ git submodule update
+
+ dos2unix "$srcdir/tdesktop/.appveyor/install.bat"
+
+ patch -Np1 -i "$srcdir/tdesktop.patch"
+ patch -Np1 -i "$srcdir/no-gtk2.patch"
+ patch -Np1 -i "$srcdir/Revert-Disable-DemiBold-fallback-for-Semibold.patch"
+ patch -Np1 -i "$srcdir/tdesktop_lottie_animation_qtdebug.patch"
+ patch -Np1 -i "$srcdir/Revert-Change-some-private-header-includes.patch"
+ patch -Np1 -i "$srcdir/Use-system-wide-font.patch"
+
+ unix2dos "$srcdir/tdesktop/.appveyor/install.bat"
+ # disable static-qt for rlottie
+ sed "/RLOTTIE_WITH_STATIC_QT/d" -i "$srcdir/tdesktop/Telegram/gyp/lib_rlottie.gyp"
+
+ cd "$srcdir/tdesktop"
+ cd "Telegram/ThirdParty/libtgvoip"
+ patch -Np1 -i "$srcdir/libtgvoip.patch"
+}
+
+build() {
+ cd "$srcdir/tdesktop"
+ export LANG=en_US.UTF-8
+ export GYP_DEFINES="TDESKTOP_DISABLE_CRASH_REPORTS,TDESKTOP_DISABLE_AUTOUPDATE,TDESKTOP_DISABLE_REGISTER_CUSTOM_SCHEME,TDESKTOP_DISABLE_DESKTOP_FILE_GENERATION"
+ export EXTRA_FLAGS="-Winvalid-pch"
+ export CPPFLAGS="$CPPFLAGS $EXTRA_FLAGS"
+ export CXXFLAGS="$CXXFLAGS $EXTRA_FLAGS"
+
+ # Telegram requires us to set API_ID and API_HASH for some reason but they do not provide a way to receive a pair
+ # See https://github.com/telegramdesktop/tdesktop/commit/65b2db216033aa08b7bc846df27843e566f08981 and
+ # https://github.com/telegramdesktop/tdesktop/issues/4717
+ # The official API_ID seems to be 2040 while the API_HASH is "b18441a1ff607e10a989891a5462e627".
+ # We're going to use the defaults for now but might at some point use the official ones from the official binaries as noted above.
+
+ gyp \
+ -Dapi_id=17349 \
+ -Dapi_hash=344583e45741c457fe1862106095a5eb \
+ -Dbuild_defines=${GYP_DEFINES} \
+ -Gconfig=Release \
+ --depth=Telegram/gyp --generator-output=../.. -Goutput_dir=out Telegram/gyp/Telegram.gyp --format=cmake
+ NUM=$((`wc -l < out/Release/CMakeLists.txt` - 2))
+ sed -i "$NUM r ../CMakeLists.inj" out/Release/CMakeLists.txt
+ cd "$srcdir/tdesktop/out/Release"
+ cmake . -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release -UTDESKTOP_OFFICIAL_TARGET
+ make
+}
+
+package() {
+ install -dm755 "$pkgdir/usr/bin"
+ install -m755 "$srcdir/tdesktop/out/Release/Telegram" "$pkgdir/usr/bin/telegram-desktop"
+
+ install -d "$pkgdir/usr/share/applications"
+ install -m644 "$srcdir/tdesktop/lib/xdg/telegramdesktop.desktop" "$pkgdir/usr/share/applications/telegramdesktop.desktop"
+
+ install -d "$pkgdir/usr/share/kservices5"
+ install -m644 "$srcdir/tg.protocol" "$pkgdir/usr/share/kservices5/tg.protocol"
+
+ local icon_size icon_dir
+ for icon_size in 16 32 48 64 128 256 512; do
+ icon_dir="$pkgdir/usr/share/icons/hicolor/${icon_size}x${icon_size}/apps"
+
+ install -d "$icon_dir"
+ install -m644 "$srcdir/tdesktop/Telegram/Resources/art/icon${icon_size}.png" "$icon_dir/telegram.png"
+ done
+}
diff --git a/Revert-Change-some-private-header-includes.patch b/Revert-Change-some-private-header-includes.patch
new file mode 100644
index 000000000000..85611998311e
--- /dev/null
+++ b/Revert-Change-some-private-header-includes.patch
@@ -0,0 +1,66 @@
+From 46a55ed8f7ef4ee99ebccf1bdded3d5ccaef33af Mon Sep 17 00:00:00 2001
+From: Jiachen YANG <farseerfc@gmail.com>
+Date: Fri, 4 Oct 2019 17:00:48 +0900
+Subject: [PATCH 5/6] Revert "Change some private header includes."
+
+This reverts commit b9d3ba621eb8af638af46c6b3cfd7a8330bf0dd5.
+---
+ Telegram/SourceFiles/ui/text/text.cpp | 1 -
+ Telegram/SourceFiles/ui/text/text.h | 2 +-
+ Telegram/SourceFiles/ui/text/text_block.cpp | 2 --
+ Telegram/SourceFiles/ui/text/text_block.h | 1 +
+ 4 files changed, 2 insertions(+), 4 deletions(-)
+
+diff --git a/Telegram/SourceFiles/ui/text/text.cpp b/Telegram/SourceFiles/ui/text/text.cpp
+index eaeb52b35..2c55f1123 100644
+--- a/Telegram/SourceFiles/ui/text/text.cpp
++++ b/Telegram/SourceFiles/ui/text/text.cpp
+@@ -14,7 +14,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
+ #include "ui/ui_integration.h"
+ #include "platform/platform_info.h"
+
+-#include <private/qfontengine_p.h>
+ #include <private/qharfbuzz_p.h>
+
+ namespace Ui {
+diff --git a/Telegram/SourceFiles/ui/text/text.h b/Telegram/SourceFiles/ui/text/text.h
+index 5d7c2cd07..3a2de5d3e 100644
+--- a/Telegram/SourceFiles/ui/text/text.h
++++ b/Telegram/SourceFiles/ui/text/text.h
+@@ -12,7 +12,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
+ #include "ui/click_handler.h"
+ #include "base/flags.h"
+
+-#include <private/qfixed_p.h>
++#include <private/qfontengine_p.h>
+
+ static const QChar TextCommand(0x0010);
+ enum TextCommands {
+diff --git a/Telegram/SourceFiles/ui/text/text_block.cpp b/Telegram/SourceFiles/ui/text/text_block.cpp
+index 8e6914197..d83073085 100644
+--- a/Telegram/SourceFiles/ui/text/text_block.cpp
++++ b/Telegram/SourceFiles/ui/text/text_block.cpp
+@@ -9,8 +9,6 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
+
+ #include "styles/style_basic.h"
+
+-#include <private/qfontengine_p.h>
+-
+ // COPIED FROM qtextlayout.cpp AND MODIFIED
+ namespace Ui {
+ namespace Text {
+diff --git a/Telegram/SourceFiles/ui/text/text_block.h b/Telegram/SourceFiles/ui/text/text_block.h
+index 6fcf1cd51..27d724ee8 100644
+--- a/Telegram/SourceFiles/ui/text/text_block.h
++++ b/Telegram/SourceFiles/ui/text/text_block.h
+@@ -11,6 +11,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
+ #include "ui/emoji_config.h"
+
+ #include <private/qfixed_p.h>
++#include <private/qfontengine_p.h>
+
+ namespace Ui {
+ namespace Text {
+--
+2.23.0
+
diff --git a/Revert-Disable-DemiBold-fallback-for-Semibold.patch b/Revert-Disable-DemiBold-fallback-for-Semibold.patch
new file mode 100644
index 000000000000..c94043709e00
--- /dev/null
+++ b/Revert-Disable-DemiBold-fallback-for-Semibold.patch
@@ -0,0 +1,30 @@
+From b7effa2fd838afc049ec5cc00df3bd0810a95da4 Mon Sep 17 00:00:00 2001
+From: Jiachen YANG <farseerfc@gmail.com>
+Date: Fri, 4 Oct 2019 16:59:26 +0900
+Subject: [PATCH 3/6] Revert "Disable DemiBold fallback for Semibold."
+
+This reverts commit 310c68a744ae8163c96b88944d96a6f6b14b3cdf.
+---
+ Telegram/SourceFiles/ui/style/style_core_font.cpp | 6 +++---
+ 1 file changed, 3 insertions(+), 3 deletions(-)
+
+diff --git a/Telegram/SourceFiles/ui/style/style_core_font.cpp b/Telegram/SourceFiles/ui/style/style_core_font.cpp
+index 653dbfff0..22ccfea7e 100644
+--- a/Telegram/SourceFiles/ui/style/style_core_font.cpp
++++ b/Telegram/SourceFiles/ui/style/style_core_font.cpp
+@@ -161,9 +161,9 @@ FontData::FontData(int size, uint32 flags, int family, Font *other)
+
+ f.setPixelSize(size);
+ if (_flags & FontBold) {
+- f.setBold(true);
+- //} else if (fontFamilies[family] == "Open Sans Semibold") {
+- // f.setWeight(QFont::DemiBold);
++ f.setBold(_flags & FontBold);
++ } else if (fontFamilies[family] == "Open Sans Semibold") {
++ f.setWeight(QFont::DemiBold);
+ }
+ f.setItalic(_flags & FontItalic);
+ f.setUnderline(_flags & FontUnderline);
+--
+2.23.0
+
diff --git a/Use-system-wide-font.patch b/Use-system-wide-font.patch
new file mode 100644
index 000000000000..e08edb5a0569
--- /dev/null
+++ b/Use-system-wide-font.patch
@@ -0,0 +1,32 @@
+diff --git a/Telegram/Resources/qrc/fonts.qrc b/Telegram/Resources/qrc/fonts.qrc
+index 233b8d572..122d89140 100644
+--- a/Telegram/Resources/qrc/fonts.qrc
++++ b/Telegram/Resources/qrc/fonts.qrc
+@@ -1,7 +1,4 @@
+ <RCC>
+ <qresource prefix="/gui">
+- <file alias="fonts/OpenSans-Regular.ttf">../fonts/OpenSans-Regular.ttf</file>
+- <file alias="fonts/OpenSans-Bold.ttf">../fonts/OpenSans-Bold.ttf</file>
+- <file alias="fonts/OpenSans-Semibold.ttf">../fonts/OpenSans-Semibold.ttf</file>
+ </qresource>
+ </RCC>
+diff --git a/Telegram/SourceFiles/ui/style/style_core_font.cpp b/Telegram/SourceFiles/ui/style/style_core_font.cpp
+index 22ccfea7e..36f271f93 100644
+--- a/Telegram/SourceFiles/ui/style/style_core_font.cpp
++++ b/Telegram/SourceFiles/ui/style/style_core_font.cpp
+@@ -84,9 +84,9 @@ void StartFonts() {
+ }
+ Started = true;
+
+- auto regular = LoadCustomFont(":/gui/fonts/OpenSans-Regular.ttf", "Open Sans");
+- auto bold = LoadCustomFont(":/gui/fonts/OpenSans-Bold.ttf", "Open Sans", style::internal::FontBold);
+- auto semibold = LoadCustomFont(":/gui/fonts/OpenSans-Semibold.ttf", "Open Sans Semibold");
++ auto regular = ValidateFont("Open Sans");
++ auto bold = ValidateFont("Open Sans", style::internal::FontBold);
++ auto semibold = ValidateFont("Open Sans Semibold");
+
+ #ifdef Q_OS_WIN
+ // Attempt to workaround a strange font bug with Open Sans Semibold not loading.
+--
+2.23.0
+
diff --git a/libtgvoip.patch b/libtgvoip.patch
new file mode 100644
index 000000000000..8e838df34ba1
--- /dev/null
+++ b/libtgvoip.patch
@@ -0,0 +1,18 @@
+diff --git a/libtgvoip.gyp b/libtgvoip.gyp
+index 52fbea1..9a4dfb7 100644
+--- a/libtgvoip.gyp
++++ b/libtgvoip.gyp
+@@ -13,11 +13,12 @@
+ 'variables': {
+ 'tgvoip_src_loc': '.',
+ 'official_build_target%': '',
+- 'linux_path_opus_include%': '<(DEPTH)/../../../Libraries/opus/include',
++ 'linux_path_opus_include%': '/usr/include/opus',
+ },
+ 'include_dirs': [
+ '<(tgvoip_src_loc)/webrtc_dsp',
+ '<(linux_path_opus_include)',
++ '/usr/include/openssl'
+ ],
+ 'direct_dependent_settings': {
+ 'include_dirs': [
diff --git a/no-gtk2.patch b/no-gtk2.patch
new file mode 100644
index 000000000000..e60038d0e828
--- /dev/null
+++ b/no-gtk2.patch
@@ -0,0 +1,32 @@
+diff --git a/Telegram/SourceFiles/platform/linux/linux_libs.cpp b/Telegram/SourceFiles/platform/linux/linux_libs.cpp
+index 5071d63d1..671d0e661 100644
+--- a/Telegram/SourceFiles/platform/linux/linux_libs.cpp
++++ b/Telegram/SourceFiles/platform/linux/linux_libs.cpp
+@@ -243,24 +243,12 @@ void start() {
+ indicatorLoaded = setupAppIndicator(lib_indicator);
+ }
+ }
+- if ((!gtkLoaded || !indicatorLoaded) && !isWayland) {
+- if (loadLibrary(lib_indicator, "ayatana-appindicator", 1) || loadLibrary(lib_indicator, "appindicator", 1)) {
+- if (loadLibrary(lib_gtk, "gtk-x11-2.0", 0)) {
+- gtkLoaded = indicatorLoaded = false;
+- gtkLoaded = setupGtkBase(lib_gtk);
+- indicatorLoaded = setupAppIndicator(lib_indicator);
+- }
+- }
+- }
+
+ // If no appindicator, try at least load gtk.
+ if (!gtkLoaded && !indicatorLoaded) {
+ if (loadLibrary(lib_gtk, "gtk-3", 0)) {
+ gtkLoaded = setupGtkBase(lib_gtk);
+ }
+- if (!gtkLoaded && !isWayland && loadLibrary(lib_gtk, "gtk-x11-2.0", 0)) {
+- gtkLoaded = setupGtkBase(lib_gtk);
+- }
+ }
+
+ if (gtkLoaded) {
+--
+2.23.0
+
diff --git a/tdesktop.patch b/tdesktop.patch
new file mode 100644
index 000000000000..b59eb7f43cd6
--- /dev/null
+++ b/tdesktop.patch
@@ -0,0 +1,466 @@
+diff --git a/Telegram/Resources/qrc/linux.qrc b/Telegram/Resources/qrc/linux.qrc
+index 164e8d4f2..12319be14 100644
+--- a/Telegram/Resources/qrc/linux.qrc
++++ b/Telegram/Resources/qrc/linux.qrc
+@@ -1,6 +1,5 @@
+ <RCC>
+ <qresource prefix="/qt">
+- <file alias="etc/qt.conf">../etc/qt_linux.conf</file>
+ </qresource>
+ <qresource prefix="/fc">
+ <file alias="fc-custom.conf">../fc-custom.conf</file>
+diff --git a/Telegram/SourceFiles/core/launcher.cpp b/Telegram/SourceFiles/core/launcher.cpp
+index 3ba28309b..e280c44fa 100644
+--- a/Telegram/SourceFiles/core/launcher.cpp
++++ b/Telegram/SourceFiles/core/launcher.cpp
+@@ -272,6 +272,19 @@ int Launcher::exec() {
+ Logs::start(this); // must be started before Platform is started
+ Platform::start(); // must be started before Sandbox is created
+
++ // I don't know why path is not in QT_PLUGIN_PATH by default
++ QCoreApplication::addLibraryPath("/usr/lib/qt/plugins");
++ // without this Telegram doesn't start on Ubuntu 17.04 due GTK errors
++ setenv("QT_STYLE_OVERRIDE", "qwerty", false);
++ // Telegram doesn't start when extraordinary theme is set, see launchpad.net/bugs/1680943
++ unsetenv("QT_QPA_PLATFORMTHEME");
++
++ // unset QT screen scale related envvars
++ unsetenv("QT_SCREEN_SCALE_FACTORS");
++ unsetenv("QT_AUTO_SCREEN_SCALE_FACTOR");
++ unsetenv("QT_SCALE_FACTOR");
++ unsetenv("QT_DEVICE_PIXEL_RATIO");
++
+ auto result = executeApplication();
+
+ DEBUG_LOG(("Telegram finished, result: %1").arg(result));
+diff --git a/Telegram/SourceFiles/qt_functions.cpp b/Telegram/SourceFiles/qt_functions.cpp
+new file mode 100644
+index 000000000..4a722b8d7
+--- /dev/null
++++ b/Telegram/SourceFiles/qt_functions.cpp
+@@ -0,0 +1,94 @@
++/****************************************************************************
++**
++** Copyright (C) 2015 The Qt Company Ltd.
++** Contact: http://www.qt.io/licensing/
++**
++** This file contains some parts of the Qt Toolkit.
++**
++** $QT_BEGIN_LICENSE:LGPL21$
++** Commercial License Usage
++** Licensees holding valid commercial Qt licenses may use this file in
++** accordance with the commercial license agreement provided with the
++** Software or, alternatively, in accordance with the terms contained in
++** a written agreement between you and The Qt Company. For licensing terms
++** and conditions see http://www.qt.io/terms-conditions. For further
++** information use the contact form at http://www.qt.io/contact-us.
++**
++** GNU Lesser General Public License Usage
++** Alternatively, this file may be used under the terms of the GNU Lesser
++** General Public License version 2.1 or version 3 as published by the Free
++** Software Foundation and appearing in the file LICENSE.LGPLv21 and
++** LICENSE.LGPLv3 included in the packaging of this file. Please review the
++** following information to ensure the GNU Lesser General Public License
++** requirements will be met: https://www.gnu.org/licenses/lgpl.html and
++** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
++**
++** As a special exception, The Qt Company gives you certain additional
++** rights. These rights are described in The Qt Company LGPL Exception
++** version 1.1, included in the file LGPL_EXCEPTION.txt in this package.
++**
++** $QT_END_LICENSE$
++**
++****************************************************************************/
++
++/* TODO: find a dynamic library with these symbols. */
++
++/* Debian maintainer: this function is taken from qfiledialog.cpp */
++/*
++ Makes a list of filters from ;;-separated text.
++ Used by the mac and windows implementations
++*/
++QStringList qt_make_filter_list(const QString &filter)
++{
++ QString f(filter);
++
++ if (f.isEmpty())
++ return QStringList();
++
++ QString sep(QLatin1String(";;"));
++ int i = f.indexOf(sep, 0);
++ if (i == -1) {
++ if (f.indexOf(QLatin1Char('\n'), 0) != -1) {
++ sep = QLatin1Char('\n');
++ i = f.indexOf(sep, 0);
++ }
++ }
++
++ return f.split(sep);
++}
++
++/* Debian maintainer: this constructor is taken from qtextengine.cpp for TextPainter::drawLine */
++QTextItemInt::QTextItemInt(const QGlyphLayout &g, QFont *font, const QChar *chars_, int numChars, QFontEngine *fe, const QTextCharFormat &format)
++ : flags(0), justified(false), underlineStyle(QTextCharFormat::NoUnderline), charFormat(format),
++ num_chars(numChars), chars(chars_), logClusters(0), f(font), glyphs(g), fontEngine(fe)
++{
++}
++
++/* Debian maintainer: this method is also taken from qtextengine.cpp */
++// Fix up flags and underlineStyle with given info
++void QTextItemInt::initWithScriptItem(const QScriptItem &si)
++{
++ // explicitly initialize flags so that initFontAttributes can be called
++ // multiple times on the same TextItem
++ flags = 0;
++ if (si.analysis.bidiLevel %2)
++ flags |= QTextItem::RightToLeft;
++ ascent = si.ascent;
++ descent = si.descent;
++
++ if (charFormat.hasProperty(QTextFormat::TextUnderlineStyle)) {
++ underlineStyle = charFormat.underlineStyle();
++ } else if (charFormat.boolProperty(QTextFormat::FontUnderline)
++ || f->d->underline) {
++ underlineStyle = QTextCharFormat::SingleUnderline;
++ }
++
++ // compat
++ if (underlineStyle == QTextCharFormat::SingleUnderline)
++ flags |= QTextItem::Underline;
++
++ if (f->d->overline || charFormat.fontOverline())
++ flags |= QTextItem::Overline;
++ if (f->d->strikeOut || charFormat.fontStrikeOut())
++ flags |= QTextItem::StrikeOut;
++}
+diff --git a/Telegram/SourceFiles/qt_static_plugins.cpp b/Telegram/SourceFiles/qt_static_plugins.cpp
+index a757d085f..122ff0f5d 100644
+--- a/Telegram/SourceFiles/qt_static_plugins.cpp
++++ b/Telegram/SourceFiles/qt_static_plugins.cpp
+@@ -15,14 +15,4 @@ Q_IMPORT_PLUGIN(QWebpPlugin)
+ Q_IMPORT_PLUGIN(QCocoaIntegrationPlugin)
+ Q_IMPORT_PLUGIN(QGenericEnginePlugin)
+ #elif defined Q_OS_LINUX // Q_OS_WIN | Q_OS_MAC
+-Q_IMPORT_PLUGIN(QWebpPlugin)
+-Q_IMPORT_PLUGIN(QXcbIntegrationPlugin)
+-Q_IMPORT_PLUGIN(QConnmanEnginePlugin)
+-Q_IMPORT_PLUGIN(QGenericEnginePlugin)
+-Q_IMPORT_PLUGIN(QNetworkManagerEnginePlugin)
+-Q_IMPORT_PLUGIN(QComposePlatformInputContextPlugin)
+-Q_IMPORT_PLUGIN(QIbusPlatformInputContextPlugin)
+-Q_IMPORT_PLUGIN(QFcitxPlatformInputContextPlugin)
+-Q_IMPORT_PLUGIN(QHimePlatformInputContextPlugin)
+-Q_IMPORT_PLUGIN(NimfInputContextPlugin)
+ #endif // Q_OS_WIN | Q_OS_MAC | Q_OS_LINUX
+diff --git a/Telegram/SourceFiles/ui/text/text.cpp b/Telegram/SourceFiles/ui/text/text.cpp
+index 7891995be..eaeb52b35 100644
+--- a/Telegram/SourceFiles/ui/text/text.cpp
++++ b/Telegram/SourceFiles/ui/text/text.cpp
+@@ -1968,11 +1968,11 @@ private:
+ if (item == -1)
+ return;
+
+-#ifdef OS_MAC_OLD
++#if defined(OS_MAC_OLD) || QT_VERSION < QT_VERSION_CHECK(5, 6, 0)
+ auto end = _e->findItem(line.from + line.length - 1);
+-#else // OS_MAC_OLD
++#else
+ auto end = _e->findItem(line.from + line.length - 1, item);
+-#endif // OS_MAC_OLD
++#endif
+
+ auto blockIndex = _lineStartBlock;
+ auto currentBlock = _t->_blocks[blockIndex].get();
+diff --git a/Telegram/SourceFiles/ui/text/text_block.cpp b/Telegram/SourceFiles/ui/text/text_block.cpp
+index 29173c5c2..b47a53d76 100644
+--- a/Telegram/SourceFiles/ui/text/text_block.cpp
++++ b/Telegram/SourceFiles/ui/text/text_block.cpp
+@@ -334,6 +334,9 @@ TextBlock::TextBlock(const style::font &font, const QString &str, QFixed minResi
+
+ QStackTextEngine engine(part, blockFont->f);
+ BlockParser parser(&engine, this, minResizeWidth, _from, part);
++ QTextLayout layout(part, blockFont->f);
++ layout.beginLayout();
++ layout.createLine();
+ }
+ }
+
+diff --git a/Telegram/gyp/PrecompiledHeader.cmake b/Telegram/gyp/PrecompiledHeader.cmake
+index dfe1193be..0b13fc098 100644
+--- a/Telegram/gyp/PrecompiledHeader.cmake
++++ b/Telegram/gyp/PrecompiledHeader.cmake
+@@ -114,7 +114,7 @@ function(add_precompiled_header _target _input)
+ set(_compiler_FLAGS "@${_pch_c_flags_file}")
+ add_custom_command(
+ OUTPUT "${_output_c}"
+- COMMAND "${CMAKE_C_COMPILER}" ${_compiler_FLAGS} -x c-header -o "${_output_c}" -c "${_pchfile}"
++ COMMAND "${CMAKE_C_COMPILER}" ${_compiler_FLAGS} "$(C_DEFINES)" "$(C_INCLUDES)" "$(C_FLAGS)" -x c-header -o "${_output_c}" -c "${_pchfile}"
+ DEPENDS "${_pchfile}" "${_pch_c_flags_file}"
+ IMPLICIT_DEPENDS C "${_pch_header}"
+ COMMENT "Precompiling ${_name} for ${_target} (C)")
+@@ -125,7 +125,7 @@ function(add_precompiled_header _target _input)
+ set(_compiler_FLAGS "@${_pch_cpp_flags_file}")
+ add_custom_command(
+ OUTPUT "${_output_cxx}"
+- COMMAND "${CMAKE_CXX_COMPILER}" ${_compiler_FLAGS} -x c++-header -o "${_output_cxx}" -c "${_pchfile}"
++ COMMAND "${CMAKE_CXX_COMPILER}" ${_compiler_FLAGS} "$(CXX_DEFINES)" "$(CXX_INCLUDES)" "$(CXX_FLAGS)" -x c++-header -o "${_output_cxx}" -c "${_pchfile}"
+ DEPENDS "${_pchfile}" "${_pch_cpp_flags_file}"
+ IMPLICIT_DEPENDS CXX "${_pch_header}"
+ COMMENT "Precompiling header ${_name} for ${_target} (C++)")
+diff --git a/Telegram/gyp/common/linux.gypi b/Telegram/gyp/common/linux.gypi
+index cdcdef1dc..667fbb7f3 100644
+--- a/Telegram/gyp/common/linux.gypi
++++ b/Telegram/gyp/common/linux.gypi
+@@ -11,7 +11,6 @@
+ 'linux_common_flags': [
+ '-pipe',
+ '-Wall',
+- '-Werror',
+ '-W',
+ '-fPIC',
+ '-Wno-unused-variable',
+@@ -86,7 +85,6 @@
+ ],
+ 'defines': [
+ '_REENTRANT',
+- 'QT_STATICPLUGIN',
+ 'QT_PLUGIN',
+ ],
+ 'cflags_c': [
+diff --git a/Telegram/gyp/modules/qt.gypi b/Telegram/gyp/modules/qt.gypi
+index 0b783ec21..3f917765a 100644
+--- a/Telegram/gyp/modules/qt.gypi
++++ b/Telegram/gyp/modules/qt.gypi
+@@ -14,25 +14,21 @@
+ [ 'build_macold', {
+ 'qt_version%': '5.3.2',
+ }, {
+- 'qt_version%': '5.6.2',
++ 'qt_version%': '<!(echo /usr/include/qt/QtCore/*/ | grep -Po "\d+\.\d+\.\d+")',
+ }]
+ ],
+ },
+ 'qt_libs': [
+- 'qwebp',
+- 'Qt5PrintSupport',
+- 'Qt5PlatformSupport',
+ 'Qt5Network',
+ 'Qt5Widgets',
+ 'Qt5Gui',
+- 'qtharfbuzzng',
+ ],
+ 'qt_version%': '<(qt_version)',
+ 'conditions': [
+ [ 'build_macold', {
+ 'linux_path_qt%': '/usr/local/macold/Qt-<(qt_version)',
+ }, {
+- 'linux_path_qt%': '/usr/local/tdesktop/Qt-<(qt_version)',
++ 'linux_path_qt%': '/usr/lib/qt',
+ }]
+ ]
+ },
+@@ -72,32 +68,13 @@
+ ],
+ }],
+ [ 'build_linux', {
+- 'qt_lib_prefix': 'lib',
+- 'qt_lib_debug_postfix': '.a',
+- 'qt_lib_release_postfix': '.a',
++ 'qt_lib_prefix': '',
++ 'qt_lib_debug_postfix': '',
++ 'qt_lib_release_postfix': '',
+ 'qt_libs': [
+- 'qxcb',
+- 'Qt5XcbQpa',
+- 'qconnmanbearer',
+- 'qgenericbearer',
+- 'qnmbearer',
+ '<@(qt_libs)',
+ 'Qt5DBus',
+ 'Qt5Core',
+- 'qtpcre',
+- 'Xi',
+- 'Xext',
+- 'Xfixes',
+- 'SM',
+- 'ICE',
+- 'fontconfig',
+- 'expat',
+- 'freetype',
+- 'z',
+- 'xcb-shm',
+- 'xcb-xfixes',
+- 'xcb-render',
+- 'xcb-static',
+ ],
+ }],
+ ],
+@@ -127,11 +104,6 @@
+ # '<!@(python <(DEPTH)/list_sources.py [sources] <(qt_moc_list_sources_arg))'
+ # where [sources] contains all your source files
+ 'qt_moc_list_sources_arg': '--moc-prefix SHARED_INTERMEDIATE_DIR/<(_target_name)/moc/moc_',
+-
+- 'linux_path_xkbcommon%': '/usr/local',
+- 'linux_lib_ssl%': '/usr/local/ssl/lib/libssl.a',
+- 'linux_lib_crypto%': '/usr/local/ssl/lib/libcrypto.a',
+- 'linux_lib_icu%': 'libicutu.a libicui18n.a libicuuc.a libicudata.a',
+ },
+
+ 'configurations': {
+@@ -180,14 +152,14 @@
+ },
+
+ 'include_dirs': [
+- '<(qt_loc)/include',
+- '<(qt_loc)/include/QtCore',
+- '<(qt_loc)/include/QtGui',
+- '<(qt_loc)/include/QtDBus',
+- '<(qt_loc)/include/QtCore/<(qt_version)',
+- '<(qt_loc)/include/QtGui/<(qt_version)',
+- '<(qt_loc)/include/QtCore/<(qt_version)/QtCore',
+- '<(qt_loc)/include/QtGui/<(qt_version)/QtGui',
++ '/usr/include/qt',
++ '/usr/include/qt/QtCore',
++ '/usr/include/qt/QtGui',
++ '/usr/include/qt/QtDBus',
++ '/usr/include/qt/QtCore/<(qt_version)',
++ '/usr/include/qt/QtGui/<(qt_version)',
++ '/usr/include/qt/QtCore/<(qt_version)/QtCore',
++ '/usr/include/qt/QtGui/<(qt_version)/QtGui',
+ ],
+ 'library_dirs': [
+ '<(qt_loc)/lib',
+@@ -212,17 +184,10 @@
+ ],
+ 'libraries': [
+ '<(PRODUCT_DIR)/obj.target/liblinux_glibc_wraps.a',
+- '<(linux_path_xkbcommon)/lib/libxkbcommon.a',
+ '<@(qt_libs_release)',
+- '<(linux_lib_ssl)',
+- '<(linux_lib_crypto)',
+- '<!@(python -c "for s in \'<(linux_lib_icu)\'.split(\' \'): print(s)")',
+- '-lxcb',
++ '-lcrypto',
+ '-lX11',
+- '-lX11-xcb',
+- '-ldbus-1',
+ '-ldl',
+- '-lgthread-2.0',
+ '-lglib-2.0',
+ '-lpthread',
+ ],
+@@ -230,7 +195,6 @@
+ '<(qt_loc)/mkspecs/linux-g++',
+ ],
+ 'ldflags': [
+- '-static-libstdc++',
+ '-pthread',
+ '-rdynamic',
+ ],
+diff --git a/Telegram/gyp/modules/qt_moc.gypi b/Telegram/gyp/modules/qt_moc.gypi
+index ebee90a15..75424d4bb 100644
+--- a/Telegram/gyp/modules/qt_moc.gypi
++++ b/Telegram/gyp/modules/qt_moc.gypi
+@@ -15,7 +15,7 @@
+ '<(SHARED_INTERMEDIATE_DIR)/<(_target_name)/moc/moc_<(RULE_INPUT_ROOT).cpp',
+ ],
+ 'action': [
+- '<(qt_loc)/bin/moc<(exe_ext)',
++ '/usr/bin/moc',
+
+ # Silence "Note: No relevant classes found. No output generated."
+ '--no-notes',
+diff --git a/Telegram/gyp/modules/qt_rcc.gypi b/Telegram/gyp/modules/qt_rcc.gypi
+index f5624a82b..1129a95c5 100644
+--- a/Telegram/gyp/modules/qt_rcc.gypi
++++ b/Telegram/gyp/modules/qt_rcc.gypi
+@@ -15,7 +15,7 @@
+ '<(SHARED_INTERMEDIATE_DIR)/<(_target_name)/qrc/qrc_<(RULE_INPUT_ROOT).cpp',
+ ],
+ 'action': [
+- '<(qt_loc)/bin/rcc<(exe_ext)',
++ '/usr/bin/rcc',
+ '-name', '<(RULE_INPUT_ROOT)',
+ '-no-compress',
+ '<(RULE_INPUT_PATH)',
+diff --git a/Telegram/gyp/telegram/linux.gypi b/Telegram/gyp/telegram/linux.gypi
+index 385f2b89f..f3ddf7e83 100644
+--- a/Telegram/gyp/telegram/linux.gypi
++++ b/Telegram/gyp/telegram/linux.gypi
+@@ -19,27 +19,21 @@
+ #'xkbcommon',
+ ],
+ },
++ 'library_dirs': [
++ '/usr/lib',
++ '/usr/lib/openssl',
++ ],
+ 'libraries': [
+- '-lbreakpad_client',
+- '-lcomposeplatforminputcontextplugin',
+- '-libusplatforminputcontextplugin',
+- '-lfcitxplatforminputcontextplugin',
+- '-lhimeplatforminputcontextplugin',
+- '-lnimfplatforminputcontextplugin',
+- '-llzma',
+ '-lopenal',
+ '-lavformat',
+ '-lavcodec',
+ '-lswresample',
+ '-lswscale',
+ '-lavutil',
++ '-lminizip',
+ '-lopus',
+- '-lva-x11',
+- '-lva-drm',
+- '-lva',
+- '-lvdpau',
+- '-ldrm',
+ '-lz',
++ '-llzma',
+ # '<!(pkg-config 2> /dev/null --libs <@(pkgconfig_libs))',
+ ],
+ 'cflags_cc': [
+@@ -51,7 +45,6 @@
+ '-Wl,-wrap,secure_getenv',
+ '-Wl,-wrap,clock_gettime',
+ '-Wl,--no-as-needed,-lrt',
+- '-Wl,-Bstatic',
+ ],
+ 'configurations': {
+ 'Release': {
+@@ -75,9 +68,8 @@
+ ],
+ }], ['not_need_gtk!="True"', {
+ 'cflags_cc': [
+- '<!(pkg-config 2> /dev/null --cflags gtk+-2.0)',
+- '<!(pkg-config 2> /dev/null --cflags glib-2.0)',
+- '<!(pkg-config 2> /dev/null --cflags dee-1.0)',
++ '<!(pkg-config 2> /dev/null --cflags appindicator3-0.1)',
++ '<!(pkg-config 2> /dev/null --cflags gtk+-3.0)',
+ ],
+ }], ['<!(pkg-config ayatana-appindicator3-0.1; echo $?) == 0', {
+ 'cflags_cc': [ '<!(pkg-config --cflags ayatana-appindicator3-0.1)' ],
+diff --git a/Telegram/gyp/telegram/sources.txt b/Telegram/gyp/telegram/sources.txt
+index 38d9d0e64..459919abf 100644
+--- a/Telegram/gyp/telegram/sources.txt
++++ b/Telegram/gyp/telegram/sources.txt
+@@ -863,14 +863,7 @@
+ <(src_loc)/settings.cpp
+ <(src_loc)/settings.h
+
+-platforms: !win
+-<(minizip_loc)/crypt.h
+-<(minizip_loc)/ioapi.c
+-<(minizip_loc)/ioapi.h
+-<(minizip_loc)/zip.c
+-<(minizip_loc)/zip.h
+-<(minizip_loc)/unzip.c
+-<(minizip_loc)/unzip.h
++<(src_loc)/qt_functions.cpp
+
+ platforms: win
+ <(res_loc)/winrc/Telegram.rc
+--
+2.23.0
+
diff --git a/tdesktop_lottie_animation_qtdebug.patch b/tdesktop_lottie_animation_qtdebug.patch
new file mode 100644
index 000000000000..55a2e35520fe
--- /dev/null
+++ b/tdesktop_lottie_animation_qtdebug.patch
@@ -0,0 +1,15 @@
+diff --git a/Telegram/SourceFiles/lottie/lottie_animation.cpp b/Telegram/SourceFiles/lottie/lottie_animation.cpp
+index f681c9220..8f80640e1 100644
+--- a/Telegram/SourceFiles/lottie/lottie_animation.cpp
++++ b/Telegram/SourceFiles/lottie/lottie_animation.cpp
+@@ -15,6 +15,7 @@ https://github.com/telegramdesktop/tdesktop/blob/master/LEGAL
+ #include "logs.h"
+
+ #include <QFile>
++#include <QtDebug>
+ #include <rlottie.h>
+ #include <crl/crl_async.h>
+ #include <crl/crl_on_main.h>
+--
+2.23.0
+
diff --git a/tg.protocol b/tg.protocol
new file mode 100644
index 000000000000..a4b083acb1b0
--- /dev/null
+++ b/tg.protocol
@@ -0,0 +1,11 @@
+[Protocol]
+exec=/usr/bin/telegram-desktop -- %u
+protocol=tg
+input=none
+output=none
+helper=true
+listing=false
+reading=false
+writing=false
+makedir=false
+deleting=false