Skip to content
Snippets Groups Projects
README.md 4.77 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
    
    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.
    
    
    ![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