Spectral is a Matrix chatroom client for GNU/Linux systems written in Qt. It supports sharing images and other files in chat sessions, multiple chat-rooms and multiple servers. Major distributions do not have it in their repositories but it can be compiled. It's alright for what it is. Spectral's biggest draw-back is that it's a client for the federated Matrix chatroom system close to nobody's using. That's just not where it's at.
Features And Usability
Spectral will by default very small window with tiny text and miniature icons. It doesn't look that tiny if you zoom in on this image on a low-resolution (720p, 1080p) monitor but if you consider that it's a full-screen screenshot and you compare it to the more readable text you'll find that it's quote tiny in comparison. It is too tiny to be usable on a 4K panel.
HiDPI users will immediately notice that the window Spectral opens when it launches is tiny. It clearly can't into scaling which means that you will have a hard time using it unless you have an ancient laptop with a 15.5" 1366x768 pixel monitor. Users of more modern 4K screens can get around this by launching it with a special Qt prefix
QT_SCALE_FACTOR=. Something like 1.6x or 2x helps. Creating a local file which adds this when it's launched is advisable:
/usr/local/bin/ with whatever
which spectral says about it's location if you installed it from a distribution's package or flathub.
Starting Spectral with a
QT_SCALE_FACTOR set makes it scale to a usable size. The file dialog box you get when you want to share a file in a chat-room will also scale and become gigantic. Not ideal but workable.
Spectral has a simple and easy to use layout for navigating Matrix chat-rooms. There is a list of rooms you are in and people you have open chat sessions with on the left side and a larger window with the chat contents on the right side. There is a search-box and a button you can press to get some options on top.
Joining or creating a chat-room is a matter of pressing the "User" button on the search-bar's right side. This brings up a menu where you can "Start a Chat" or "Create a Room". There's also some other not at all interesting options in that menu. This is where it's at, the three vertical dots in the upper right corner toggle room information on/off, there is no menu behind those dots. Joining a room is done by pressing "Start a Chat" where a chat-room is entered in Matrix's format (
#chatroom:server.tld). Spectral's support channel is
"Start a Chat" can also be used to start a "private" chat with another Matrix user. Just how "private" a person to personal chat really is is questionable. Matrix servers have end-to-end encryption between them. There is also support for both end-to-end person to person encryption and chat-room encryption by means of the Olm library in both Spectral's current git version and some Matrix servers. The Spectral client has no icon or other indication of the current chat's encryption status. The latest Spectral flathub release does not have Olm support; nor do most of the other Matrix clients.
You can share files in a chat by clicking the "binder" icon. It's also possible to insert emojis by clicking on a rather huge selection of them Android-style.
Joining rooms on other servers is sometimes painfully slow. It may appear like an attempt to join a room failed because nothing happens but 3 minutes later the room's there in the list of rooms in the left sidebar. Some of the rooms have "IRC gateways" where IRC users can chat with Matrix users and vice versa. This is painfully slow; There's sometimes a minute or more between typing something into a room in Spectral and that comment's appearance on IRC.
There is no list of available Matrix rooms in Spectral. You will have to somehow just know that a room you want to join exists. That brings us to Spectral's major flaw and drawback: The lack of rooms and people participating in them. It's just not where it's at, there's nobody there, there's nobody home.
None of the major GNU/Linux distributions have Spectral in their repositories. There is a flathub package available from May 22, 2019. It is also possible, but not entirely strait-forward, to install it from the git source tree at gitlab.com/b0/spectral.
Spectral requires it's own special little
libqtolm library to compile. It is, like Spectral itself, not available in any major distribution's repositories.
Fedora 31 users can install both something like:
dnf -y install libolm-devel qtkeychain-qt5-devel cmark-devel mkdir $HOME/src ; cd $HOME/src git clone https://gitlab.com/b0/libqtolm cd libqtolm/ mkdir build;cd build ; cmake .. make -j$(nproc) su -c 'make install' cd $HOME/src git clone https://gitlab.com/b0/spectral.git/ cd spectral git submodule init git submodule update mkdir build;cd build make -j$(nproc) su -c 'make install'
Verdict And Conclusion
Spectral is overall a fine and easy to use Matrix client. It can't into scaling but it's workable if you run it with a
Installation is an issue; common GNU/Linux distributions do not have it which makes installation a bit problematic and you may want to forgo this Matrix-client if you are not a computer-savvy wizard.
Spectral's lack of any indication of a "private" chat's privacy-status is problematic. It is not a great choice if you want to have a truly private conversation with someone.
Spectral's biggest flaw is not it's own: There's simply no even remotely interesting Matrix chat rooms or people in the few rooms that do exist. All the cool kids are using Telegram or Discord or something else. It is great that the free software community is offering it's own free and open source alternative. However, the simple truth is that it's not very exciting to use a chat-system where there's a hand-full of mostly dead chat-rooms for obscure free software projects and that's it. And it's not like all free software projects have a Matrix presence, cooler projects like the SuperTuxKart kart game are only available on IRC and Discord. Perhaps Matrix chat-rooms will become more popular in the future. Spectral is, for now, essentially a tool you can use to visit a ghost-town filled with almost entirely empty buildings.
Spectral has a home-page at spectral.encom.eu.org. It has links to a documentation section at spectral.encom.eu.org/docs/ which, as of December 3rd 2019, returns 404 on /doc/ and all sub-pages in that folder. The source code repository is at gitlab.com/b0/spectral.