X-Git-Url: http://47.100.26.94:8080/?a=blobdiff_plain;f=emacs.d%2Felisp%2Fmy-mode-line.el;h=6c528ce6fada5e70e7d90379ad72e85ae6bf609f;hb=41b08d2b3e7d178c3523529d7249d80e7a4fae3a;hp=525aecb74fffce6da6973a0141d6783411f94f23;hpb=8619c173f2e8b108d4897618b74839bd69a8bb51;p=dotfiles.git diff --git a/emacs.d/elisp/my-mode-line.el b/emacs.d/elisp/my-mode-line.el index 525aecb..6c528ce 100644 --- a/emacs.d/elisp/my-mode-line.el +++ b/emacs.d/elisp/my-mode-line.el @@ -64,7 +64,7 @@ window type." (t 4))) -(defface my-powerline-hl-ws '((t (:background "red" :foreground "black" :inherit mode-line))) +(defface my-powerline-hl-ws '((t (:background "blue" :foreground "black" :inherit mode-line))) "My Powerline face 1 based on powerline-active1." :group 'powerline) @@ -107,18 +107,16 @@ window type." (defun my-is-special-buffer () ;; suppose all buffer name started with a star is a special buffer. - (string-match "\*" (buffer-name)) - ;; (or (string-match "*scratch*" (buffer-name)) - ;; (string-match "*Message*" (buffer-name)) - ;; (equal major-mode 'eshell-mode)) - ) - -(defun my-get-buffer-name-face (active-face) - (cond (buffer-read-only - 'sd/buffer-view-active1) - ((and (buffer-modified-p) (not (my-is-special-buffer))) - 'sd/buffer-modified-active1) - (t active-face))) + (string-match "\*" (buffer-name))) + +(defun my-get-buffer-name-face (orignal-face &optional active) + (cond + ((not active) orignal-face) + (buffer-read-only + 'sd/buffer-view-active1) + ((and (buffer-modified-p) (not (my-is-special-buffer))) + 'sd/buffer-modified-active1) + (t orignal-face))) (defun sd/powerline-center-theme_revised-2 () "Setup a mode-line with major and minor modes centered." @@ -139,27 +137,31 @@ window type." (lhs (cond ((or (= window-type 1) (= window-type 2)) (my-build-left-below-mode-line separator-left lface face1)) ((or (= window-type 3) (= window-type 6)) - (list (powerline-buffer-id (my-get-buffer-name-face lface) 'l) - (powerline-raw "%* " (my-get-buffer-name-face lface)) - (funcall separator-left (my-get-buffer-name-face lface) face1 ))) + (list (powerline-buffer-id (my-get-buffer-name-face lface active) 'l) + (unless (my-is-special-buffer) + (powerline-raw "%* " (my-get-buffer-name-face lface active))) + (funcall separator-left (my-get-buffer-name-face lface active) face1 ))) (t nil))) (center (cond ((or (= window-type 1) (= window-type 4)) (list (powerline-raw " " face1) - (funcall separator-right face1 (my-get-buffer-name-face cface)) - (powerline-raw "%*" (my-get-buffer-name-face cface)) - (powerline-buffer-id (my-get-buffer-name-face cface) 'r) - (funcall separator-left (my-get-buffer-name-face cface) face1))) + (funcall separator-right face1 (my-get-buffer-name-face cface active)) + (unless (my-is-special-buffer) + (powerline-raw "%*" (my-get-buffer-name-face cface active))) + (powerline-buffer-id (my-get-buffer-name-face cface active) 'r) + (funcall separator-left (my-get-buffer-name-face cface active) face1))) (t nil))) (rhs (cond ((or (= window-type 1) (= window-type 3)) - (list (funcall separator-right face1 rface) + (list (powerline-raw (format-time-string "%Y-%m-%d %a") face1 'r) + (funcall separator-right face1 rface) (powerline-raw (format-time-string " %I:%M %p ") rface 'r))) ((or (= window-type 2) (= window-type 5)) - (list (funcall separator-right face1 (my-get-buffer-name-face rface)) - (powerline-raw "%*" (my-get-buffer-name-face rface)) - (powerline-buffer-id (my-get-buffer-name-face rface) 'r) - (powerline-raw " " (my-get-buffer-name-face rface)))) + (list (funcall separator-right face1 (my-get-buffer-name-face rface active)) + (unless (my-is-special-buffer) + (powerline-raw "%*" (my-get-buffer-name-face rface active))) + (powerline-buffer-id (my-get-buffer-name-face rface active) 'r) + (powerline-raw " " (my-get-buffer-name-face rface active)))) (t nil)))) (concat (powerline-render lhs)