From 36fed6d1a1614f72d425073d7c9e1529f622fe7a Mon Sep 17 00:00:00 2001 From: Robert Irelan Date: Thu, 11 Nov 2021 00:34:52 -0800 Subject: [PATCH] Add modeline segment for follow-mode (#489) When follow-mode is enabled for a buffer, this will show a segment left of buffer-info (which contains the file name) like "Follow M/N", where N is the total number of follow windows for this buffer and M is the index of the selected window. --- doom-modeline-segments.el | 15 +++++++++++++++ doom-modeline.el | 2 +- 2 files changed, 16 insertions(+), 1 deletion(-) diff --git a/doom-modeline-segments.el b/doom-modeline-segments.el index bafcd06..415ec9e 100644 --- a/doom-modeline-segments.el +++ b/doom-modeline-segments.el @@ -2947,6 +2947,21 @@ mouse-3: Restart preview" map))) (doom-modeline-spc)))) +;; +;; Follow mode +;; + +(doom-modeline-def-segment follow + (when (bound-and-true-p follow-mode) + (let* ((windows (follow-all-followers)) + (nwindows (length windows)) + (nfollowing (- (length (memq (selected-window) windows)) + 1))) + (concat + (doom-modeline-spc) + (propertize (format "Follow %d/%d" (- nwindows nfollowing) nwindows) + 'face 'doom-modeline-buffer-minor-mode))))) + (provide 'doom-modeline-segments) ;;; doom-modeline-segments.el ends here diff --git a/doom-modeline.el b/doom-modeline.el index 2b7c607..0bf9fe5 100644 --- a/doom-modeline.el +++ b/doom-modeline.el @@ -90,7 +90,7 @@ ;; (doom-modeline-def-modeline 'main - '(bar workspace-name window-number modals matches buffer-info remote-host buffer-position word-count parrot selection-info) + '(bar workspace-name window-number modals matches follow buffer-info remote-host buffer-position word-count parrot selection-info) '(objed-state misc-info persp-name battery grip irc mu4e gnus github debug repl lsp minor-modes input-method indent-info buffer-encoding major-mode process vcs checker)) (doom-modeline-def-modeline 'minimal