Ritchie Frodomar 7a078b2d34 Add "Read Text Aloud" context menu action for messages
This merge request adds a simple "Read Text Aloud" menu action to the context menu for chat messages. When clicked, the message text will be read aloud using text-to-speech.

The intention behind this change is to make it easier for myself and other low-vision users to use Matrix, without needing to use a system-wide screen reader, in cases where the user still has enough sight left to navigate a computer faster without a screen reader.

I'd eventually like to have it read " said ," so that the message sender gets read aloud as well, but for now it just reads the plaintext message contents.

Another problem, at least on my computer specifically, is that the voice's accent doesn't seem correct. For whatever reason, on my system, messages are read in a Scottish accent which is harder for me to understand. Other apps don't do that, so I'm not sure what's going on there. I do not want to hardcode a specific voice/locale, since I want this feature to work well for everyone and not just me.

@teams/qa Please do break my code! :)  - I've only tested with basic text messages.

@teams/usability Not sure if I put the context menu action in an ideal place, it's grouped in the same area as clipboard actions like "Copy Text."

@teams/localization How could I go about getting author names to be read aloud in a way that's properly translated for other languages? I'm not experienced with i18n.
2025-04-03 19:51:40 +00:00
2021-04-02 23:55:13 +00:00
2025-04-03 15:24:31 +00:00
2022-09-21 12:07:44 +00:00
2023-09-27 16:23:29 +02:00
2025-01-04 15:29:40 +00:00
2025-04-03 01:36:43 +00:00
2024-12-22 18:23:55 +00:00
2025-01-07 16:32:31 +01:00
2025-02-13 08:14:42 +00:00
2021-01-27 14:51:10 +01:00
2021-01-27 18:54:13 +01:00
2021-05-22 19:12:29 +00:00
2023-09-27 23:43:55 -04:00
2025-01-04 15:29:40 +00:00

NeoChat

A Qt/QML based Matrix client.

Made for Matrix Download on Flathub Download on the Snap Store

Introduction

NeoChat is a client for Matrix, the decentralized communication protocol for instant messaging.

NeoChat is based on KDE frameworks and as libQuotient, a Qt-based SDK for the Matrix Protocol.

Timeline

Features

NeoChat aims to be a fully featured application for the Matrix specification. As such most parts of the current specification are supported, with the notable exceptions of VoIP, threads, and some aspects of End-to-End Encryption. There are a few other smaller omissions due to the fact that the Matrix spec is constantly evolving, but the aim remains to provide eventual support for the entire spec.

Due to the nature of the Matrix specification development NeoChat also supports numerous unstable features. Currently these are:

  • Polls - MSC3381
  • Sticker Packs - MSC2545
  • Location Events - MSC3488

Get it

Details where to find stable releases for NeoChat can be found on its homepage.

Nightly builds for Linux and Windows can be downloaded from cdn.kde.org. Nightly builds for Android are available from KDE's nightly F-Droid repository. Nightly Flatpaks are available from KDE's nightly Flatpak repository.

Building NeoChat

The best way to build KDE apps during development is to use kdesrc-build. The full instructions for this can be found on the KDE community website's get involved section under development. This is primarily aimed at Linux development.

For Windows and Android Craft is the primary choice. There are guides for setting up development environments for Windows and Android.

Running

Just start the executable in your preferred way - either from the build directory or from the installed location.

Tests

Tests are in the repository under autotests and appiumtests.

The project has CI setup to test new commits to the repository. All tests are expected to pass for a merge request to be complete.

Current build status

coverage

Currently the number of tests is limited, but growing. If anyone wants to help improve this, those contributions would be especially welcome.

Contributing

As is the case throughout the KDE ecosystem contributions are welcome from all. The code base is managed in the NeoChat repository of the KDE Gitlab instance.

Contact

The best place to reach the maintainers is on the KDE Matrix instance in the NeoChat channel, #neochat:kde.org. See Matrix for more details.

Acknowledgement

NeoChat utilizes libQuotient as its Matrix SDK.

NeoChat is a fork of Spectral.

License

GPLv3

This program is licensed under GNU General Public License, Version 3.

Description
A client for matrix, the decentralized communication protocol
Readme 74 MiB
Languages
C++ 51.4%
QML 31.5%
C 15.1%
CMake 1.5%
Python 0.5%