Created
May 1, 2017 01:37
-
-
Save pragdave/4adb3ba2a87b250f2e87e66ca261104c to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
;; Mode line setup | |
(setq-default | |
mode-line-format | |
'(; Position, including warning for 80 columns | |
(:propertize "%4l" face mode-line-position-face) | |
":" | |
(:eval (propertize "%c" 'face | |
(if (>= (current-column) 80) | |
'mode-line-80col-face | |
'mode-line-position-face))) | |
; emacsclient [default -- keep?] | |
mode-line-client | |
" " | |
; read-only or modified status | |
(:eval | |
(cond (buffer-read-only | |
(propertize " ⃠ " 'face 'mode-line-read-only-face)) | |
((buffer-modified-p) | |
(propertize " ✿ " 'face 'mode-line-modified-face)) | |
(t " "))) | |
" " | |
; directory and buffer/file name | |
(:propertize (:eval (shorten-directory default-directory 10)) | |
face mode-line-folder-face) | |
(:propertize "%b" | |
face mode-line-filename-face) | |
; narrow [default -- keep?] | |
" %n " | |
; mode indicators: vc, recursive edit, major mode, minor modes, process, global | |
(vc-mode vc-mode) | |
" %[" | |
mode-name | |
"%] " | |
; (:eval (propertize (format-mode-line minor-mode-alist) | |
; 'face 'mode-line-minor-mode-face)) | |
(:propertize mode-line-process | |
face mode-line-process-face) | |
(global-mode-string global-mode-string) | |
" " | |
; nyan-mode uses nyan cat as an alternative to %p | |
; (:eval (when nyan-mode (list (nyan-create)))) | |
)) | |
;; Helper function | |
(defun shorten-directory (dir max-length) | |
"Show up to `max-length' characters of a directory name `dir'." | |
(let ((path (reverse (split-string (abbreviate-file-name dir) "/"))) | |
(output "")) | |
(when (and path (equal "" (car path))) | |
(setq path (cdr path))) | |
(while (and path (< (length output) (- max-length 4))) | |
(setq output (concat (car path) "/" output)) | |
(setq path (cdr path))) | |
(when path | |
(setq output (concat ".../" output))) | |
output)) | |
;; Extra mode line faces | |
(make-face 'mode-line-read-only-face) | |
(make-face 'mode-line-modified-face) | |
(make-face 'mode-line-folder-face) | |
(make-face 'mode-line-filename-face) | |
(make-face 'mode-line-position-face) | |
(make-face 'mode-line-mode-face) | |
(make-face 'mode-line-minor-mode-face) | |
(make-face 'mode-line-process-face) | |
(make-face 'mode-line-80col-face) | |
(set-face-attribute 'mode-line nil | |
:family "Muli" | |
:foreground "gray60" | |
:background "gray20" | |
:inverse-video nil | |
:box '(:line-width 6 :color "gray20" :style nil)) | |
(set-face-attribute 'mode-line-inactive nil | |
:foreground "#687078" | |
:background "#485050" | |
:inverse-video nil | |
:box '(:line-width 6 :color "#485050" :style nil)) | |
(set-face-attribute 'mode-line-read-only-face nil | |
:inherit 'mode-line-face | |
:foreground "#4271ae" | |
:box '(:line-width 2 :color "#4271ae")) | |
(set-face-attribute 'mode-line-modified-face nil | |
:inherit 'mode-line-face | |
:foreground "#c82829" | |
:box '(:line-width 2 :color "#c82829")) | |
(set-face-attribute 'mode-line-folder-face nil | |
:inherit 'mode-line-face | |
:foreground "gray60") | |
(set-face-attribute 'mode-line-filename-face nil | |
:inherit 'mode-line-face | |
:foreground "#eab700" | |
:weight 'bold) | |
(set-face-attribute 'mode-line-position-face nil | |
:inherit 'mode-line-face | |
:family "Menlo" :height 100) | |
(set-face-attribute 'mode-line-mode-face nil | |
:inherit 'mode-line-face | |
:foreground "gray80") | |
(set-face-attribute 'mode-line-minor-mode-face nil | |
:inherit 'mode-line-mode-face | |
:foreground "gray40" | |
:height 80) | |
(set-face-attribute 'mode-line-process-face nil | |
:inherit 'mode-line-face | |
:foreground "#718c00") | |
(set-face-attribute 'mode-line-80col-face nil | |
:inherit 'mode-line-position-face | |
:foreground "black" :background "#eab700") |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment