Skip to content

Repository files navigation

Retro Messenger

A Linux desktop messenger inspired by MSN Messenger and powered by the Telegram protocol.

The v1.0 release targets x86_64 Linux. Windows and macOS build scaffolding is present in the source tree, but those platforms are not shipped or supported by the v1 release pipeline yet.

For the website see: Retro Messenger Website repo

Inspiration

This messenger application is inspired by MSN Messenger v4.6 (from 2001 by default included under XP) and v5.0 (2002) and v6.0 (2003) using the Windows XP theme.

Install

Download a prebuilt package and its SHA256SUMS file from the Releases page. The AppImage is the shortest path on most x86_64 Linux desktops:

chmod +x RetroMessenger-v1.0.0-x86_64.AppImage
./RetroMessenger-v1.0.0-x86_64.AppImage

Debian, Ubuntu, Mint, Zorin OS, elementary OS, MX Linux, and Kali users can instead download the matching .deb; Fedora users can use the .rpm. Other x86_64 Linux distributions should use the AppImage. Verify a download before running or installing it:

sha256sum --check SHA256SUMS --ignore-missing

Build from source

Prerequisites

  • GCC / G++ compiler (11 or higher)
  • Gtkmm (4.0)
  • OpenSSL & zlib development headers (for TDLib)
  • gperf (for TDLib)

Optionally:

  • Ccache (optional, but much recommended — the first build compiles TDLib, which takes a while)
  • Doxygen

On Debian/Ubuntu, run ./scripts/deps.sh to install everything.

Telegram setup

Retro Messenger uses TDLib (fetched and built automatically by CMake) to talk to the Telegram network.

Official release builds have the Telegram application credentials compiled in (injected from GitLab CI/CD variables at build time), so you can just click Sign In and follow the classic MSN-style login: phone number → login code → optional two-step verification password. Your session is stored in ~/.local/share/retro-messenger/tdlib, so you stay signed in across restarts.

When building from source, provide your own application credentials (create them at my.telegram.org) in one of these ways:

  • export TG_APP_ID / TG_APP_HASH environment variables — at configure time they get compiled in as default; at runtime they always take highest precedence, or
  • set the GSettings keys telegram-api-id / telegram-api-hash under org.melroy.retro-messenger.

Voice & video calls

Real Telegram 1:1 voice and video calls run on ntgcalls (LGPL-3.0), whose prebuilt shared library CMake downloads for you. TDLib handles the call signaling; ntgcalls does the encrypted media transport and the microphone/speaker/camera devices. Start a call with the Voice or Video button in a one-on-one conversation window, or Make a Phone Call in the roster; pick your devices under Tools → Options → Voice & Video calls.

The library is linked dynamically and shipped alongside the binary, as the LGPL requires — see misc/licenses/ntgcalls/. Configure with -DCALLS=OFF to build without it (the call buttons then explain that calls are unavailable); currently only Linux x86_64/arm64 have prebuilt binaries wired up.

Animated stickers

Telegram's animated stickers are .tgs files: gzip-compressed Lottie vector animations that TDLib only downloads — every client rasterizes them itself. Retro Messenger uses rlottie (MIT), fetched and built statically by CMake, and plays them inline in the conversation window. Static WEBP and video (WEBM) stickers keep going through the picture and animation pipelines.

Building

./scripts/build-lnx.sh
./build/src/retro-messenger

Building an AppImage

Build a single-file, distro-agnostic AppImage (the required linuxdeploy/appimagetool tooling is downloaded automatically into the build tree):

./scripts/build-appimage.sh
# Result: build_prod/RetroMessenger-v<version>-x86_64.AppImage

Maintainers: follow RELEASING.md before creating a release tag.

About

MSN inspired Messenger powered by the Telegram protocol

Topics

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages