From 32800720dddb0061cd8f4187091f29c6088e5415 Mon Sep 17 00:00:00 2001 From: Case Duckworth Date: Fri, 12 Mar 2021 17:22:32 -0600 Subject: Move `acdw/modeline' functions into `acdw/pkg' forms This change means I don't have to `require' libraries that haven't been registered with `straight' yet. --- init.el | 63 ++++++++++++++++++++++++++++++++++++++++++++++++++++----------- 1 file changed, 52 insertions(+), 11 deletions(-) (limited to 'init.el') diff --git a/init.el b/init.el index 849cd24..2f8760f 100644 --- a/init.el +++ b/init.el @@ -307,17 +307,58 @@ ;; Simple mode line (acdw/pkg simple-modeline - :now ((acdw/set '((simple-modeline-segments - ((;; left - acdw/modeline-modified - simple-modeline-segment-buffer-name - simple-modeline-segment-position) - (;; right - simple-modeline-segment-vc - simple-modeline-segment-misc-info - simple-modeline-segment-process - acdw/modeline-minions - simple-modeline-segment-major-mode))))) + :set '((simple-modeline-segments + ((;; left + acdw/modeline-modified + simple-modeline-segment-buffer-name + simple-modeline-segment-position) + (;; right + simple-modeline-segment-vc + simple-modeline-segment-misc-info + simple-modeline-segment-process + acdw/modeline-minions + simple-modeline-segment-major-mode)))) + :now ((defun acdw/modeline-modified () + "Displays a color-coded buffer modification/read-only +indicator in the mode-line." + (if (not (string-match-p "\\*.*\\*" (buffer-name))) + (let* ((read-only (and buffer-read-only (buffer-file-name))) + (modified (buffer-modified-p))) + (propertize + (if read-only " ×" (if modified " ●" " ○")) + 'face `(:inherit + ,(if modified 'simple-modeline-status-modified + (if read-only 'simple-modeline-status-error + 'simple-modeline-unimportant))) + 'help-echo (format + (concat "Buffer is %s and %smodified\n" + "mouse-1: Toggle read-only status.") + (if read-only "read-only" "writable") + (if modified "" "not ")) + 'local-map (purecopy (simple-modeline-make-mouse-map + 'mouse-1 + (lambda (event) + (interactive "e") + (with-selected-window + (posn-window (event-start event)) + (read-only-mode 'toggle))))) + 'mouse-face 'mode-line-highlight)))) + (defun acdw/modeline-minions () + "Display a button for `minions-minor-modes-menu'." + (concat + " " + (propertize + "ⱷ" + 'help-echo (format + "Minor modes menu\nmouse-1: show menu.") + 'local-map (purecopy (simple-modeline-make-mouse-map + 'mouse-1 + (lambda (event) + (interactive "e") + (with-selected-window (posn-window + (event-start event)) + (minions-minor-modes-menu))))) + 'mouse-face 'mode-line-highlight))) (simple-modeline-mode +1))) ;;; Magit -- cgit 1.4.1-21-gabe81