diff --git a/config/emacs/emacs.org b/config/emacs/emacs.org index 2f0b9d81..34e5a59f 100644 --- a/config/emacs/emacs.org +++ b/config/emacs/emacs.org @@ -181,51 +181,98 @@ Should make startup faster, taken from doom-emacs #+end_src * Custom Modeline #+begin_src emacs-lisp + (setq mode-line-format nil) + + (kill-local-variable 'mode-line-format) + + (force-mode-line-update) + (setq-default mode-line-format - `("%e" - ;; begin EVIL state - (:eval (cond - ((eq evil-state 'visual) (propertize " VISUAL " - 'face '(:background "#6600cc" - :foreground "#000000"))) - ((eq evil-state 'normal) (propertize " NORMAL " - 'face '(:background "#99ff99" :foreground "#000000"))) - ((eq evil-state 'insert) (propertize " INSERT " - 'face '(:background "#00cc66" - :foreground "#000000"))) - ((eq evil-state 'emacs) (propertize " EMACS " - 'face '(:background "#9900ff" - :foreground "#000000"))) - ((eq evil-state 'operator) (propertize " OPERATOR " - 'face '(:background "#ff3300" - :foreground "#000000"))) - - )) - ;; end EVIL state + `("%e" + sakoline-evil-mode - ;; begin BUFFER name - " " + ;; begin BUFFER name + " " - (:eval (propertize (buffer-name) - 'face '(:foreground "#669999"))) + sakoline-buffer-name - " " - ;; end BUFFER name + " " + sakoline-buffer-state + sakoline-major-mode + + )) - ;; begin modified thingy - (:eval - (cond - (buffer-read-only - (propertize ">:(" - 'face '(:foreground "red" :weight 'bold) - 'help-echo "buffer is read only")) - ((buffer-modified-p) - (propertize "!!!" - 'face '(:foreground "orange"))))) - ;; end modified thingy - )) + (defvar-local sakoline-buffer-name + '(:eval + (propertize (buffer-name) 'face '(:foreground "#669999"))) + "Mode line variable that shows the buffer name.") + + (put 'sakoline-buffer-name 'risky-local-variable t) + + (defface sakoline-major-mode-color + '((t :foreground "grey")) + "Major Mode color for sakoline.") + + (defun sakoline--major-mode-name () + "Return Capitalized Major Mode" + (capitalize (symbol-name major-mode))) + + (defvar-local sakoline-major-mode + '(:eval + (propertize (sakoline--major-mode-name) 'face 'sakoline-major-mode-color))) + + (put 'sakoline-major-mode 'risky-local-variable t) + + (defface sakoline-evil-visual-color + '((t :background "#6600cc" :foreground "black")) + "Evil Visual Color") + + (defface sakoline-evil-normal-color + '((t :background "#99ff99" :foreground "black")) + "Evil Visual Color") + + (defface sakoline-evil-insert-color + '((t :background "#00cc66" :foreground "black")) + "Evil Visual Color") + + (defface sakoline-evil-emacs-color + '((t :background "#9900ff" :foreground "black")) + "Evil Visual Color") + + (defface sakoline-evil-operator-color + '((t :background "#ff3300" :foreground "black")) + "Evil Visual Color") + + (defvar-local sakoline-evil-mode + '(:eval (cond + ((eq evil-state 'visual) (propertize " VISUAL " 'face 'sakoline-evil-visual-color )) + ((eq evil-state 'normal) (propertize " NORMAL " 'face 'sakoline-evil-normal-color )) + ((eq evil-state 'insert) (propertize " INSERT " 'face 'sakoline-evil-insert-color )) + ((eq evil-state 'emacs) (propertize " EMACS " 'face 'sakoline-evil-emacs-color )) + ((eq evil-state 'operator) (propertize " OPERATOR " 'face 'sakoline-evil-operator-color)) + "Get current evil mode state"))) + + (put 'sakoline-evil-mode 'risky-local-variable t) + + (defface sakoline-buffer-state-readonly + '((t :foreground "red")) + "Face for read-only buffer") + (defface sakoline-buffer-state-modified + '((t :foreground "orange")) + "Face for modified buffer") + + (defvar-local sakoline-buffer-state + '(:eval + (cond + (buffer-read-only + (propertize ">:(" + 'face 'sakoline-buffer-state-readonly + 'help-echo "buffer is read only")) + ((buffer-modified-p) + (propertize "!!!" + 'face 'sakoline-buffer-state-modified))))) #+end_src * Packages ** Log state