diff options
| author | Craig Jennings <c@cjennings.net> | 2026-05-26 20:24:58 -0500 |
|---|---|---|
| committer | Craig Jennings <c@cjennings.net> | 2026-05-26 20:24:58 -0500 |
| commit | c460da1de98607d9886dda2b1c6ffcb5c5b7b96d (patch) | |
| tree | 7d4d3ae603261e099071e990a8f0f091aac76b10 /modules/cj-window-toggle-lib.el | |
| parent | c04c0322f88992a5d6c1c630b1d3a096741b8496 (diff) | |
| download | dotemacs-c460da1de98607d9886dda2b1c6ffcb5c5b7b96d.tar.gz dotemacs-c460da1de98607d9886dda2b1c6ffcb5c5b7b96d.zip | |
feat(signal): add Signal client foundation on a signel fork
I'm building a Signal client in Emacs on signal-cli (linked as a secondary device) with a fork of the signel package as the front end. signel is on MELPA but effectively abandoned, and the behavior I want needs internal edits, so owning a fork beats advising a dead package. Full rationale and the rejected alternatives are in docs/design/signal-client.org.
This lands the signal-cli-independent foundation: contact-list parsing for a completing-read picker, and the predicate that suppresses a notification for the chat being actively viewed. Both are pure and unit-tested without a linked account. cj/signal--parse-contacts was corrected against a live account (signal-cli 0.14 puts givenName/familyName at the top level, not under profile), and verified across all 94 real contacts.
The use-package wiring loads the fork from ~/code/signel, sources the account from a gitignored signal-config.local.el (a phone number is an identifier, not a credential, and this keeps it off the mirror without a GPG prompt), and turns off auto-open so an incoming message can't steal a window. Verified live: signel-start spawns the jsonRpc process, loads the account, and receives over the channel.
The fork edits (notify routing, the upstream input-clobber bug) and the contact-picker command are still to come.
Diffstat (limited to 'modules/cj-window-toggle-lib.el')
0 files changed, 0 insertions, 0 deletions
