#+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= (uppercase M — =SPC o m= je obsazeno mu4e).

** 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

** Server a účet

- Homeserver: =https://matrix.apps.sukany.cz=
- User ID: =@martin:sukany.cz=
- E2EE: *zakázáno na straně serveru* (=encryption: false= v OpenClaw config) — Pantalaimon se nepoužívá a není potřeba

** Automatické připojení

Emacs se automaticky připojí při startu (=doom-after-init-hook=) pomocí
uložené session. Nepotřebuješ zadávat heslo — token je uložen v souboru:

#+begin_example
~/.doom.d/ement-sessions.el
#+end_example

Při prvním použití (nebo po výmazu session souboru) spusť =SPC o M c=
a zadej:
#+begin_example
Homeserver URL: https://matrix.apps.sukany.cz
User ID: @martin:sukany.cz
Password: (interaktivně)
#+end_example

Po úspěšném připojení se session uloží a příště je připojení automatické.

** Klávesové zkratky (SPC o M)

| Zkratka     | Funkce                                        |
|-------------|-----------------------------------------------|
| =SPC o M o=   | Otevřít panel (inteligentní — viz níže)       |
| =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)                              |

*** Inteligentní otevření panelu (SPC o M o)

=my/ement-open= se chová podle aktuálního stavu:
- Již připojeno → okamžitě otevře seznam místností
- Session soubor existuje → obnoví bez zadání hesla, po sync otevře místnosti
- Žádná session → interaktivní =ement-connect=, pak otevře místnosti

*** 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

E2EE je na serveru *zakázáno* — veškerá komunikace mezi Emacs klientem
a homeserverem probíhá nešifrovaně (ale přes HTTPS). Toto je záměrné
rozhodnutí: Megolm session errors způsobovaly nečitelné zprávy na iOS zařízeních,
spolehlivost je důležitější.

Pantalaimon *se nepoužívá* a není potřeba instalovat.

** Konfigurace v config.el

Relevantní sekce (viz =~/.doom.d/config.el=):
- =ement-sessions-file= — nastaven na =~/.doom.d/ement-sessions.el= (před načtením balíčku)
- =ement-save-sessions t= — session se uloží při =kill-emacs=
- =ement-auto-sync t= — na pozadí se synchronizuje automaticky
- =ement-room-show-avatars nil= — avatary jsou vypnuty (výkon)
- =ement-notify-mentions-p t= — notifikace při zmínkách

** Místnosti

| Název                | Room ID                                 | Použití               |
|----------------------|-----------------------------------------|-----------------------|
| Daneel - AI assistant | =!bVBXrchJJVQRoyHQwU:sukany.cz=          | Hlavní DM s Daneel    |
| Email summaries      | =!okPPZiCqKrzZeGkpzv:sukany.cz=          | Email notifikace      |
| Nakopni se (Daneel)  | =!moHRlJaLrwEBYDDzGg:sukany.cz=          | Nakopni se kurz       |
| Sprava serveru       | =!NmZsNYaigZZensbSIi:sukany.cz=          | Infra01 monitoring    |
| Weekly review        | =!rHpupKCgxNRJoomtij:sukany.cz=          | Týdenní přehledy      |

** Časté problémy

| Problém                        | Příčina                        | Řešení                                          |
|--------------------------------|--------------------------------|-------------------------------------------------|
| Auto-connect nefunguje         | Session soubor chybí nebo poškozený | =SPC o M c= pro nové přihlášení            |
| "Invalid homeserver"           | Špatná URL                     | Zkontrolovat =https://matrix.apps.sukany.cz=    |
| Zprávy se nezobrazují          | Session expirovala             | =SPC o M C= → =SPC o M c=                       |
| Pomalý start                   | Avatary zapnuty                | =(setq ement-room-show-avatars nil)=            |

** Reference

- [[https://github.com/alphapapa/ement.el][ement.el GitHub]]
- Konfigurace: =~/.doom.d/config.el= (sekce MATRIX)
- Session soubor: =~/.doom.d/ement-sessions.el=
