emacs: add evil powerline mode
[dotfiles.git] / emacs.d / config / init-color-theme.el
1
2
3 ;(setq display-time-day-and-date t)
4 ;(display-time-mode t)
5
6
7 (setq ns-use-srgb-colorspace nil)
8
9 (require 'color-theme)
10
11 (load-theme 'cyberpunk t)
12
13 (require 'evil)
14 (require 'powerline)
15 (require 'powerline-evil)
16
17
18
19 ;;; this variable should equal as height in mode-line
20 (custom-set-variables
21  '(powerline-text-scale-factor 0.85))
22
23 (custom-set-faces
24  '(mode-line ((t (:foreground "#030303" :background "#bdbdbd" :box nil :height 0.8 ))))
25  '(mode-line-inactive ((t (:foreground "#f9f9f9" :background "#666666" :box nil :height 0.8)))))
26
27
28 (defface powerline-active00 '((t (:foreground "#030303" :background "#bdbdbd" :box nil )))
29   "Powerline face 1."
30   :group 'powerline)
31
32 (defface powerline-inactive00 '((t (:foreground "#f9f9f9" :background "#666666" :box nil )))
33   "Powerline face 1."
34   :group 'powerline)
35
36 (defface powerline-active11 '((t (:background "grey22" )))
37   "Powerline face 1."
38   :group 'powerline)
39
40 (defface powerline-active22 '((t (:background "grey40" )))
41   "Powerline face 2."
42   :group 'powerline)
43
44 (defface powerline-inactive11
45   '((t (:background "grey11" )))
46   "Powerline face 1."
47   :group 'powerline)
48
49 (defface powerline-inactive22
50   '((t (:background "grey20" )))
51   "Powerline face 2."
52   :group 'powerline)
53
54
55
56
57
58
59 ;(defface powerline-active-yel '((t (:background "yellow" :inherit mode-line)))
60 (defface powerline-active-yel '((t (:background "yellow" )))
61   "Powerline face 1."
62   :group 'powerline)
63
64 (defface powerline-active-blue '((t (:background "blue" )))
65   "Powerline face 1."
66   :group 'powerline)
67
68
69
70 ;;
71 ;;http://emacser.com/mode-line.htm
72 (defun get-lines-4-mode-line ()
73   (let ((lines (count-lines (point-min) (point-max))))
74     (concat (propertize
75              (format "%d" lines)
76              'mouse-face 'mode-line-highlight
77              'face 'mode-line-lines-face
78              'help-echo (format "%d lines" lines)) " ")))
79
80
81
82 (defun powerline-simpler-vc-mode (s)
83   (if s
84       (replace-regexp-in-string "Git:" "" s)
85     s))
86
87 (defun powerline-simpler-minor-display (s)
88   (replace-regexp-in-string
89    (concat " "
90            (mapconcat 'identity '("Undo-Tree" "GitGutter" "Projectile"
91                                   "Abbrev" "ColorIds" "MRev" "ElDoc" "Paredit"
92                                   "+1" "+2" "FlyC" "Fly" ;; ":1/0"
93                                   "Fill" "AC" "FIC") "\\|")) "" s))
94
95 (defun powerline-format-default-directory (s)
96   (if s
97     (replace-regexp-in-string "/Users/peli3/"  "~/" s)
98     s))
99
100 (defun powerline-ha-theme ()
101   "A powerline theme that removes many minor-modes that don't serve much purpose on the mode-line."
102   (interactive)
103   (setq-default mode-line-format
104                 '("%e"
105                   (:eval
106                    (let*
107                        ((active
108                          (powerline-selected-window-active))
109                         (mode-line
110                          (if active 'powerline-active00 'powerline-inactive00))
111                         (face1
112                          (if active 'powerline-active11 'powerline-inactive11))
113                         (face2
114                          (if active 'powerline-active22 'powerline-inactive22))
115                         (face-yel
116                          (if active 'powerline-active-yel 'powerline-inactive22))
117                         (face-blue
118                          (if active 'powerline-active-blue 'powerline-inactive22))
119                         (separator-left
120                          (intern
121                           (format "powerline-%s-%s" powerline-default-separator
122                                   (car powerline-default-separator-dir))))
123                         (separator-right
124                          (intern
125                           (format "powerline-%s-%s" powerline-default-separator
126                                   (cdr powerline-default-separator-dir))))
127                         (lhs
128                             (list
129                                 (let ((evil-face (powerline-evil-face)))
130                                     (if evil-mode
131 ;                                        (progn 
132                                             (powerline-raw (powerline-evil-tag) evil-face)
133 ;;                                            )
134                                         )
135                                     )
136                                 (funcall separator-left (powerline-evil-face) face-yel)
137
138                                 (powerline-raw "%*" face-yel 'l)
139                                 (powerline-buffer-id face-yel 'l)
140                                 (powerline-raw " " face-yel)
141                                 (funcall separator-left face-yel face-blue )
142                                                 (powerline-raw " " face-blue)
143                                 (powerline-major-mode face-blue 'r)
144                                 (funcall separator-left face-blue mode-line)
145                                 (powerline-narrow mode-line 'l)
146 ;                                (powerline-vc mode-line 'r)
147                                 (powerline-simpler-vc-mode (powerline-vc mode-line 'r))
148                                 (funcall separator-left mode-line face1)))
149 ;                                (powerline-simpler-vc-mode (powerline-vc face2))))
150                         
151                         (rhs
152                             (list
153                                 (funcall separator-right face1 mode-line)
154                                 (powerline-raw (concat "%3c, %l/" (format "%d" (count-lines (point-min) (point-max))) " %4p ") mode-line)
155                                                 (funcall separator-right mode-line face-blue)
156                                                 (powerline-raw " [" face-blue)
157                                                 (powerline-raw (powerline-format-default-directory default-directory) face-blue )
158                                                 (powerline-raw "] " face-blue)
159                                                 (funcall separator-right face-blue face1)
160                                             (powerline-raw (format-time-string " %m-%d") face1 'r)
161                                 (funcall separator-right face1 face-yel)
162                                             (powerline-raw (format-time-string " %I:%M %p %a ") face-yel 'r)))
163                         (center
164                             (list
165                                 (powerline-raw " " face1)
166                                 (funcall separator-left face1 face2)
167                                 (when
168                                     (boundp 'erc-modified-channels-object)
169                                 (powerline-raw erc-modified-channels-object face2 'l))
170                                 (powerline-major-mode face2 'l)
171                                 (powerline-process face2)
172                                 (powerline-raw " :" face2)
173
174                                 (powerline-simpler-minor-display (powerline-minor-modes face2 'l))
175
176                                 (powerline-raw " " face2)
177                                 (funcall separator-right face2 face1))))
178
179
180                      (concat
181                       (powerline-render lhs)
182                       (powerline-fill face1
183                                       (powerline-width rhs))
184                       (powerline-render rhs))
185                      ); let
186                    ); :eval
187                   ); '(
188                 ); setq
189   ); defun
190
191
192 (powerline-ha-theme)
193
194 (provide 'init-color-theme)
195
196
197 ;; TODO
198 ;; 1. change color when buffer is modified
199 ;; 2.