Element (the Matrix client) lets you set a custom notification sound per room through the UI, but there is no built-in option to change it globally.

But fear not, it is still possible. You just need to follow a carefully curated insane clickpath throught the depths of the UI and developer tools. This is how it's done.

Steps

  1. Set a notification sound in a single room. This can be any room, even one where only you are in.

  2. Open devtools, by typing /devtools in the message input of that room.

  3. Click Explore Account Data, then click the red Account Data button.

  4. Click im.vector.web.settings to find the sound entry. You should see a notificationSound block that looks something like this:

    "notificationSound": {
        "name": "your-sound-name.ogg",
        "type": "audio/ogg",
        "size": 12345,
        "url": "mxc://your-homeserver/some-content-id"
    },

    This all was just to get the sound uploaded to Matrix servers and to get the correct notificationSound block. Copy it. We will now use set this code snippet in the global configuration of your account.

  5. Go back and switch to account data. Click Back, then click the green Account Data button.

  6. Click im.vector.web.settings, then click Edit (you may have to scroll down).

  7. Paste the notificationSound snippet you copied earlier into the JSON object. It can be anywhere in the toplevel object, but make sure to set commas correctly and end up with valid JSON.

  8. Save by clicking Send.

After this, Element should use your custom notification sound globally across all rooms. I recommend the MSN or ICQ sounds for ultimate nostalgia.