Desktop client for Matrix using Qt and C++20.
Find a file
Konstantinos Sideris 9d763c4de9 Don't keep fetching history on non-visible timelines
If the user switched to another timeline before the current timeline
filled up with messages, nheko would keep fetching history.

Now it will check periodically if the timeline became visible so
it can decide whether or not to stop fetching history.
2017-12-23 13:50:11 +02:00
.ci Migrate to matrix-structs for event and response parsing 2017-12-04 18:41:19 +02:00
.github Update issue template 2017-11-02 22:02:31 +02:00
cmake Windows icon fix and change the installer to QT Installer Framework on Windows (#85) 2017-11-06 17:17:21 +02:00
deploy/installer Windows icon fix and change the installer to QT Installer Framework on Windows (#85) 2017-11-06 17:17:21 +02:00
dist Update ci 2017-11-06 17:20:48 +02:00
include Don't keep fetching history on non-visible timelines 2017-12-23 13:50:11 +02:00
libs Handle incoming invites 2017-12-19 22:36:12 +02:00
resources Bold room names 2017-12-21 13:41:05 +02:00
scripts Remove custom badge counter from mac and windows (#42) 2017-07-09 12:49:17 +03:00
src Don't keep fetching history on non-visible timelines 2017-12-23 13:50:11 +02:00
.clang-format Use C++11 braced list style (#121) 2017-11-05 23:04:55 +02:00
.gitignore Add desktop icons on the AppImage 2017-11-26 21:32:18 +02:00
.gitmodules Initial integration with matrix-structs 2017-12-03 02:47:37 +02:00
.travis.yml Don't create artifacts when we're not deploying 2017-12-22 16:50:38 +02:00
appveyor.yml Upgrade appveyor to Qt 5.9.2 2017-12-14 14:36:07 +02:00
CMakeLists.txt Remove submodules from matrix-structs 2017-12-16 18:37:08 +02:00
default.nix Add basic nix expressions (#47) 2017-08-05 18:40:00 +03:00
Dockerfile Create appimage with docker 2017-12-14 01:23:17 +02:00
LICENSE Initial commit 2017-04-06 02:06:42 +03:00
Makefile Use ninja on travis 2017-12-22 16:33:29 +02:00
package.nix Update package.nix to include QT Multimedia (#165) 2017-12-16 18:05:14 +02:00
README.md Update README 2017-12-21 15:10:04 +02:00

nheko

Build Status Build status Chat on Matrix License: GPL v3 AUR: nheko-git

The motivation behind the project is to provide a native desktop app for Matrix that feels more like a mainstream chat app (Riot, Telegram etc) and less like an IRC client.

Features

Most of the features you would expect from a chat application are missing right now but we are getting close to a more feature complete client. Specifically there is support for:

  • Creating, joining & leaving rooms.
  • Sending & receiving invites.
  • Sending & receiving files and emoji (inline widgets for images, audio and file messages).
  • Typing notifications.
  • Light, Dark & System themes.

Installation

There are continuous nightly releases here for Linux (AppImage), Mac and Windows.

Arch Linux

pacaur -S nheko-git

Fedora

sudo dnf copr enable xvitaly/matrix
sudo dnf install nheko

Gentoo Linux

sudo layman -a matrix
sudo emerge -a nheko

Build Requirements

  • Qt5 (5.7 or greater). Qt 5.7 adds support for color font rendering with Freetype, which is essential to properly support emoji.
  • CMake 3.1 or greater.
  • LMDB.
  • A compiler that supports C++11.
    • Clang 3.6 (or greater).
    • GCC 4.9.4 (or greater).

Linux

If you don't want to install any external dependencies, you can generate an AppImage locally using docker.

make docker-app-image
Arch Linux
sudo pacman -S qt5-base qt5-tools qt5-multimedia cmake gcc fontconfig lmdb
Gentoo Linux
sudo emerge -a ">=dev-qt/qtgui-5.7.1" media-libs/fontconfig
Ubuntu (e.g 14.04)
sudo add-apt-repository ppa:beineri/opt-qt592-trusty
sudo add-apt-repository ppa:george-edison55/cmake-3.x
sudo apt-get update
sudo apt-get install -y qt59base qt59tools qt59multimedia cmake liblmdb-dev

To build on Ubuntu 14.04 Trusty out-of-the-box requires using Clang 3.6 instead of GCC:

sudo apt-get install clang-3.6
export CC=clang-3.6 CXX=clang++-3.6

On Ubuntu 14.04 Trusty, it's possible to use GCC 4.9.4+, but it is not recommended, because it requires installing GCC packages from third-party PPAs. Later versions of Ubuntu that come with GCC 4.9.4+ should work with GCC out-of-the-box.

OSX (Xcode 8 or later)
brew update
brew install qt5 lmdb

N.B. you will need to pass -DCMAKE_PREFIX_PATH=/usr/local/opt/qt5 to cmake to point it at your qt5 install (tweaking the path as needed)

Building

Clone the repo with its submodules

git clone --recursive https://github.com/mujx/nheko

or

git clone https://github.com/mujx/nheko
cd nheko
git submodule update --init --recursive

and then run

make release

The nheko binary will be located in the build directory.

Nix

Download the repo as mentioned above and run

nix-build

in the project folder. This will output a binary to result/bin/nheko.

You can also install nheko by running nix-env -f . -i

Contributing

Any kind of contribution to the project is greatly appreciated. You are also encouraged to open feature request issues.

Screens

Here is a screen shot to get a feel for the UI, but things will probably change.

nheko

Third party