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