/commet

Your space to connect

Primary LanguageDartGNU Affero General Public License v3.0AGPL-3.0

Commet

Your space to connect

Integration Test Matrix Mastodon Twitter

Commet is a client for Matrix focused on providing a feature rich experience while maintaining a simple interface. The goal is to build a secure, privacy respecting app without compromising on the features you have come to expect from a modern chat client.

Features

  • Supports Windows, Linux, and Android (MacOS and iOS planned in future)
  • End to End Encryption
  • Custom Emoji + Stickers
  • GIF Search
  • Multiple Accounts
  • Spaces
  • Emoji verification & cross signing
  • Push Notifications
  • URL Preview

Translation

Help translate Commet to your language on Weblate

Translation status

Development

Commet is built using Flutter, currently v3.19.5

This repo currently has a monorepo structure, containing two flutter projects: Commet and Tiamat. Commet is the main client, and Tiamat is a sort of wrapper around Material with some extra goodies, which is used to maintain a consistent style across the app. Tiamat may eventually be moved to its own repo, but for now it is maintained here for ease of development.

Building

2. Install Libraries

Commet requires some additional libraries to be built

sudo apt-get install -y ninja-build libgtk-3-dev libolm3 libmpv-dev mpv ffmpeg libmimalloc-dev

3. Fetch Dependencies

You will need to change directory in to commet, then fetch dependencies

cd commet
flutter pub get

4. Code Generation

We make use of procedural code generation in some parts of commet. As a rule, generated code will not be checked in to git, and will need to be generated before building.

To run code generation, run the script within the commet directory: dart run scripts/codegen.dart

5. Building

When building Commet, there are some additional command line arguments that must be used to configure the build.

Required

Argument Valid Values Description
PLATFORM 'desktop', 'mobile', 'linux', 'windows', 'macos', 'android', 'ios', 'web' Defines which platform to build for
BUILD_MODE 'release', 'debug' When building with 'debug' flag, additional debug information will be shown

Optional

Argument Valid Values Description
GIT_HASH * Supply the current git hash when building to show in info screen
VERSION_TAG * Supply the current build version, to display app version
BUILD_DETAIL * Can provide additional detail about the current build, for example if it was being built for Flatpak or Snap

Example:

cd commet
flutter run --dart-define BUILD_MODE=debug --dart-define PLATFORM=linux