dotfiles/emacs-lisp/ement_el.org

54 lines
1.6 KiB
Org Mode
Raw Normal View History

: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