From 998e9c7a08a57f343a3ac2423597ec7e5556f329 Mon Sep 17 00:00:00 2001 From: Craig Jennings Date: Thu, 28 May 2026 03:08:05 -0500 Subject: feat(signal): dock chat buffer to bottom 30% and add cancel binding I added a display-buffer-alist entry matching "*Signel:" chat buffers and routing them through display-buffer-at-bottom with window-height 0.3. The signel fork's signel-chat now uses pop-to-buffer instead of switch-to-buffer, which is what makes the rule apply. Without that switch the buffer replaces the current window and skips display-buffer entirely. Two new tests in test-signal-config.el lock the entry shape and the regex's buffer-name match set. A new test-signel-cancel-input.el covers the fork's C-c C-k handler. It clears the editable region between signel--input-marker and point-max, then quit-windows so the buffer survives the dismiss. Closes the "Chat buffer placement + exit keys" task filed during the 2026-05-28 manual-verify walk. --- modules/signal-config.el | 10 ++++++++++ 1 file changed, 10 insertions(+) (limited to 'modules') diff --git a/modules/signal-config.el b/modules/signal-config.el index 00279d4c..102ece86 100644 --- a/modules/signal-config.el +++ b/modules/signal-config.el @@ -127,6 +127,16 @@ time." (when (file-readable-p cj/signal-private-config-file) (load cj/signal-private-config-file nil t))) +;; Chat buffers (named `*Signel: *') open in the bottom 30% of the +;; frame rather than wherever display-buffer's fallback rule picks. +;; The fork's `signel-chat' uses `pop-to-buffer', so this entry applies. +(add-to-list + 'display-buffer-alist + '("\\`\\*Signel: " + (display-buffer-reuse-window display-buffer-at-bottom) + (window-height . 0.3) + (reusable-frames . nil))) + ;;; Connection guard, contact fetch, and cache ;; Forward declarations: signel.el is loaded by the use-package above (with -- cgit v1.2.3