From 049325f438817c0b4f4a443f71b8821b0bfd357a Mon Sep 17 00:00:00 2001 From: Craig Jennings Date: Tue, 26 May 2026 20:24:58 -0500 Subject: 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. --- init.el | 1 + 1 file changed, 1 insertion(+) (limited to 'init.el') diff --git a/init.el b/init.el index 27f4adb9..fe1acd35 100644 --- a/init.el +++ b/init.el @@ -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) -- cgit v1.2.3