#+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)