+(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)))
+