Hello, I'm the original author of matrix-client.el and I recommend you don't even try to use it. It was fun to build and interesting to learn the Matrix APIs with but when end-to-end encryption started to land, I was not in a position to keep using it, keep developing it, or keep supporting it. alphapapa revived and eventually rewrote it as Ement.el
I recommend using Pantalaimon to support E2E messages, a helper command is defined below.
Ement.el use-package declaration
emacs-lisp source: :tangle cce/ement.el :noweb yes(use-package htmlize) (use-package ement :commands (ement-connect) :custom (ement-save-sessions t) (ement-room-compose-method 'compose-buffer) (ement-room-send-message-filter #'ement-room-send-org-filter) (ement-room-list-default-keys '(((membership :status 'invite)) ((membership :status 'leave)) (buffer) (favourite) ((and :name "Mine" :keys ((space :id "!HRKvapzUsKHVUTKpAe:aelf.land") (not space-p)))) (unread) (low-priority space) ((and :name "Other Rooms" :keys ((not space-p) (not people))) freshness space) ((and :name "Spaces" :keys (space-p)) space) (people freshness))) :config (setq print-circle t) (require 'dash) (require 'ement-room-list) :hook (ement-room-mode . variable-pitch-mode))
#s(hash-table size 65 test eql rehash-size 1.5 rehash-threshold 0.8125 data (:use-package (26190 14197 801558 286000) :init (26190 14197 801554 88000) :init-secs (0 0 66 234000) :use-package-secs (0 0 171 31000) :config (26190 14197 801542 266000) :config-secs (0 0 17 533000)))
Connecting to a Pantalaimon session in Ement
Execute elisp:(cce/ement-panta-connect), if you have ement-save-sessions set to true, you can just run the regular ement-connect after the first time you successfully connect using this command to re-use the old session.
i could make this try to load the session like interactive ement-connect does. some day...
emacs-lisp source: :tangle cce/ement.el :noweb yes(defcustom ement-user-id "@you:example.com" "The user-id passed to ement-connect in cce/ement-panta-connect") (defun cce/ement-panta-connect () (interactive) (ement-connect :uri-prefix "http://localhost:8008" :user-id ement-user-id))
INPROGRESS the good the bad the ugly
something for the blog about how ement.el might be the most ultimate matrix client, despite some flaws
the good
you write org-mode syntax and you get html rich messages, including highlighted source code
more than one chat window, more than one text box
the bad
emacs. you can do really cool things like having a chat room pinned at the top of the document you're working on, taking notes in a chat meeting for example. i'm doing that right now. most matrix clients have approximately zero multi-window capabilities.
but it's emacs. it's a sewing pattern or a blueprint for a text processing computer, you have to decide you want to train enough for using your machine so that you can sew with the pattern. but if/when you do, you get particular super-powers that no other chat client has
what are those
the ugly
pantalaimon
image uploads don't really work in e2e rooms
ideally ement could one day natively support encrypted sessions. how cool would that be? how funny would it be if i was the one who ended up having to build it after my experience building matrix-client.el
pantalaimon is basically good enough but only just. need a client that can handle e2e uploads, i have to send screenshots to my phone or open neochat.