Skip to content
Snippets Groups Projects
README.md 4.81 KiB
Newer Older
  • Learn to ignore specific revisions
  • Konstantinos Sideris's avatar
    Konstantinos Sideris committed
    nheko
    ----
    
    Konstantinos Sideris's avatar
    Konstantinos Sideris committed
    [![Build Status](https://travis-ci.org/mujx/nheko.svg?branch=master)](https://travis-ci.org/mujx/nheko)
    [![Build status](https://ci.appveyor.com/api/projects/status/07qrqbfylsg4hw2h/branch/master?svg=true)](https://ci.appveyor.com/project/mujx/nheko/branch/master)
    
    Konstantinos Sideris's avatar
    Konstantinos Sideris committed
    [![Latest Release](https://img.shields.io/github/release/mujx/nheko.svg)](https://github.com/mujx/nheko/releases)
    
    Konstantinos Sideris's avatar
    Konstantinos Sideris committed
    [![Chat on Matrix](https://img.shields.io/badge/chat-on%20matrix-blue.svg)](https://matrix.to/#/#nheko:matrix.org)
    [![AUR: nheko-git](https://img.shields.io/badge/AUR-nheko--git-blue.svg)](https://aur.archlinux.org/packages/nheko-git)
    
    Konstantinos Sideris's avatar
    Konstantinos Sideris committed
    
    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.
    
    
    Konstantinos Sideris's avatar
    Konstantinos Sideris committed
    ### Features
    
    Konstantinos Sideris's avatar
    Konstantinos Sideris committed
    
    
    Konstantinos Sideris's avatar
    Konstantinos Sideris committed
    Most of the features you would expect from a chat application are missing right now
    
    Konstantinos Sideris's avatar
    Konstantinos Sideris committed
    but we are getting close to a more feature complete client.
    Specifically there is support for:
    
    Konstantinos Sideris's avatar
    Konstantinos Sideris committed
    - Creating, joining & leaving rooms.
    - Sending & receiving invites.
    - Sending & receiving files and emoji (inline widgets for images, audio and file messages).
    
    Konstantinos Sideris's avatar
    Konstantinos Sideris committed
    - Typing notifications.
    
    mujx's avatar
    mujx committed
    - Message & mention notifications.
    - Read receipts.
    - Basic communities support.
    - Room switcher (ctrl-K).
    
    Konstantinos Sideris's avatar
    Konstantinos Sideris committed
    - Light, Dark & System themes.
    
    Konstantinos Sideris's avatar
    Konstantinos Sideris committed
    
    
    There are continuous nightly releases [here](https://github.com/mujx/nheko/releases/tag/nightly)
    for Linux ([AppImage](https://appimage.org/), rpm, deb), Mac and Windows.
    
    #### Arch Linux
    ```bash
    
    pacaur -S nheko-git
    
    Konstantinos Sideris's avatar
    Konstantinos Sideris committed
    #### Fedora
    ```bash
    sudo dnf install nheko
    ```
    
    
    #### Gentoo Linux
    ```bash
    
    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.
    
    ```sh
    sudo apk add nheko
    ```
    
    
    ### Build Requirements
    
    Konstantinos Sideris's avatar
    Konstantinos Sideris committed
    
    
    - Qt5 (5.7 or greater). Qt 5.7 adds support for color font rendering with
      Freetype, which is essential to properly support emoji.
    
    Konstantinos Sideris's avatar
    Konstantinos Sideris committed
    - CMake 3.1 or greater.
    
    - [LMDB](https://symas.com/lightning-memory-mapped-database/).
    
    Konstantinos Sideris's avatar
    Konstantinos Sideris committed
    - A compiler that supports C++11.
    
        - Clang 3.8 (or greater).
    
        - GCC 4.9.4 (or greater).
    
    Konstantinos Sideris's avatar
    Konstantinos Sideris committed
    
    
    Konstantinos Sideris's avatar
    Konstantinos Sideris committed
    #### Linux 
    
    If you don't want to install any external dependencies, you can generate an AppImage locally using docker.
    
    ```bash
    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](https://github.com/AppImage/AppImageKit/wiki/Desktop-Linux-Platform-Issues#openssl).
    
    
    Konstantinos Sideris's avatar
    Konstantinos Sideris committed
    ##### Arch Linux
    
    Konstantinos Sideris's avatar
    Konstantinos Sideris committed
    
    ```bash
    
    sudo pacman -S qt5-base qt5-tools qt5-multimedia cmake gcc fontconfig lmdb
    
    Konstantinos Sideris's avatar
    Konstantinos Sideris committed
    ```
    
    
    sudo emerge -a ">=dev-qt/qtgui-5.7.1" media-libs/fontconfig
    
    ##### Ubuntu (e.g 14.04)
    
    Konstantinos Sideris's avatar
    Konstantinos Sideris committed
    
    ```bash
    
    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
    
    Konstantinos Sideris's avatar
    Konstantinos Sideris committed
    ```
    
    Konstantinos Sideris's avatar
    Konstantinos Sideris committed
    
    
    To build on Ubuntu 14.04 Trusty out-of-the-box requires using Clang 3.6 instead of GCC:
    
    ```bash
    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)
    
    Konstantinos Sideris's avatar
    Konstantinos Sideris committed
    
    ```bash
    
    brew install qt5 lmdb cmake llvm
    
    Konstantinos Sideris's avatar
    Konstantinos Sideris committed
    ```
    
    ### Building
    
    Clone the repo and run
    
    Konstantinos Sideris's avatar
    Konstantinos Sideris committed
    make release
    
    which invokes cmake and translates to
    
    ```bash
    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.
    
    Konstantinos Sideris's avatar
    Konstantinos Sideris committed
    
    
    Konstantinos Sideris's avatar
    Konstantinos Sideris committed
    #### Nix
    
    
    Download the repo as mentioned above and run
    
    ```bash
    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`
    
    
    Konstantinos Sideris's avatar
    Konstantinos Sideris committed
    ### Contributing
    
    Konstantinos Sideris's avatar
    Konstantinos Sideris committed
    
    Any kind of contribution to the project is greatly appreciated. You are also
    encouraged to open feature request issues.
    
    
    Konstantinos Sideris's avatar
    Konstantinos Sideris committed
    ### Screens
    
    Konstantinos Sideris's avatar
    Konstantinos Sideris committed
    
    Here is a screen shot to get a feel for the UI, but things will probably change.
    
    
    mujx's avatar
    mujx committed
    ![nheko](https://dl.dropboxusercontent.com/s/a493o47obvez6v1/nheko.png)
    
    Konstantinos Sideris's avatar
    Konstantinos Sideris committed
    
    
    ### Third party
    
    - [Emoji One](http://emojione.com)
    
    - [Font Awesome](http://fontawesome.io/)
    
    - [Open Sans](https://fonts.google.com/specimen/Open+Sans)
    
    
    Konstantinos Sideris's avatar
    Konstantinos Sideris committed
    [Matrix]:https://matrix.org
    [Riot]:https://riot.im