Matrix

From KDE Community Wiki
Revision as of 19:45, 26 September 2022 by Tulimenot (talk | contribs) (→‎On the web)

KDE is officially using Matrix for collaboration within the community, superseding more antiquated and closed-source services.

Matrix is an open standard for interoperable, decentralised, real-time communications.

Matrix is an open protocol and network for decentralized communication, backed by an open standard and open source reference implementations for servers, clients, client SDKs, bridges, bots and more. It provides all the features you would expect from a modern chat system: infinite scrollback, file transfer, typing notifications, read receipts, presence, search, push notifications, stickers, VoIP calling and conferencing, etc. It even provides end-to-end encryption (based on Signal’s double ratchet algorithm) for when you want some privacy.

Furthermore, Matrix natively supports bridges to other protocols, such as IRC (the official KDE messaging channel). This means that you can use a Matrix client to join and use IRC channels like if they were Matrix rooms.

 
Tip
If you'd rather skip reading this long wiki page and just want to start with a list of popular and common matrix rooms, you'll be interested in the KDE Matrix Space available at #kde-community:kde.org!


Clients

You can chat using your web browser by visiting KDE's webchat or you can use a desktop or mobile client. Check out a list of clients for your desktop or mobile devices.

KDE also features its own native Matrix client, NeoChat.

Registering and Logging in

On the web

THIS IS THE RECOMMENDED WAY OF REGISTERING YOUR ACCOUNT.

Registration on the kde.org server is disabled, even if you plan on using a desktop or mobile client later, register through the web chat (or any other Matrix server). So, instead, you may register into the main matrix.org server and join the Kde Community webchat through there instead.

  1. Visit Element online webchat
  2. Click the Create Account button.
  3. Choose a cool nickname and set your password. You can optionally include an email address if you ever need to recover your password. Click Register.
  4. Now that you are logged in, you may now join the #kde-community space.

That's it! Now, you can connect to KDE's online webchat and can start chatting with members of KDE's community.

Using the Element desktop client

Download the desktop client from Element's website. APT repositories with Debian/Ubuntu packages are provided.

Choose the latest stable version number listed at Element's GitHub releases page.

Registering here follows the same process as above.

Homeserver URL: https://matrix-client.matrix.org

Using the Element Client for Mobile

Currently Element only supports having one account

Under Signin/Register select the Use custom server options (Advanced) option to set the following

Android

The Element client is available from Google Play and F-Droid.

iOS

There is also a client for iOS available from Apple's App Store.

Plasma Mobile

On Plasma Mobile you can use NeoChat.

Rooms

The following is a collection of active rooms where KDE development and other activities happen. Some rooms are more active than others and you're welcome to browse through them. We add new rooms as they are formed.

Welcome

New to KDE? Start here and find out what this is all about.

General KDE channel

Share your experience with the KDE community.

Plasma

System applications, frameworks and other operating systems

Distribution-centered KDE rooms

For (potential) contributors

Applications

Here is a list of individual applications that have their own Matrix rooms:

Events and goals

Local communities

How to Add Your Existing IRC Channel as Room

Note

This only needs to be done once by an IRC operator. After that all users may use the more convenient local room name to join.


  • /join #_freenode_#YOUR_CHANNEL:kde.org
  • On the IRC side you need to OP your matrix user, so either use a temporary nick on Matrix, or add multiple nicks to your IRC identity and use a different one on Matrix and IRC, or have a fellow OP give you OP privileges
  • Setup a local alias for kde.org via the matrix room settings
  • Leave room again
  • Join via local alias e.g. /join #YOUR_CHANNEL
  • Everyone can now join your room using the #YOUR_CHANNEL locally and #YOUR_CHANNEL:kde.org in Matrix

You can set up your alias depending on the client you choose. For webchat.kde.org it looks like this:

You may additionally want to mark the room as published in the directory (so one can search for it) and set the KDE flair +kde:kde.org (so a fancy KDE flair will get shown; currently not set up). Both settings on webchat.kde.org are immediately after the room settings where you created the local room alias.



Frequently Asked Questions


Why should I use the Matrix IRC Bridge?

Your IRC nickname will be available 24/7 and other people will be able to ping or contact you even if you are away from your computer. While this can also be achieved using an IRC bouncer, Matrix has several advantages over this:

  • Matrix provides unlimited chat history, an IRC bouncer does not.
  • The Matrix IRC bridge is much easier to setup than an IRC bouncer.
  • The Matrix reference client (Element) can be used from smartphones.

How does it compare with IrcsomeBot?

IrcsomeBot is a Telegram bot that can bridge a Telegram group with an IRC channel. However there are a few shortcomings:

  • A KDE sysadmin needs to setup the bridge between each room/channel. Matrix instead supports out of the box any freenode channel (and also other IRC networks).
  • IrcsomeBot is the only nickname that joins the IRC channel and forwards the messages sent from Telegram on behalf of their senders. Matrix instead performs a native bridging between the two protocols and creates a real IRC user that joins the IRC channel. Other people will be able to keep the usual IRC workflow with your bridged nickname (/whois, /query, etc.). In fact, they won't even know that you are using the Matrix bridge instead of a classic IRC client.

How do I Join an IRC Channel?

You can search or browse IRC channels from Element. Just type the name of the channel you want to join and you are done.

If your favorite matrix client doesn't have a similar feature, you can join any freenode channel by joining the following Matrix room:

#_freenode_#<irc_channel_name>:kde.org

For example, if you want to join the #kde-devel IRC channel, just type:

/join #_freenode_#kde-devel:kde.org

How do I change My IRC nickname?

By default, the IRC bridge will use your matrix display name to generate an IRC nickname (ending with -M). If you don't like the default nickname, you can change it by sending the following command to the @freenode-irc:kde.org bot (you will need first to start a private conversation with the bot):

!nick <your_favorite_irc_nickname>

How do I join an IRC channel that requires registered nicknames?

Start by opening a direct chat with NickServ. For freenode, that's @_freenode_NickServ:kde.org. Then send it a message of format:

identify [<nickname>] <password>

— where nickname is optional assuming you are identifying for your current nickname.

To make the bridge store your credentials and log in automatically, in direct chat with the @freenode-irc:kde.org you can use the !storepass <string> command to save a string that is sent in PASS command when your IRC-presence connects.

With freenode you can use:

!storepass nickname:password

How do I change my away status?

The @freenode-irc:kde.org bot accepts raw IRC commands. To set the away status use:

!cmd AWAY <away_message>

for example:

!cmd AWAY Sleeping

To remove the away status just use:

!cmd AWAY

I already have an account in the default Matrix homeserver, how do I access the KDE server and rooms with it?

After logging in to Element, you can click the compass icon next to the search bar to open the Explore Rooms dialog, click on Matrix Rooms, Add New Server..., then just type "kde.org". Now you should be able to browse the list of rooms in the KDE homeserver.

Other questions?

Check out the FAQ maintained upstream.

You can also ask questions related to matrix in #kde-matrix-support / #kde-matrix-support:kde.org