Skip to content

TRIfA Material is a Desktop Messaging Client using the encrypted peer-to-peer Tox protocol

License

Notifications You must be signed in to change notification settings

Zoxcore/trifa_material

Repository files navigation

TRIfA Material

Automated screenshots:

Build Status

Github: Android CI Last release Translations GPLv3+

Development Snapshot Version

the latest Development Snapshot can be downloaded from here

Installation & starting the App [Linux, Windows and MacOS]

                               

  • Install (minimum) JDK 17 as your default java
  • Download or checkout the source repository
  • enter the trifa_material directory
  • run:
    • Linux: ./gradlew run
    • Windows: gradlew.bat run
    • MacOS: ./gradlew run
    • raspi 64bit:
      export MESA_EXTENSION_OVERRIDE="-GL_ARB_invalidate_subdata"
      ./gradlew run
      
    • Asahi Linux:
      export MESA_EXTENSION_OVERRIDE="-GL_ARB_invalidate_subdata"
      export MESA_GL_VERSION_OVERRIDE=3.0
      ./gradlew run
      
    • NixOS:
      chmod a+x trifa-material-x86_64.appimage
      nix-shell -p appimage-run
      appimage-run trifa-material-x86_64.appimage
      

or download any of the release packages

Features

  • One to one chat with friends
  • use Tor Proxy (to hide your IP address)
  • reliable File transfers
  • Drag & Drop for File transfers with friends
  • NGC (new group chats)
  • Group Images in NGC group chats
  • Drag & Drop for Images in NGC group chats
  • Group History Sync (the last 130 minutes)
  • Notifications
  • Multiaccount Support
  • Screensharing
  • Audio calls
  • Noise Suppression for Audio Calls
  • Video calls
  • Screenshots
  • Emoticons
  • Emoji Popup while you type (activate by typing :smile for example)
  • And many more options!

Help Translate the App in your Language

Use Weblate: https://hosted.weblate.org/projects/trifa-a-tox-client-for-android/trifa-material/

Remove my Background from the Camera Video like Zoom or MS Teams does (Linux only!)

check instructions on how to do it here: https://github.com/floe/backscrub

Add Acoustic Echo Cancellation (AEC) to your microphone input (Linux only!)

Activate AEC on Linux with pulseaudio.
You need to have an audio in source already plugged in (like a headset with a microphone)

pactl unload-module module-echo-cancel
pactl load-module module-echo-cancel \
 aec_method=webrtc \
 aec_args='noise_suppression=1,intelligibility_enhancer=0,comfort_noise=0' \
 source_name=echocancel sink_name=echocancel1

pacmd set-default-source echocancel
pacmd set-default-sink echocancel1

to unload the AEC again

pactl unload-module module-echo-cancel

Capture Video and Audio

ffmpeg lib is used to capture Video and Audio.
The Java and JNI parts are built here: https://github.com/zoff99/ffmpeg_av_jni

Notifications

Java can do Notifications on Windows properly, but on macOS and Linux a native library is needed.
The Java and JNI parts are built here: https://github.com/zoff99/jni_notifications

BOM (Bill of materials)

What dependencies are used by trifa material:
https://github.com/Zoxcore/trifa_material/releases/download/nightly/bom_implementation.txt

Full list of compile time dependencies:
https://github.com/Zoxcore/trifa_material/releases/download/nightly/bom_compileclasspath.txt

Full list of run time dependencies:
https://github.com/Zoxcore/trifa_material/releases/download/nightly/bom_runtimeclasspath.txt

Custom fonts

NotoColorEmoji.ttf
downloaded from this repo https://github.com/googlefonts/noto-emoji
https://github.com/googlefonts/noto-emoji/raw/main/fonts/NotoColorEmoji.ttf

NotoSans-Regular.ttf
NotoSans-SemiBold.ttf
both downloaded from https://fonts.google.com/noto/specimen/Noto+Sans

Noto-COLRv1_normal_chars_removed.ttf

this is made by removing all normal characters like SPACE and NUMBERS from Noto-COLRv1.ttf (from this repo https://github.com/googlefonts/noto-emoji/tree/main/fonts)


Any use of this project's code by GitHub Copilot, past or present, is done without our permission. We do not consent to GitHub's use of this project's code in Copilot.
No part of this work may be used or reproduced in any manner for the purpose of training artificial intelligence technologies or systems.