docs: emacs Matrix client (ement.el) — setup, E2EE, klávesové zkratky
This commit is contained in:
173
notes/emacs-matrix.org
Normal file
173
notes/emacs-matrix.org
Normal file
@@ -0,0 +1,173 @@
|
|||||||
|
#+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)
|
||||||
Reference in New Issue
Block a user