cd9d1a2ec6
* Refactor widget items to use same interface * Support audio, video, generic file for pasting * Add utils function for human readable file sizes * Set correct MIME type for media messages This change also determines the size of the upload once from the ContentLengthHeader, rather than seeking the QIODevice and asking for its size. This prevents any future trouble in case the QIODevice is sequential (cannot be seeked). The MIME type is also determined at upload once, rather than using the QIODevice and the underlying data inside. * Allow for file urls to be used as fall-back This fixes an issue on macOS which uses `text/uri-list` for copying files to the clipboard. fixes #228 |
||
---|---|---|
.ci | ||
.github | ||
cmake | ||
deploy/installer | ||
dist | ||
include | ||
libs | ||
resources | ||
scripts | ||
src | ||
.clang-format | ||
.gitignore | ||
.gitmodules | ||
.travis.yml | ||
appveyor.yml | ||
CMakeLists.txt | ||
default.nix | ||
Dockerfile | ||
Dockerfile.debian | ||
LICENSE | ||
Makefile | ||
package.nix | ||
README.md |
nheko
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, rpm, deb), Mac and Windows.
Arch Linux
pacaur -S nheko-git
Fedora
sudo dnf install nheko
Gentoo Linux
sudo layman -a matrix
sudo emerge -a nheko
Alpine Linux (and postmarketOS)
Make sure you have the testing repositories from edge
enabled. Note that this is not needed on postmarketOS.
sudo apk add 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.8 (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
If you're on Debian you should use make docker-debian-appimage
instead, which uses
Debian as the build host in an attempt to work around this issue.
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.
macOS (Xcode 8 or later)
brew update
brew install qt5 lmdb cmake llvm
Building
Clone the repo and run
make release
which invokes cmake and translates to
cmake -H. -Bbuild -DCMAKE_BUILD_TYPE=RelWithDebInfo
cmake --build build
If the build fails with the following error
Could not find a package configuration file provided by "Qt5Widgets" with
any of the following names:
Qt5WidgetsConfig.cmake
qt5widgets-config.cmake
You might need to pass -DCMAKE_PREFIX_PATH
to cmake to point it at your qt5 install.
e.g on macOS
cmake -H. -Bbuild -DCMAKE_BUILD_TYPE=RelWithDebInfo -DCMAKE_PREFIX_PATH=$(brew --prefix qt5)
cmake --build build
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.