/nachat

Portable desktop chat client for Matrix

Primary LanguageC++Apache License 2.0Apache-2.0

This project is in early development and is not yet suitable for regular use.

Development builds: Windows 64-bit

Dependencies

  • LMDB
  • Qt >= 5.6

Qt 5.6 provides extended text layout support nachat relies on to implement clickable URLs in the custom timeline widget, and provides superior support for high-DPI displays. Supporting earlier versions is unfortunately not trivial.

Build Requirements

  • CMake >= 3.1
  • A C++14 compiler and stdlib providing std::experimental::optional (OSX users need Xcode >= 8)

Building

The binary will be output at build/src/nachat and can be executed in-place. Building on Windows and OSX should be possible but is not yet documented.

Linux

  1. Clone this repository and its submodules:
    git clone --recursive https://github.com/Ralith/nachat.git
    cd nachat
        

    or

    git clone https://github.com/Ralith/nachat.git
    cd nachat
    git submodule update --init
        
  2. cmake -H. -Bbuild
  3. make -C build

Nix

A nix environment is provided. Execute nix-shell . before cmake.

Installation

Using Nix

nix-env -f . -i will add nachat to your path. Development takes place on the nixos-unstable channel, so building on nixos-16.03 may require some tweaking of default.nix.

Run-time data

Linux

Most recent username, homeserver, and access token are stored in Qt INI format at $XDG_CONFIG_HOME/nachat/nachat.conf. Per-account data, including room state, is cached at $XDG_CACHE_HOME/nachat/nachat/<hexadecimal form of utf8 encoding of MXID>.