174 lines
5.0 KiB
Org Mode
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)
|