Telegram

From ArchWiki

Telegram is a cloud-based cross-platform instant messaging service with optional end-to-end encryption. Account creation requires a phone number.

Note: Although the telegram client(s) are open source, the server side is proprietary and centralised, therefore having privacy issues. Use at your own risk as data is controlled by a centralised company.

Installation

You can use one of following methods in order to use Telegram:

Graphical clients

  • Telegram Desktop — The official application built by Arch Linux.
https://desktop.telegram.org || telegram-desktop
  • Kotatogram — Unofficial experimental Telegram Desktop fork.
https://kotatogram.github.io/ || kotatogram-desktopAUR

Web-based clients

Two official browser-agnostic clients exist: Telegram WebK and Telegram WebZ, while the Telegram Chrome app for Chromium-based browser is also available. There are also third-party clients:

  • Franz — An open-source web-based application that can be used for various instant messaging software.
https://meetfranz.com/ || franzAUR
  • Rambox — An alternative to Franz, no longer open source, that offers all features of its counterpart.
https://rambox.app/ || rambox-binAUR

Chat client plugins

Some multi-purpose chat clients provide a plugin for Telegram:

  • Pidginlibpurple Telegram plugin implemented using official tdlib client library. Needs TD_API_ID and TD_API_HASH env vars to be set for makepkg.
https://github.com/ars3niy/tdlib-purple || telegram-tdlib-purple-gitAUR
  • Telepathy — The Morse backend provides capability of connecting the default messenger to Telegram.
https://github.com/TelepathyQt/telepathy-morse || telepathy-morse
https://telepathy.freedesktop.org || telepathy-haze

Command-line clients

  • Telegram messenger CLI — A command-line interface for Telegram which uses the readline interface.
https://github.com/kenorb-contrib/tg || telegram-cli-gitAUR
  • ncTelegram — A ncurses Telegram client developed in Python with the urwid library.
https://github.com/Nanoseb/ncTelegram || nctelegram-gitAUR
  • tg — Telegram terminal client.
https://github.com/paul-nameless/tg || telegram-tgAUR
  • nchat — A terminal-based chat client with support for Telegram.
https://github.com/d99kris/nchat || nchat-gitAUR
  • telega.el — GNU Emacs Telegram client.
https://github.com/zevlg/telega.el || not packaged? search in AUR
  • telegram-send — A command-line tool to directly send messages or files via Telegram.
https://github.com/rahiel/telegram-send || python-telegram-sendAUR

Tips and tricks

GTK dialogs in Telegram Desktop

If you want to use GTK file dialogs instead of Qt ones, set QT_QPA_PLATFORMTHEME environment variable to gtk3.

KDE dialogs in Telegram Desktop

If you want to use KDE file dialogs instead of Qt ones, set QT_QPA_PLATFORMTHEME environment variable to xdgdesktopportal.

SVG icon theme in Telegram Desktop

If you want to use an icon theme based on svg image (e.g. papirus-icon-theme) install qt5-svg. See Qt#Icon theme is not applied for details.

Wayland support

See GNOME/Troubleshooting#Cursor size or theme issues on Wayland.

See Wayland#Qt for generic instructions.

xdg-open in Telegram Desktop

If you want to use xdg-open on t.me links and receive an error not finding a handler for tg:

xdg-mime default org.telegram.desktop.desktop application/x-xdg-protocol-tg
xdg-mime default org.telegram.desktop.desktop x-scheme-handler/tg

Failed to set real-time priority for thread: Operation not permitted

If you get the following error

$ telegram-desktop
[ALSOFT] (EE) Failed to set real-time priority for thread: Operation not permitted (1)

Install realtime-privileges, add yourself to the realtime group and reboot. See Realtime process management#Configuring PAM for details.

HiDPI scaling

If you have Qt scaling enabled on your system, and the scaling factor is not an integer, you may encounter problems like pixelated images and icons. you may need to disable high-DPI scaling for Telegram separately.

Copy /usr/share/applications/org.telegram.desktop.desktop to your user-specific applications and edit it as follows:

$HOME/.local/share/applications/telegramdesktop-no-scaling.desktop
...
Exec=env -u QT_SCREEN_SCALE_FACTORS telegram-desktop -- %u
...

You may need to update the database of desktop entries.

Audio backend

As Telegram makes use of OpenAL, it is possible to configure the audio settings by editing its config files, i.e. ~/.config/alsoft.conf, or the environment variables listed here.

In case sound is not working due to an invalid audio backend being used, it can be overwritten by setting the environment variable ALSOFT_DRIVERS or the drivers property in the [general] section of the OpenAL config. The drivers value "pulse," for example would try pulseaudio first and then fallback to the default driver list.

Choose correct web camera

Telegram version 3.7.1 does not allow to select the web camera to use in video conference. If you want to force telegram to use a different camera, as a workaround you can disable the unwanted camera device as described in [1].

Fcitx support for Qt 6 Telegram

Telegram-desktop is built against Qt 6 since 3.4.2-2. Users upgrading from an older version might notice Fcitx stop working for this application. To make it work again, install fcitx-qt6 or the fcitx-im group. If using Fcitx5, install fcitx5-im.

Changing the default file browser

On environments where the XDG_CURRENT_DESKTOP environment variable is unset (like when not running desktop environments, i.e only window managers) telegram-desktop falls back to a very basic file browser. Using the above mentioned variable, the user can change the default one to the one they like that belongs to a certain desktop environment. Valid values for this variable can found here. For example to use Thunar from the XFCE project:

XDG_CURRENT_DESKTOP=XFCE telegram-desktop

See also