# HG changeset patch # User xaltsc # Date 1651152872 -7200 # Thu Apr 28 15:34:32 2022 +0200 # Node ID c47cc59c2260671ba12e6f592718b91f0855da4c # Parent 0000000000000000000000000000000000000000 init diff --git a/README.org b/README.org new file mode 100644 --- /dev/null +++ b/README.org @@ -0,0 +1,16 @@ +* xaltsc's config mode line + +[[./screenshot.png]] + +A simple vim-like mode-line with special faces for evil. + +Names of the faces come from [[https://github.com/nvim-lualine/lualine.nvim][Lualine]]. + +The default theme is based off [[https://carbondesignsystem.com/guidelines/color/overview][IBM's Carbon Design Language]]. + +** Usage + +#+BEGIN_SRC emacs-lisp + (require 'xc-look-mode-line) + (setq-default mode-line-format xc-line/mode-line) +#+END_SRC diff --git a/screenshot.png b/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..39e27e05f70ceeeea1b3fa3fe2ab7ce05236b981 GIT binary patch literal 21388 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 face-to-merge) +; (--merge-face-in-list sexp face-to-merge) +; sexp))) +; +(defun xc-line/centre-space (right-length) + "Creates the space for the centre of the mode line" + `(:propertize " " display (space :align-to (- right ,right-length)))) + +(defun xc-line/format-part-expand-symbols (sym) + "Expands symbols when they are bound" + (if (and (symbolp sym) (boundp sym)) + (symbol-value sym) + sym)) + +(defun format-and-escape (format-spec) + (--escape-percent-construct (format-mode-line format-spec))) + +(defun xc-line/format-part (part face &optional extra-right-space-p) + "Formats `part' of the mode line while adding the face `face' at the end of + the face text property of its components. Adds an extra space at the end if + `extra-right-space-p' is non-nil. + + Returns the resulting string." + (let* ((part-elt (if (and (listp part) (eq (car part) :multi)) + (-interpose xc-line-separator + (mapcar #'xc-line/format-part-expand-symbols + (cdr part))) + part)) + (formatted-part (format-and-escape + (list " " part-elt " " + (and extra-right-space-p " ")))) + (f-p-length (length formatted-part))) + (add-face-text-property 0 f-p-length face t formatted-part) + formatted-part)) + +; (part-w-face `(:eval (--merge-face-properties ',part-elt ',face))) +; `(:propertize (" " ,part-w-face " " ,) +; face ,face)) + +(defun xc-line/get-face-for-mode (seg-identifier) + "Gets the correct face for the segment `seg-identifier' according to the + current `evil-state'" + + (let ((face-string (format "xc-line-part-%s-%s" seg-identifier evil-state))) + (intern face-string))) + +(defun xc-line/format-left (a b c) + "Makes the left part of the mode line" + (let ((a-propd (xc-line/format-part a (xc-line/get-face-for-mode 'a))) + (b-propd (xc-line/format-part b 'xc-line-part-b)) + (c-propd (xc-line/format-part c 'xc-line-part-c))) + (list a-propd b-propd c-propd))) + +(defun xc-line/format-right (x y z) + "Makes the right part of the mode line" + (let ((x-propd (xc-line/format-part x 'xc-line-part-x)) + (y-propd (xc-line/format-part y 'xc-line-part-y)) + (z-propd (xc-line/format-part z (xc-line/get-face-for-mode 'z) t))) + (list x-propd y-propd z-propd))) + +(defun xc-line/format (left right) + "Makes the mode line format" + + (let* ((middle (xc-line/centre-space + (- (length (format-mode-line right)) 1))) + (mode-line-string (format-and-escape (list left middle right))) + (mls-length (length mode-line-string))) + (add-face-text-property 0 mls-length 'xc-line-container t mode-line-string) + mode-line-string)) + +(setq xc-line/seg-evil + '(:eval (s-pad-right 3 " " (plist-get '(normal "NOR" + insert "INS" + visual "VIS" + operator "OP" + replace "REP" + motion "MOT" + emacs "EMX") + evil-state)))) + +(defun xc-line/seg-buffer-status () + (let ((modified (if (buffer-modified-p) xc-line-modified "")) + (readonly (if buffer-read-only xc-line-readonly ""))) + (format "%s%s" modified readonly))) + +(setq xc-line/seg-buffer + '("%b" (:eval (xc-line/seg-buffer-status)))) + +(setq xc-line/seg-major-mode + 'mode-name) + +(setq xc-line/seg-minor-modes + 'minor-mode-alist) + +(defun --xc-line/try-trim (obj) + (let ((maybe-str (or (and (symbolp obj) (boundp obj) (symbol-value obj)) + obj))) + (if (stringp maybe-str) (s-trim maybe-str) maybe-str))) + +(setq xc-line/seg-misc-info + '(:eval (mapcar #'--xc-line/try-trim global-mode-string))) + + +(setq xc-line/seg-progress + '(:eval (downcase (--escape-percent-construct + (format-mode-line '(-3 "%p")))))) + +(setq xc-line/seg-position + '(:eval (--escape-percent-construct + (s-pad-left 6 " " (format-mode-line "%l:%c"))))) + +(defcustom xc-line/mode-line + '(:eval (xc-line/format + (xc-line/format-left xc-line/seg-evil + xc-line/seg-misc-info + xc-line/seg-buffer) + (xc-line/format-right xc-line/seg-minor-modes + xc-line/seg-progress + (list :multi xc-line/seg-position + xc-line/seg-major-mode)))) + "xaltsc's config mode-line") + +(provide 'xc-look-mode-line)