branch: master commit 57e2f37d5cde26a6dab938fc5dfe96b41f2b6909 Merge: bfeccce 997baef Author: Artur Malabarba <bruce.connor...@gmail.com> Commit: Artur Malabarba <bruce.connor...@gmail.com>
Merge commit '997baefd66008827aa144c651c166701de78b43a' --- packages/beacon/Readme.org | 9 +++++---- packages/beacon/beacon.el | 33 ++++++++++----------------------- 2 files changed, 15 insertions(+), 27 deletions(-) diff --git a/packages/beacon/Readme.org b/packages/beacon/Readme.org index 1f20527..50631c8 100644 --- a/packages/beacon/Readme.org +++ b/packages/beacon/Readme.org @@ -25,10 +25,11 @@ That’s it. ~beacon-blink-when-window-changes~, and ~beacon-blink-when-point-moves~. -- To prevent the beacon from blinking only on some major-modes, - configure ~beacon-dont-blink-major-modes~. For specific buffers, you - can do ~(setq-local beacon-mode nil)~. For even more refined - control, configure ~beacon-dont-blink-predicates~ +- To prevent the beacon from blinking only on specific situations + configure ~beacon-dont-blink-major-modes~, + ~beacon-dont-blink-predicates~, or ~beacon-dont-blink-commands~. You + can also disable it only in specific buffers by doing + ~(setq-local beacon-mode nil)~. - Beacon can also push the mark for you whenever point moves a long distance. For this, configure ~beacon-push-mark~. diff --git a/packages/beacon/beacon.el b/packages/beacon/beacon.el index 290054e..feda34b 100644 --- a/packages/beacon/beacon.el +++ b/packages/beacon/beacon.el @@ -33,28 +33,7 @@ ;; ;; That’s it. ;; -;; -;; 1 Customizations -;; ════════════════ -;; -;; • The appearance of the beacon is configured by `beacon-size' and -;; `beacon-color'. -;; -;; • The duration is configured by `beacon-blink-duration' and -;; `beacon-blink-delay'. -;; -;; • To customize /when/ the beacon should blink at all, configure -;; `beacon-blink-when-window-scrolls', -;; `beacon-blink-when-window-changes', and -;; `beacon-blink-when-point-moves'. -;; -;; • To prevent the beacon from blinking only on some major-modes, -;; configure `beacon-dont-blink-major-modes'. For specific buffers, you -;; can do `(setq-local beacon-mode nil)'. For even more refined -;; control, configure `beacon-dont-blink-predicates' -;; -;; • Beacon can also push the mark for you whenever point moves a long -;; distance. For this, configure `beacon-push-mark'. +;; See the accompanying Readme.org for configuration details. ;;; Code: @@ -134,6 +113,13 @@ one of the major-modes on this list, the beacon will not blink." :type '(repeat symbol)) +(defcustom beacon-dont-blink-commands '(recenter-top-bottom) + "A list of commands that should not make the beacon blink. +Use this for commands that scroll the window in very +predictable ways, when the blink would be more distracting +than helpful.." + :type '(repeat symbol)) + ;;; Overlays (defvar beacon--ovs nil) @@ -259,7 +245,8 @@ Only returns `beacon-size' elements." (beacon--vanish) (unless (or (not beacon-mode) (run-hook-with-args-until-success 'beacon-dont-blink-predicates) - (seq-find #'derived-mode-p beacon-dont-blink-major-modes)) + (seq-find #'derived-mode-p beacon-dont-blink-major-modes) + (memq (or this-command last-command) beacon-dont-blink-commands)) (beacon--shine) (setq beacon--timer (run-at-time beacon-blink-delay