Update emacs.org
This commit is contained in:
parent
4a04a880e1
commit
d35a67f9c6
1 changed files with 95 additions and 82 deletions
|
@ -181,112 +181,125 @@ Should make startup faster, taken from doom-emacs
|
||||||
#+end_src
|
#+end_src
|
||||||
* Custom Modeline
|
* Custom Modeline
|
||||||
#+begin_src emacs-lisp
|
#+begin_src emacs-lisp
|
||||||
(setq mode-line-format nil)
|
(setq mode-line-format nil)
|
||||||
|
|
||||||
(kill-local-variable 'mode-line-format)
|
(kill-local-variable 'mode-line-format)
|
||||||
|
|
||||||
(force-mode-line-update)
|
(force-mode-line-update)
|
||||||
|
|
||||||
(setq-default mode-line-format
|
;; (setq-default mode-line-format
|
||||||
`("%e"
|
;; `("%e"
|
||||||
sakoline-evil-mode
|
;; sakoline-evil-mode
|
||||||
|
|
||||||
;; begin BUFFER name
|
;; ;; begin BUFFER name
|
||||||
" "
|
;; " "
|
||||||
|
|
||||||
sakoline-buffer-name
|
;; sakoline-buffer-name
|
||||||
|
|
||||||
" "
|
;; " "
|
||||||
sakoline-buffer-state
|
;; sakoline-buffer-state
|
||||||
" "
|
;; " "
|
||||||
;; everything under here goes to the right
|
;; ;; everything under here goes to the right
|
||||||
;; make sure to change the padding to make it look good
|
;; sakoline-major-mode
|
||||||
(:eval (sakoline-padding-right 'mode-line 20))
|
|
||||||
sakoline-major-mode
|
|
||||||
|
|
||||||
))
|
;; ))
|
||||||
|
|
||||||
(defvar-local sakoline-buffer-name
|
(setq-default mode-line-format
|
||||||
'(:eval
|
'((:eval (sakoline-render
|
||||||
(propertize (buffer-name) 'face '(:foreground "#669999")))
|
;; left
|
||||||
"Mode line variable that shows the buffer name.")
|
(quote ("%e"
|
||||||
|
sakoline-evil-mode
|
||||||
|
" "
|
||||||
|
sakoline-buffer-name
|
||||||
|
" "
|
||||||
|
sakoline-buffer-state))
|
||||||
|
;; right
|
||||||
|
(quote (sakoline-major-mode
|
||||||
|
)
|
||||||
|
)))))
|
||||||
|
|
||||||
(put 'sakoline-buffer-name 'risky-local-variable t)
|
(defun sakoline-render (left right)
|
||||||
|
"Return a string of `window-width' length.
|
||||||
|
Containing LEFT, and RIGHT aligned respectively."
|
||||||
|
(let ((available-width
|
||||||
|
(- (window-total-width)
|
||||||
|
(+ (length (format-mode-line left))
|
||||||
|
(length (format-mode-line right))))))
|
||||||
|
(append left
|
||||||
|
(list (format (format "%%%ds" available-width) ""))
|
||||||
|
right)))
|
||||||
|
|
||||||
(defface sakoline-major-mode-color
|
(defvar-local sakoline-buffer-name
|
||||||
'((t :foreground "grey"))
|
'(:eval
|
||||||
"Major Mode color for sakoline.")
|
(propertize (buffer-name) 'face '(:foreground "#669999")))
|
||||||
|
"Mode line variable that shows the buffer name.")
|
||||||
|
|
||||||
(defun sakoline--major-mode-name ()
|
(put 'sakoline-buffer-name 'risky-local-variable t)
|
||||||
"Return Capitalized Major Mode"
|
|
||||||
(capitalize (symbol-name major-mode)))
|
|
||||||
|
|
||||||
(defvar-local sakoline-major-mode
|
(defface sakoline-major-mode-color
|
||||||
'(:eval
|
'((t :foreground "grey"))
|
||||||
(propertize (sakoline--major-mode-name) 'face 'sakoline-major-mode-color)))
|
"Major Mode color for sakoline.")
|
||||||
|
|
||||||
(put 'sakoline-major-mode 'risky-local-variable t)
|
(defun sakoline--major-mode-name ()
|
||||||
|
"Return Capitalized Major Mode"
|
||||||
|
(capitalize (symbol-name major-mode)))
|
||||||
|
|
||||||
(defface sakoline-evil-visual-color
|
(defvar-local sakoline-major-mode
|
||||||
'((t :background "#6600cc" :foreground "black"))
|
'(:eval
|
||||||
"Evil Visual Color")
|
(propertize (sakoline--major-mode-name) 'face 'sakoline-major-mode-color)))
|
||||||
|
|
||||||
(defface sakoline-evil-normal-color
|
(put 'sakoline-major-mode 'risky-local-variable t)
|
||||||
'((t :background "#99ff99" :foreground "black"))
|
|
||||||
"Evil Visual Color")
|
|
||||||
|
|
||||||
(defface sakoline-evil-insert-color
|
(defface sakoline-evil-visual-color
|
||||||
'((t :background "#00cc66" :foreground "black"))
|
'((t :background "#6600cc" :foreground "black"))
|
||||||
"Evil Visual Color")
|
"Evil Visual Color")
|
||||||
|
|
||||||
(defface sakoline-evil-emacs-color
|
(defface sakoline-evil-normal-color
|
||||||
'((t :background "#9900ff" :foreground "black"))
|
'((t :background "#99ff99" :foreground "black"))
|
||||||
"Evil Visual Color")
|
"Evil Visual Color")
|
||||||
|
|
||||||
(defface sakoline-evil-operator-color
|
(defface sakoline-evil-insert-color
|
||||||
'((t :background "#ff3300" :foreground "black"))
|
'((t :background "#00cc66" :foreground "black"))
|
||||||
"Evil Visual Color")
|
"Evil Visual Color")
|
||||||
|
|
||||||
(defvar-local sakoline-evil-mode
|
(defface sakoline-evil-emacs-color
|
||||||
'(:eval (cond
|
'((t :background "#9900ff" :foreground "black"))
|
||||||
((eq evil-state 'visual) (propertize " VISUAL " 'face 'sakoline-evil-visual-color ))
|
"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-evil-operator-color
|
||||||
|
'((t :background "#ff3300" :foreground "black"))
|
||||||
|
"Evil Visual Color")
|
||||||
|
|
||||||
(defface sakoline-buffer-state-readonly
|
(defvar-local sakoline-evil-mode
|
||||||
'((t :foreground "red"))
|
'(:eval (cond
|
||||||
"Face for read-only buffer")
|
((eq evil-state 'visual) (propertize " VISUAL " 'face 'sakoline-evil-visual-color ))
|
||||||
(defface sakoline-buffer-state-modified
|
((eq evil-state 'normal) (propertize " NORMAL " 'face 'sakoline-evil-normal-color ))
|
||||||
'((t :foreground "orange"))
|
((eq evil-state 'insert) (propertize " INSERT " 'face 'sakoline-evil-insert-color ))
|
||||||
"Face for modified buffer")
|
((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")))
|
||||||
|
|
||||||
(defvar-local sakoline-buffer-state
|
(put 'sakoline-evil-mode 'risky-local-variable t)
|
||||||
'(: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)))))
|
|
||||||
|
|
||||||
(put 'sakoline-buffer-state '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")
|
||||||
|
|
||||||
(defun sakoline-padding-right (face reserve)
|
(defvar-local sakoline-buffer-state
|
||||||
"Return empty space using FACE and leaving RESERVE space on the right."
|
'(:eval
|
||||||
(unless reserve
|
(cond
|
||||||
(setq reserve 20))
|
(buffer-read-only
|
||||||
(when (and window-system (eq 'right (get-scroll-bar-mode)))
|
(propertize ">:("
|
||||||
(setq reserve (- reserve 3)))
|
'face 'sakoline-buffer-state-readonly
|
||||||
(propertize " "
|
'help-echo "buffer is read only"))
|
||||||
'display `((space :align-to (- (+ right right-fringe right-margin) ,reserve)))
|
((buffer-modified-p)
|
||||||
'face face))
|
(propertize "!!!"
|
||||||
|
'face 'sakoline-buffer-state-modified)))))
|
||||||
|
|
||||||
|
(put 'sakoline-buffer-state 'risky-local-variable t)
|
||||||
|
|
||||||
#+end_src
|
#+end_src
|
||||||
* Packages
|
* Packages
|
||||||
|
|
Loading…
Reference in a new issue