diff --git a/notes/emacs-matrix.org b/notes/emacs-matrix.org new file mode 100644 index 0000000..0887c9c --- /dev/null +++ b/notes/emacs-matrix.org @@ -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 + + + + + Label + pantalaimon + ProgramArguments + + /usr/local/bin/pantalaimon + --config + /Users/martin/.config/pantalaimon/pantalaimon.conf + + RunAtLoad + + KeepAlive + + StandardOutPath + /tmp/pantalaimon.log + StandardErrorPath + /tmp/pantalaimon.log + + +#+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)