Git Product home page Git Product logo

messenger-gtk's Introduction

Messenger-GTK

A GTK based GUI for the Messenger service of GNUnet.

messenger-gtk

Overview of the application

Features

Messenger-GTK is a convergent GTK messaging application using the GNUnet Messenger service. The goal is to provide private and secure communication between any group of devices.

The application provides the following features:

  • Creating direct chats and group chats
  • Managing your contacts and groups
  • Invite contacts to a group
  • Sending text messages
  • Sending voice recordings
  • Sharing files privately
  • Deleting messages with any custom delay
  • Renaming, tagging or blocking contacts
  • Exchanging contact details physically
  • Verifying contact identities
  • Switching between different accounts

Chats will generally created as opt-in. So you can decide who may contact you directly and who does not, accepting to a direct chat. Leaving a chat is also always possible.

Build & Installation

The following dependencies are required and need to be installed to build the application:

  • gnunet: For using general GNUnet datatypes
  • libgnunetchat: For chatting via GNUnet messenger
  • gtk3: For the general UI design
  • libhandy: For responsive UI widgets
  • libnotify: For notifications
  • qrencode: For generating QR codes to share credentials
  • gstreamer: For recording and playing voice messages
  • pipewire: For capturing images from camera sensors
  • libportal: For requesting permission to use certain system features

As additional step you will need to load all required git submodules via git submodule init and git submodule update. It is also possible to just add the --recursive flag while cloning the repository to do that automatically.

Here is the list of the used submodules:

Then you can simply use Meson as follows:

meson build            # Configure the build files for your system
ninja -C build         # Build the application using those build files
ninja -C build install # Install the application

Here is a list of some useful build commands using Meson and Ninja:

  • meson compile -C build to just compile everything with configured parameters
  • rm -r build to cleanup build files in case you want to recompile
  • meson install -C build to install the compiled files (you might need sudo permissions to install)
  • meson dist -C build to create a tar file for distribution

If you want to change the installation location, use the --prefix= parameter in the initial meson command. Also you can enable optimized release builds by adding --buildtype=release as parameter.

Runtime

The application will utilize gstreamer to scan a video feed from your camera for QR codes to add new contacts conveniently, record audio messages, stream audio/video live in a discourse dialog or simply play transferred media files. These feature require some gstreamer plugins to be installed:

Install packages depending on your distribution to be able to use those plugins.

Contribution

If you want to contribute to this project as well, the following options are available:

  • Contribute directly to the source code with patches to fix issues, implement new features or improve the usability.
  • Open issues in the bug tracker to report bugs, issues or missing features.
  • Contact the authors of the software if you need any help to contribute (testing is always an option).

The list of all previous authors can be viewed in the provided file.

messenger-gtk's People

Contributors

carlosgonz0 avatar marado avatar thejackimonster avatar

Watchers

 avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.