Files
emacs-org/notes/emacs-matrix.org

174 lines
5.0 KiB
Org Mode

#+TITLE: Emacs Matrix Client — Ement.el
#+AUTHOR: Martin Sukaný
#+DATE: 2026-02-23
#+STARTUP: overview
* Matrix v Emacsu — Ement.el
Ement.el je nativní Matrix klient pro Emacs. Plná integrace s Doom Emacs
přes prefix =SPC o M=.
** Instalace
Balíček je deklarovaný v =packages.el=:
#+begin_src elisp
(package! ement)
#+end_src
Po přidání spustit:
#+begin_src sh
~/.emacs.d/bin/doom sync
#+end_src
** Připojení (bez E2EE)
Spusť =SPC o M c= nebo =M-x ement-connect=:
#+begin_example
Homeserver URL: https://matrix.apps.sukany.cz
User ID: @martin:sukany.cz
Password: (zadej interaktivně)
#+end_example
Po prvním připojení se session uloží do =~/.cache/emacs/ement.el= (token).
Příště se připojí automaticky.
** Klávesové zkratky (SPC o M)
| Zkratka | Funkce |
|-----------|----------------------------|
| =SPC o M c= | Připojit (ement-connect) |
| =SPC o M C= | Odpojit |
| =SPC o M l= | Seznam místností |
| =SPC o M r= | Otevřít místnost |
| =SPC o M d= | Přímá zpráva uživateli |
| =SPC o M j= | Připojit se k místnosti |
| =SPC o M n= | Notifikace (nové zprávy) |
| =SPC o M m= | Zmínky (@martin) |
| =SPC o M s= | Manuální sync |
*** V místnosti (room buffer)
| Klávesa | Akce |
|-----------|---------------------------------|
| =RET= | Napsat zprávu |
| =M-RET= | Compose buffer (pro delší text) |
| =S-RET= | Odpovědět na zprávu na pointu |
| =n= / =p= | Další / předchozí zpráva |
| =SPC= | Scroll dolů + označit přečtené |
| =?= | Transient menu (všechny akce) |
| =s r= | Reakce (emoji) |
| =C-k= | Smazat vlastní zprávu |
| =r m= | Seznam členů |
| =M-g M-l= | Přejít na seznam místností |
** E2EE — šifrované místnosti přes Pantalaimon
Ement.el sám o sobě E2EE nepodporuje. Řešení: [[https://github.com/matrix-org/pantalaimon][Pantalaimon]] — lokální proxy
démon, který transparentně šifruje/dešifruje zprávy.
*** Instalace Pantalaimon
#+begin_src sh
# macOS
brew install pantalaimon
# nebo přes pip
pip3 install pantalaimon
#+end_src
*** Konfigurace
Vytvoř =~/.config/pantalaimon/pantalaimon.conf=:
#+begin_src ini
[sukany]
Homeserver = https://matrix.apps.sukany.cz
ListenAddress = localhost
ListenPort = 8009
SSL = yes
#+end_src
*** Spuštění
#+begin_src sh
# Spustit na pozadí
pantalaimon --config ~/.config/pantalaimon/pantalaimon.conf &
# Nebo jako launchd service (macOS) — viz níže
#+end_src
*** Připojení ement přes Pantalaimon
Při =SPC o M c= (ement-connect) zadej jako homeserver proxy URL:
#+begin_example
Homeserver URL: http://localhost:8009
User ID: @martin:sukany.cz
Password: (stejné jako normálně)
#+end_example
Pantalaimon transparentně přepošle vše na =matrix.apps.sukany.cz=
a zašifruje/dešifruje E2EE místnosti.
*** Automatický start Pantalaimon (macOS LaunchAgent)
Vytvoř =~/Library/LaunchAgents/pantalaimon.plist=:
#+begin_src xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Label</key>
<string>pantalaimon</string>
<key>ProgramArguments</key>
<array>
<string>/usr/local/bin/pantalaimon</string>
<string>--config</string>
<string>/Users/martin/.config/pantalaimon/pantalaimon.conf</string>
</array>
<key>RunAtLoad</key>
<true/>
<key>KeepAlive</key>
<true/>
<key>StandardOutPath</key>
<string>/tmp/pantalaimon.log</string>
<key>StandardErrorPath</key>
<string>/tmp/pantalaimon.log</string>
</dict>
</plist>
#+end_src
#+begin_src sh
launchctl load ~/Library/LaunchAgents/pantalaimon.plist
#+end_src
*** Poznámka k E2EE ověření klíčů
Při prvním připojení přes Pantalaimon se zobrazí výzva k ověření zařízení
(cross-signing). Ověř v Element nebo jiném klientu — bez toho ement
nemusí zobrazovat zprávy v E2EE místnostech.
** Konfigurace uložena v
- Ement session (token): =~/.cache/emacs/ement.el=
- Pantalaimon data (E2EE klíče): =~/.local/share/pantalaimon/=
- Pantalaimon konfig: =~/.config/pantalaimon/pantalaimon.conf=
** Časté problémy
| Problém | Příčina | Řešení |
|---|---|---|
| "Invalid homeserver" | Špatná URL | Zkontrolovat https://matrix.apps.sukany.cz |
| E2EE místnosti prázdné | Pantalaimon neběží | =pantalaimon &= |
| Zprávy se nezobrazují | Cross-signing neproběhlo | Ověřit zařízení v Element |
| Auto-sync nefunguje | Session nebyla uložena | =SPC o M c= znovu |
| "Unverified device" | Nové zařízení | Ověřit v Element → Settings → Devices |
** Reference
- [[https://github.com/alphapapa/ement.el][ement.el GitHub]]
- [[https://github.com/matrix-org/pantalaimon][Pantalaimon GitHub]]
- Konfigurace: =~/.doom.d/config.el= (sekce MATRIX)