<feed xmlns='http://www.w3.org/2005/Atom'>
<title>dotemacs/tests/test-telega-config.el, branch main</title>
<subtitle>My Emacs configuration
</subtitle>
<id>https://git.cjennings.net/dotemacs/atom?h=main</id>
<link rel='self' href='https://git.cjennings.net/dotemacs/atom?h=main'/>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/'/>
<updated>2026-05-14T15:47:08+00:00</updated>
<entry>
<title>refactor: clear transcription C-; T menu, move telega launcher to C-; T</title>
<updated>2026-05-14T15:47:08+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-05-14T15:47:08+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=c0ddf4cf68cb2cdbe1d1758a9da1080d081058b9'/>
<id>urn:sha1:c0ddf4cf68cb2cdbe1d1758a9da1080d081058b9</id>
<content type='text'>
The transcription menu wasn't earning its top-level keymap slot --
the commands (transcribe-audio, switch-backend, view-transcriptions,
kill-transcription) are run rarely enough that `M-x' is fine.  Drop
the `cj/transcribe-map' keymap, its `(keymap-set cj/custom-keymap
"T" ...)' binding, and the which-key labels.  Commands stay
callable by name.

That frees `C-; T' for telega, where the mnemonic actually fits.
Move the launcher from `C-; G' to `C-; T'.  Update the
which-key label, the module commentary, and the keymap-binding
test assertion.  The dashboard `g' single-letter binding stays put
-- `t' there is vterm, so dashboard letters and the global
`C-;' prefix don't share a key space anyway.
</content>
</entry>
<entry>
<title>feat(telega-config): guard launcher with a helpful message when telega is missing</title>
<updated>2026-05-14T13:07:33+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-05-14T13:07:33+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=c123250c3cf928864aab118e1b9bfbaf9e1102b3'/>
<id>urn:sha1:c123250c3cf928864aab118e1b9bfbaf9e1102b3</id>
<content type='text'>
Without the guard, both `C-; G' and the dashboard Telegram icon
trigger telega's autoload stub directly.  When the package isn't
installed yet the user sees `Cannot open load file: telega' in
`*Messages*' with no hint about what to do.

Wrap the launcher in `cj/telega' that checks `featurep' /
`locate-library' first.  If telega is present, delegate to it.
Otherwise signal a `user-error' pointing at `scripts/setup-telega.sh'
and the manual `M-x package-install RET telega' fallback.  Rebind
`C-; G' and the dashboard "g" key + Telegram icon callback to the
wrapper.

Two new tests in `test-telega-config.el' cover the wrapper paths
(absent -&gt; user-error with the recovery hint; present -&gt; delegates
to `telega') alongside the updated binding assertion.
</content>
</entry>
<entry>
<title>feat(telega): add telega.el module with docker-backed TDLib</title>
<updated>2026-05-13T21:06:38+00:00</updated>
<author>
<name>Craig Jennings</name>
<email>c@cjennings.net</email>
</author>
<published>2026-05-13T21:06:38+00:00</published>
<link rel='alternate' type='text/html' href='https://git.cjennings.net/dotemacs/commit/?id=8fc423d90eff78176fa538f2cf838cb671592e99'/>
<id>urn:sha1:8fc423d90eff78176fa538f2cf838cb671592e99</id>
<content type='text'>
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.
</content>
</entry>
</feed>
