NeoChat

From LinuxReviews
Jump to navigationJump to search
NeoChat
NeoChat git as of March 16th, 2021.
NeoChat git as of March 16th, 2021.
Developer(s)Black Hat, Carl Schwan, Tobias Fella
Stable release
1.1.1 / February 23, 2021; 50 days ago (2021-02-23)
Repositoryinvent.kde.org/network/neochat
Flathubflathub.org/apps/details/org.kde.neochat
Written inC++
Operating systemLinux, Windows, macOS, Android
PlatformQt / KDE frameworks
TypeMatrix chat client
LicenseGNU GPLv3
Websiteapps.kde.org/en/neochat
Chat.png

NeoChat is a very memory-hungry and somewhat feature-rich Matrix client chat client built on the KDE Frameworks and the libQuotient library for communicating with Matrix servers. It is kind of hard and annoying to use, it is very slow and overall not that great.

NeoChat is a fork of the Qt-based Spectral matrix client. It uses the same libQuotient library to handle communications with the Matrix servers under the hood. The graphical interface is slightly different and it is built using the KDE Frameworks instead of plain Qt.

NeoChat does have one problem worth mentioning right off the bat: It is very resource-hungry and it can happily consume 2+ GiB of memory even if the hardware is limited to a lower amount like 4 GiB in total.

Features And Usability

NeoChat has most of the features you would expect from a modern chat client, including a rather basic feature the desktop Matrix clients Spectral and Nheko both lack: You can actually set and change your users avatar from within NeoChat (Setting and changing your profile picture is also supported in Quaternion as of version 0.0.95-beta4+git).

Browsing the scroll-back history in chat rooms is somewhat difficult. NeoChat has one slightly annoying bug shared by Quaternion (also using the libQuotient library): Scrolling the mouse wheel down will sometimes move the text in the chat window up and scrolling up will sometimes move the text in the chat window down. It happens kind of randomly, like in the old saying "two steps forward, one step back". It is possible to make the mousewheel scroll faster by holding ⇧ Shift while you scroll the mousewheel. That's only a good idea if you want to move up or down without following a conversation since one step with ⇧ Shift down moves the text way down below the last message visible on the screen, the text moves about one and a half pages down instead of one page down like you would expect.

NeoChat likes to randomly seemingly hang for 10-20 seconds when you scroll through a large room with many messages.

The mouse wheel is the only option you have for browsing a chat rooms history. PgUp and PgDown don't work. takes you to down near the very end of the scroll-back history. does nothing. The sum of these short-coming makes it very hard to read through the history in a chat-room with long history.

Neochat-tiresome.jpg
Using NeoChat is a bit tiresome.

Severe lag when entering rooms or moving around in bigger rooms is another usability problem with NeoChat. Entering a chat room with lots of users and messages can take half a minute, and it can take a lot longer than that before avatars and images and other elements are loaded. This is a problem with most Matrix desktop clients, and it may have more to do with the fact that the Synapse Matrix server software is really slow and extremely resource-demanding. It is something that makes NeoChat annoying to use regardless of the cause, it doesn't take forever to enter a chat room in competing proprietary multi-chat solutions.

Resource-use is a problem with NeoChat to the point where it becomes a real usability problem on older hardware. The NeoChat process will very happily consume 2+ GiB memory or more if you have several chat rooms open for a while. It is also a bit too CPU-hungry for older machines. It will allocate and hold onto a whole lot of RAM when it enters a larger chat-room and it keeps increasing its memory usage when you scroll around in it. NeoChat and other programs become increasingly slow as NeoChat grows its RAM usage on machines with a limited amount (<=4 GiB). Sporadic high CPU usage is another problem, NeoChat has a tendency to just freeze and seemingly hang for a while while it uses 100% of just one CPU core. These unwelcome freezes can be very long on weaker hardware. A CPU with massive single-thread performance shouldn't be a requirement to use a simple chat program.

NeoChat does have most of the basic features in place, so it could become a nice piece of software if its waste of CPU and memory resources and general usability-problems are addressed.

Neochat-git-room-explorer.jpg
The NeoChat chat room explorer.

NeoChat has a room explorer where you can view available chat rooms and search for chat rooms by name or topic. It supports three views: Local rooms, global rooms and rooms that are on the biggest and also most heavily censored Matrix server matrix.org.

NeoChat can post images in chats and chat rooms and display images posted in chat rooms. Clicking on an image makes it show full-screen. Right clicking on an image brings up a context menu where it can be opened in an external program or saved. This functionality is broken in the git version as of mid-March 2021.

NeoChat does lack several important features that would be nice-to-haves:

  • It lacks support for encrypted chat and encrypted chat rooms
  • There is no voice chat (VOIP) support
  • NeoChat v1.1.1 lacks support for showing video clips posted in chat rooms. This is supported in the git master branch though the support is somewhat lacking, video clips are shown as a tiny stamp-sized frame, there is no play-back support and videos can't be made to play full-screen (or lager than a stamp-sized frame).
  • Audio files posted in chat rooms do not play. .mod files are an exception. Debug window story when trying to play .ogg or .m4a files is that Error: "Server does not support seeking.".

The NeoChat developers are "aware that there are a bunch of problems" related to video play-back.

NeoChat can show desktop notifications when someone writes in a chat room and this is, by default, turned on. It can be turned off by switching Show notifications in Menu ▸ Settings. The constant stream of desktop notifications it makes gets very annoying real quick if you are in more than just one or two rooms. There is, sadly, no way to only show notifications on certain events like when someone mentions your username, you can have an annoying flood of irrelevant notifications or nothing at all. There is a partial solution:

"Matrix supports that by having configurateable notification levels per-room.

We don't have support for setting those in neochat yet, but if you set the in element (a web-based matrix client) neochat will pick them up and respect them."

NeoChat developer Tobias Fella

Verdict And Conclusion

NeoChat is a program that appears to be a perfectly fine Matrix client the first time you start it. It has most of the features you would expect with a few exceptions like a lack of working support for playing audio and video (though there is video playback support, but not audio playback support, in git master). It will quickly reveal itself to be slow, resource-hungry and perhaps more importantly, very hard and annoying to use once you setup a few chat-rooms and use it for a short while. A chat application shouldn't have to gradually increase its memory use to the point where it is occupying two thirds of the available RAM on machines with limited amounts of RAM available.

The severe lack of basic keyboard navigation in the chat window and the fact that scrolling up and down with the mouse wheel makes it randomly scroll in the wrong direction aren't things that make it easy to read through a chat rooms history. Being able to move up or down with and and/or pgup and pgdown, or ⇧ Shift+pgup and ⇧ Shift+pgdown, would help a whole lot.

NeoChat has the potential to become a good chat program. It is, as it stands, to hard and annoying to use, too resource-hungry, too slow and overall something not worth using.

Installation

NeoChat is easily built with cmake and make in the typical fashion.

git clone https://invent.kde.org/network/neochat.git
cd neochat
mkdir build ; cd build
cmake ..
make -j$(nproc)

Building it requires the development headers for Qt5, ECM, Quotient, the KDE frameworks v5.77+ and several other packages.

NeoChat is available as a Flatpak at Flathub (org.kde.neochat). It can be installed by running

flatpak install flathub org.kde.neochat

You can run it with

flatpak run org.kde.neochat

..if you install the Flatpak package. NeoChat is also available in most GNU/Linux distributions repositories as a package simply named neochat.

There are also nightly Windows builds, macOS builds and Linux AppImages.

Android users can install NeoChat using the special KDE repository for F-Droid. It is not in the regular F-Droid repository.

Links

The NeoChat homepage is at apps.kde.org/en/neochat.

Add your comment
LinuxReviews welcomes all comments. If you do not want to be anonymous, register or log in. It is free.