Ement.el

Table of Contents

Next:   [Contents]

Ement.el

https://elpa.gnu.org/packages/ement.svg

Ement.el is a Matrix client for Emacs. It aims to be simple, fast, featureful, and reliable.

Feel free to join us in the chat room: https://img.shields.io/matrix/ement.el:matrix.org.svg?label=%23ement.el:matrix.org


Next: , Previous: , Up: Top   [Contents]

1 Installation


Next: , Up: Installation   [Contents]

1.1 GNU ELPA

Ement.el is published in GNU ELPA, so it may be installed in Emacs with the command M-x package-install RET ement RET. This is the recommended way to install Ement.el, as it will install the current stable release.


Next: , Previous: , Up: Installation   [Contents]

1.2 GNU Guix

Ement.el is also available in GNU Guix as emacs-ement.


Next: , Previous: , Up: Installation   [Contents]

1.3 Debian

Ement.el is also available in Debian as elpa-ement.


Next: , Previous: , Up: Installation   [Contents]

1.4 Git master

The master branch of the Git repository is intended to be usable at all times; only minor bugs are expected to be found in it before a new stable release is made. To install from this, it is recommended to use quelpa-use-package, like this:

;; Install and load `quelpa-use-package'.
(package-install 'quelpa-use-package)
(require 'quelpa-use-package)

;; Install Ement.
(use-package ement
  :quelpa (ement :fetcher github :repo "alphapapa/ement.el"))

One might also use systems like Straight (which is also used by DOOM) to install from Git, but the author cannot offer support for them.


Previous: , Up: Installation   [Contents]

1.5 Manual

Ement.el is intended to be installed with Emacs’s package system, which will ensure that the required autoloads are generated, etc. If you choose to install it manually, you’re on your own.


Next: , Previous: , Up: Top   [Contents]

2 Usage

  1. Call command ement-connect to connect. Multiple sessions are supported, so you may call the command again to connect to another account.
  2. Wait for initial sync to complete (which can take a few moments–initial sync JSON requests can be large).
  3. Use these commands:
  4. Use these special buffers to see events from multiple rooms (you can also reply to messages from these buffers!):

Next: , Up: Usage   [Contents]

2.1 Bindings

These bindings are common to all of the following buffer types:


Next: , Up: Bindings   [Contents]

2.1.1 Room buffers

Movement

Switching

Messages

Images

Users

Room

Room membership

Other


Next: , Previous: , Up: Bindings   [Contents]

2.1.2 Room list buffer


Next: , Previous: , Up: Bindings   [Contents]

2.1.3 Directory buffers


Previous: , Up: Bindings   [Contents]

2.1.4 Mentions/notifications buffers


Next: , Previous: , Up: Usage   [Contents]

2.2 Tips


Up: Tips   [Contents]

2.2.1 Displaying symbols and emojis

Emacs may not display certain symbols and emojis well by default. Based on this question and answer, you may find that the simplest way to fix this is to install an appropriate font, like Noto Emoji, and then use this Elisp code:

(setf use-default-font-for-symbols nil)
(set-fontset-font t 'unicode "Noto Emoji" nil 'append)

Previous: , Up: Usage   [Contents]

2.3 Encrypted room support through Pantalaimon

Ement.el doesn’t support encrypted rooms natively, but it can be used transparently with the E2EE-aware reverse proxy daemon Pantalaimon. After configuring it according to its documentation, call ement-connect with the appropriate hostname and port, like:

(ement-connect :uri-prefix "http://localhost:8009")

Next: , Previous: , Up: Top   [Contents]

3 Rationale

Why write a new Emacs Matrix client when there is already matrix-client.el, by the same author, no less? A few reasons:

Note that, while matrix-client remains usable, and probably will for some time to come, Ement.el has now surpassed it in every way. The only reason to choose matrix-client instead is if one is using an older version of Emacs that isn’t supported by Ement.el.


Next: , Previous: , Up: Top   [Contents]

4 Changelog


Next: , Up: Changelog   [Contents]

4.1 0.4.1

Fixes


Next: , Previous: , Up: Changelog   [Contents]

4.2 0.4

Additions

Changes

Fixes


Next: , Previous: , Up: Changelog   [Contents]

4.3 0.3.1

Fixes


Next: , Previous: , Up: Changelog   [Contents]

4.4 0.3

Additions

Changes

Fixes


Next: , Previous: , Up: Changelog   [Contents]

4.5 0.2.1

Fixes


Next: , Previous: , Up: Changelog   [Contents]

4.6 0.2

Changes

Fixes


Next: , Previous: , Up: Changelog   [Contents]

4.7 0.1.4

Fixed


Next: , Previous: , Up: Changelog   [Contents]

4.8 0.1.3

Fixed


Next: , Previous: , Up: Changelog   [Contents]

4.9 0.1.2

Fixed


Next: , Previous: , Up: Changelog   [Contents]

4.10 0.1.1

Fixed


Previous: , Up: Changelog   [Contents]

4.11 0.1

After almost two years of development, the first tagged release. Submitted to GNU ELPA.


Next: , Previous: , Up: Top   [Contents]

5 Development

Bug reports, feature requests, suggestions — oh my!


Next: , Up: Development   [Contents]

5.1 Copyright Assignment

Ement.el is published in GNU ELPA and is considered part of GNU Emacs. Therefore, cumulative contributions of more than 15 lines of code require that the author assign copyright of such contributions to the FSF. Authors who are interested in doing so may contact assign@gnu.org to request the appropriate form.


Previous: , Up: Development   [Contents]

5.2 Matrix spec in Org format

An Org-formatted version of the Matrix spec is available in the meta/spec branch.


Previous: , Up: Top   [Contents]

6 License

GPLv3