Skip to content
Snippets Groups Projects
README.md 4.69 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](https://img.shields.io/badge/AUR-nheko-blue.svg)](https://aur.archlinux.org/packages/nheko)
    
    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:
    
    - User registration.
    
    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.
    
    - Username auto-completion.
    
    mujx's avatar
    mujx committed
    - Message & mention notifications.
    
    Konstantinos Sideris's avatar
    Konstantinos Sideris committed
    - Redacting messages.
    
    mujx's avatar
    mujx committed
    - 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
    
    
    Konstantinos Sideris's avatar
    Konstantinos Sideris committed
    ## Installation
    
    Konstantinos Sideris's avatar
    Konstantinos Sideris committed
    ### Nightly releases
    - Linux [AppImage](https://github.com/mujx/nheko/releases/download/nightly/nheko-x86_64.AppImage)
    - Windows [x64 installer](https://github.com/mujx/nheko/releases/download/nightly/nheko-installer.exe)
    - macOS [disk image](https://github.com/mujx/nheko/releases/download/nightly/nheko.dmg)
    
    ### Repositories
    
    #### Arch Linux
    ```bash
    
    pacaur -S nheko-git
    
    
    # or
    
    pacaur -S nheko
    
    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++ 14:
        - Clang 5 (tested on Travis CI)
        - GCC 7 (tested on Travis CI)
        - MSVC 19.13 (tested on AppVeyor)
    
    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 qt5-svg 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
    
    Konstantinos Sideris's avatar
    Konstantinos Sideris committed
    sudo add-apt-repository ppa:ubuntu-toolchain-r-test
    
    sudo apt-get update
    
    sudo apt-get install -y g++-7 qt59base qt59svg qt59tools qt59multimedia cmake liblmdb-dev
    
    ##### 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
    
    
    See [CONTRIBUTING](.github/CONTRIBUTING)
    
    Konstantinos Sideris's avatar
    Konstantinos Sideris committed
    
    
    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.
    
    
    ![nheko](https://dl.dropboxusercontent.com/s/zrl26u3pmqloyjz/nheko-v0.3.1.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