summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorCraig Jennings <c@cjennings.net>2026-05-13 16:06:38 -0500
committerCraig Jennings <c@cjennings.net>2026-05-13 16:06:38 -0500
commit8fc423d90eff78176fa538f2cf838cb671592e99 (patch)
tree072823a4400a76ece4d0204119be554c6535ef05 /modules
parentc3ec8508a8ff414d099d9e567eb5ffd43a9c93f2 (diff)
downloaddotemacs-8fc423d90eff78176fa538f2cf838cb671592e99.tar.gz
dotemacs-8fc423d90eff78176fa538f2cf838cb671592e99.zip
feat(telega): add telega.el module with docker-backed TDLib
New `modules/telega-config.el` configures telega.el as an in-Emacs Telegram client. `telega-use-docker' is on so TDLib runs in a container instead of needing a system-level build -- pairs with a follow-up `scripts/setup-telega.sh' for fresh-clone installs. First-run auth (phone + verification code) is interactive inside `M-x telega' and isn't scripted here. Launcher binding: `C-; G` (mnemonic: teleGram). `C-; t` and `C-; m t` were both taken (test-runner, music's "repeat track"), so the launcher landed on a free top-level letter. Two tests cover the wiring: module loads, launcher is bound.
Diffstat (limited to 'modules')
-rw-r--r--modules/telega-config.el41
1 files changed, 41 insertions, 0 deletions
diff --git a/modules/telega-config.el b/modules/telega-config.el
new file mode 100644
index 00000000..aada717f
--- /dev/null
+++ b/modules/telega-config.el
@@ -0,0 +1,41 @@
+;;; telega-config.el --- Telega Telegram client config -*- lexical-binding: t; coding: utf-8; -*-
+;; author: Craig Jennings <c@cjennings.net>
+
+;;; Commentary:
+;;
+;; Configures telega.el (https://github.com/zevlg/telega.el) as an
+;; in-Emacs Telegram client.
+;;
+;; TDLib (Telegram Database Library) runs in a docker container via
+;; `telega-use-docker' so a fresh-clone install does not need a
+;; system-level TDLib build. =scripts/setup-telega.sh= prepares the
+;; container the first time; afterwards telega.el reattaches
+;; automatically.
+;;
+;; First-run auth (phone number + Telegram verification code) is
+;; interactive and happens inside `M-x telega'. This module does not
+;; script it.
+;;
+;; Launcher: =C-; G= (mnemonic: teleGram). Neither =C-; t= (test-runner
+;; menu) nor =C-; m t= (music "repeat track") were available, so the
+;; launcher lives at a free top-level letter rather than under a
+;; messaging sub-prefix.
+
+;;; Code:
+
+(require 'keybindings)
+
+(use-package telega
+ :defer t
+ :commands (telega)
+ :custom
+ (telega-use-docker t))
+
+(keymap-set cj/custom-keymap "G" #'telega)
+
+(with-eval-after-load 'which-key
+ (which-key-add-key-based-replacements
+ "C-; G" "telegram (telega)"))
+
+(provide 'telega-config)
+;;; telega-config.el ends here