emacs evil 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   '((t (:background "grey11" )))
45   "Powerline face 1."
46   :group 'powerline)
47
48 (defface powerline-inactive22   '((t (:background "grey20" )))
49   "Powerline face 2."
50   :group 'powerline)
51
52
53 ;(defface powerline-active-yel '((t (:background "yellow" :inherit mode-line)))
54 (defface powerline-active-yel '((t (:background "yellow" )))
55   "Powerline face 1."
56   :group 'powerline)
57
58 (defface powerline-active-blue '((t (:background "blue" )))
59   "Powerline face 1."
60   :group 'powerline)
61
62 ;;;---------------- evil powerline
63 ; https://github.com/raugturi/powerline-evil/blob/master/powerline-evil.el
64 ; ;https://github.com/laynor/emacs-conf/blob/master/packages/sm-package-powerline.el
65 ;(defface powerline-evil-base-face '((t (:foreground "white" :inherit mode-line)))
66 (defface powerline-evil-base-face '((t (:foreground "black" :weight bold )))
67   "Base face for powerline evil faces."
68   :group 'powerline)
69
70 (defface powerline-evil-normal-face '((t (:background "green" :inherit powerline-evil-base-face)))
71   "Powerline face for evil NORMAL state."
72   :group 'powerline)
73
74 (defface powerline-evil-insert-face '((t (:background "blue" :inherit powerline-evil-base-face)))
75   "Powerline face for evil INSERT state."
76   :group 'powerline)
77
78 (defface powerline-evil-visual-face '((t (:background "orange" :inherit powerline-evil-base-face)))
79   "Powerline face for evil VISUAL state."
80   :group 'powerline)
81
82 (defface powerline-evil-operator-face   '((t (:background "cyan" :inherit powerline-evil-operator-face)))
83   "Powerline face for evil OPERATOR state."
84   :group 'powerline)
85
86 (defface powerline-evil-replace-face    '((t (:background "red" :inherit powerline-evil-base-face)))
87   "Powerline face for evil REPLACE state."
88   :group 'powerline)
89
90 (defface powerline-evil-motion-face '((t (:background "magenta" :inherit powerline-evil-base-face)))
91   "Powerline face for evil MOTION state."
92   :group 'powerline)
93
94 (defface powerline-evil-emacs-face  '((t (:background "violet" :inherit powerline-evil-base-face)))
95   "Powerline face for evil EMACS state."
96   :group 'powerline)
97
98 ;;(defun powerline-evil-face (active)
99 ;;  "Function to select appropriate face based on `evil-state'."
100 ;;  (let* ((face (intern (concat "powerline-evil-" (symbol-name evil-state) "-face"))))
101 ;;    (if (facep face) face nil)))
102 ;;
103
104   (defun powerline-evil-face (active)
105     (let ((face (intern (concat "powerline-evil-" (symbol-name evil-state) "-face"))))
106       (cond ((and active (facep face))
107              face)
108             (active 'powerline-active2)
109             (t 'powerline-inactive2))))
110
111   (defpowerline powerline-evil-tag
112     (concat " " (replace-regexp-in-string "[<> ]" "" (eval (evil-state-property evil-state :tag))) " "))
113
114
115
116
117
118 ;;
119 ;;http://emacser.com/mode-line.htm
120 (defun get-lines-4-mode-line ()
121   (let ((lines (count-lines (point-min) (point-max))))
122     (concat (propertize
123              (format "%d" lines)
124              'mouse-face 'mode-line-highlight
125              'face 'mode-line-lines-face
126              'help-echo (format "%d lines" lines)) " ")))
127
128
129
130 (defun powerline-simpler-vc-mode (s)
131   (if s
132       (replace-regexp-in-string "Git:" "" s)
133     s))
134
135 (defun powerline-simpler-minor-display (s)
136   (replace-regexp-in-string
137    (concat " "
138            (mapconcat 'identity '("Undo-Tree" "GitGutter" "Projectile"
139                                   "Abbrev" "ColorIds" "MRev" "ElDoc" "Paredit"
140                                   "+1" "+2" "FlyC" "Fly" ;; ":1/0"
141                                   "Fill" "AC" "FIC") "\\|")) "" s))
142
143 (defun powerline-format-default-directory (s)
144   (if s
145     (replace-regexp-in-string "/Users/peli3/"  "~/" s)
146     s))
147
148 (defun powerline-evil-tag-new ()
149   (concat (replace-regexp-in-string "[<>]" "" (powerline-evil-tag)) " ")
150   )
151
152 (defun powerline-ha-theme ()
153   "A powerline theme that removes many minor-modes that don't serve much purpose on the mode-line."
154   (interactive)
155   (setq-default mode-line-format
156                 '("%e"
157                   (:eval
158                    (let*
159                        ((active
160                          (powerline-selected-window-active))
161                         (mode-line
162                          (if active 'powerline-active00 'powerline-inactive00))
163                         (face1
164                          (if active 'powerline-active11 'powerline-inactive11))
165                         (face2
166                          (if active 'powerline-active22 'powerline-inactive22))
167                         (face-yel
168                          (if active 'powerline-active-yel 'powerline-inactive22))
169                         (face-blue
170                          (if active 'powerline-active-blue 'powerline-inactive22))
171                          (pl-evil-face (ignore-errors (powerline-evil-face active)))
172                         (separator-left
173                          (intern
174                           (format "powerline-%s-%s" powerline-default-separator
175                                   (car powerline-default-separator-dir))))
176                         (separator-right
177                          (intern
178                           (format "powerline-%s-%s" powerline-default-separator
179                                   (cdr powerline-default-separator-dir))))
180                         (lhs
181                             (list
182 ;;                                (let ((evil-face (powerline-evil-face)))
183 ;;                                    (if evil-mode
184 ;;                                            (powerline-raw (powerline-evil-tag) evil-face)
185 ;;                                    )
186 ;;
187 ;;                                )
188                                 (powerline-raw (powerline-evil-tag) pl-evil-face )
189                                 (and evil-mode (funcall separator-left pl-evil-face face-yel))
190 ;;                                (powerline-raw (powerline-evil-tag) (powerline-evil-face))
191 ;;                                (funcall separator-left (powerline-evil-face) face-yel)
192
193                                 (powerline-raw "%*" face-yel 'l)
194                                 (powerline-buffer-id face-yel 'l)
195                                 (powerline-raw " " face-yel)
196                                 (funcall separator-left face-yel face-blue )
197                                                 (powerline-raw " " face-blue)
198                                 (powerline-major-mode face-blue 'r)
199                                 (funcall separator-left face-blue mode-line)
200                                 (powerline-narrow mode-line 'l)
201 ;                                (powerline-vc mode-line 'r)
202                                 (powerline-simpler-vc-mode (powerline-vc mode-line 'r))
203                                 (funcall separator-left mode-line face1)))
204 ;                                (powerline-simpler-vc-mode (powerline-vc face2))))
205                         
206                         (rhs
207                             (list
208                                 (funcall separator-right face1 mode-line)
209                                 (powerline-raw (concat "%3c, %l/" (format "%d" (count-lines (point-min) (point-max))) " %4p ") mode-line)
210                                                 (funcall separator-right mode-line face-blue)
211                                                 (powerline-raw " [" face-blue)
212                                                 (powerline-raw (powerline-format-default-directory default-directory) face-blue )
213                                                 (powerline-raw "] " face-blue)
214                                                 (funcall separator-right face-blue face1)
215                                             (powerline-raw (format-time-string " %m-%d") face1 'r)
216                                 (funcall separator-right face1 face-yel)
217                                             (powerline-raw (format-time-string " %I:%M %p %a ") face-yel 'r)))
218                         (center
219                             (list
220                                 (powerline-raw " " face1)
221                                 (funcall separator-left face1 face2)
222                                 (when
223                                     (boundp 'erc-modified-channels-object)
224                                 (powerline-raw erc-modified-channels-object face2 'l))
225                                 (powerline-major-mode face2 'l)
226                                 (powerline-process face2)
227                                 (powerline-raw " :" face2)
228
229                                 (powerline-simpler-minor-display (powerline-minor-modes face2 'l))
230
231                                 (powerline-raw " " face2)
232                                 (funcall separator-right face2 face1))))
233
234
235                      (concat
236                       (powerline-render lhs)
237                       (powerline-fill face1
238                                       (powerline-width rhs))
239                       (powerline-render rhs))
240                      ); let
241                    ); :eval
242                   ); '(
243                 ); setq
244   ); defun
245
246
247 (powerline-ha-theme)
248
249 (provide 'init-color-theme)
250
251
252
253 ;; TODO
254 ;; 1. change color when buffer is modified
255 ;; 2. 
256 ;; show date and time in the right below minibuffer
257