:PROPERTIES: :ID: cfb02bea-f9a2-4c7c-8971-d082feedab22 :END: #+title: ement.el #+filetags: emacs-load #+begin_src emacs-lisp (use-package password-store :straight t) (use-package ement :straight '(ement :type git :host github :repo "alphapapa/ement.el") :after (password-store) :config (setq ement-save-sessions t) (ement-connect :uri-prefix "http://localhost:8008" :password (password-store-get "Matrix/@magic_rb:matrix.redalder.org") :user-id "@magic_rb:matrix.redalder.org")) #+end_src #+begin_src emacs-lisp (defun ement-send-anyways () (interactive) (when (ement-room-p ement-room) (let ((ement-room- ement-room) (ement-session- ement-session)) (save-excursion (panctl "*panctl-temp-send-anyway*") (vterm-insert "send-anyways " (ement-user-id (ement-session-user ement-session-)) " " (ement-room-id ement-room-)) (vterm-send-return) (vterm-send-C-c)))))) #+end_src Enable message composition in [[id:986ca7a5-d225-49bb-9e35-f2dffafe8aee][Org Mode]] by default. #+begin_src emacs-lisp (setq ement-room-send-message-filter #'ement-room-send-org-filter) #+end_src Define an interactive command to open [[https://github.com/matrix-org/pantalaimon][pantalaimon]] in Emacs. #+begin_src emacs-lisp (defun panctl (&optional name) (interactive) (let* ((name- (or name "panctl")) (buffer (get-buffer name-)) (vterm-shell "panctl")) (if buffer (switch-to-buffer buffer) (vterm name-) (whitespace-mode -1)))) #+end_src