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 | 049325f438817c0b4f4a443f71b8821b0bfd357a (patch) | |
| tree | 54ef8f879fb82ad8e84e1d52a1b826be53c3b950 /init.el | |
| parent | 09af335782d678a15e6b4931f7d5e8c5e7eb034c (diff) | |
| download | dotemacs-049325f438817c0b4f4a443f71b8821b0bfd357a.tar.gz dotemacs-049325f438817c0b4f4a443f71b8821b0bfd357a.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 'init.el')
| -rw-r--r-- | init.el | 1 |
1 files changed, 1 insertions, 0 deletions
@@ -75,6 +75,7 @@ (require 'slack-config) ;; slack client via emacs-slack (require 'linear-config) ;; Linear.app issue tracking (deepsat workspace) (require 'telega-config) ;; telegram client via telega.el (TDLib in docker) +(require 'signal-config) ;; signal client via forked signel + signal-cli (require 'eshell-config) ;; emacs shell configuration (require 'vterm-config) ;; vterm + F12 toggle + tmux history copy (require 'ai-vterm) ;; in-Emacs Claude launcher (vertical-split vterm) |
