emacs: color theme powerline-evil todo
[dotfiles.git] / emacs.d / init.el
1 ;;;(if (eq system-type 'darwin)
2 ;;;  (setenv "PATH"
3 ;;;)   (concat (getenv "path") ":/usr/local/bin:~/bin/")
4 ;;;  )
5
6
7 (setenv "PATH" (concat (getenv "PATH") ":/usr/local/bin"))
8 (setq exec-path (append exec-path '("/usr/local/bin")))
9
10 (setq debug-on-error t)
11
12 (scroll-bar-mode -1)
13 (tool-bar-mode -1)
14 ;(menu-bar-mode -1)
15 (add-to-list 'default-frame-alist '(width  . 120))
16 (add-to-list 'default-frame-alist '(height . 40))
17 ;(add-to-list 'default-frame-alist '(font . "Source Code Pro for Powerline-12:weight:light" ))
18 (add-to-list 'default-frame-alist '(font . "Source Code Pro for Powerline-12" ))
19 (setq inhibit-startup-message t)
20
21 (put 'set-goal-column 'disabled nil)
22 (setq vc-follow-symlinks t)
23 (setq visible-bell 1)
24 (setq ring-bell-function 'ignore)
25 (setq resize-mini-windows t)
26 (blink-cursor-mode 0)
27
28
29 (add-to-list 'auto-mode-alist '("emacs\\'" . emacs-lisp-mode))
30
31
32
33 ;;; Set symbol for the border
34 (set-display-table-slot standard-display-table
35                         'vertical-border 
36                         (make-glyph-code ?┃))
37
38 (set-face-attribute 'vertical-border nil  :foreground "gray")
39
40
41 (add-to-list 'load-path "~/.emacs.d/config")
42 (require 'my-packages)
43
44 ;; elscreen should be placed begin of https://github.com/knu/elscreen/issues/6
45 ;(elscreen-start)
46 ;(require 'init-elscreen)
47 ;(require 'elscreen)
48 ;(custom-set-faces
49 ; '(elscreen-tab-current-screen-face ((t (:background "Yellow" :foreground "black"))))
50 ; '(elscreen-tab-other-screen-face ((t (:background "gray22" :foreground "black")))))
51
52
53 (require 'init-color-theme)
54
55
56 ;---------------------------------------------------------------------------------------
57 ;; Ido
58 ;;
59 (require 'ido-vertical-mode)
60 (ido-vertical-mode 1)
61 (require 'flx-ido)
62 (ido-mode 1)
63 (ido-everywhere 1)
64 (flx-ido-mode 1)
65 (setq ido-use-faces nil)
66
67 (setq org-completion-use-ido t)
68 (setq magit-completing-read-function 'magit-ido-completing-read)
69
70 (require 'ido-ubiquitous)
71 (ido-ubiquitous-mode 1)
72
73 ;; smex
74 (require 'smex) 
75 (global-set-key (kbd "M-x") 'smex)
76 (global-set-key (kbd "M-X") 'smex-major-mode-commands)
77
78 ;;---------------------------------------------------------------------------------------
79 ;; Magit
80 ;;
81 (require 'magit)
82 (setq magit-last-seen-setup-instructions "1.4.0")
83 (global-set-key (kbd "C-x g") 'magit-status)
84 ;(setq magit-auto-revert-mode nil)
85
86
87 (require 'init-evil)
88
89
90
91 ;;---------------------------------------------------------------------------------------
92 ;; Fiplr
93 ;;
94 (setq fiplr-root-markers '(".git" ".svn" "*.DS_Store"))
95 (setq fiplr-ignored-globs '((directories (".git" ".svn"))
96                             (files ("*.jpg" "*.png" "*.zip" "*~" "*.o" ".obj" "*.swp" "*.hg" ".pyc" ".*" ))))
97
98 (global-set-key (kbd "C-x f") 'fiplr-find-file)
99
100
101 ;;---------------------------------------------------------------------------------------
102 ;; sr-speedbar
103 ;;
104 ;(require 'sr-speedbar)
105 ;(setq speedbar-use-images nil)
106 ;(setq speedbar-show-unknown-files t)
107
108
109
110
111 (require 'projectile)
112 (projectile-global-mode)
113 (setq projectile-enable-caching t)
114 (require 'projectile-speedbar)
115
116 ;(require 'cc-mode)
117 ;(require 'ecb)
118
119 ;(setq ecb-layout-name "leftright3")
120
121 ;; gnu global support
122 ;(require 'semantic/db)
123 ;(global-semanticdb-minor-mode 1)
124
125 (require 'init-ggtags)
126
127
128 (setq scroll-margin 5)
129 (setq scroll-conservatively 10000)
130 (show-paren-mode t)
131
132
133 (require 'init-c-cpp)
134
135 (require 'recentf)
136 (recentf-mode 1)
137 (setq recentf-max-menu-items 100)
138
139
140 (require 'recentf-ext)
141
142 (require 'init-key-binding)
143
144 (winner-mode 1)
145
146 (global-set-key (kbd "C-c C-l") 'winner-redo)
147 (global-set-key (kbd "C-c C-h") 'winner-undo)
148
149
150
151 ;(require 'minibuffer-tray)
152 ;(require 'eyebrowse)
153 ;(eyebrowse-mode t)
154
155
156
157 ;;(require 'minibuffer-line)
158 ;(minibuffer-line-mode 1)
159
160
161 ;(add-to-list 'load-path "~/.emacs.d/vendor")
162 ;(require 'minibuffer-tray)
163 ;(minibuffer-tray-mode 1)
164 ;(require 'xwem-minibuffer)
165
166 ; (run-at-time
167 ;  nil 30
168 ;  (lambda ()
169 ;    (with-current-buffer " *Minibuf-0*"
170 ;      (erase-buffer)
171 ;      (dotimes (spaces (- (frame-width) 20))
172 ;        (insert " "))
173 ;      (insert (format-time-string "%m-%d  %I:%M %p %a ")))))
174
175
176
177
178 ;;; set font size of minibuffer
179 ;;;; http://stackoverflow.com/questions/7869429/altering-the-font-size-for-the-emacs-minibuffer-separately-from-default-emacs
180 (add-hook 'minibuffer-setup-hook 'my-minibuffer-setup)
181 (defun my-minibuffer-setup ()
182        (set (make-local-variable 'face-remapping-alist)
183           '((default :height 120))))
184
185
186
187 (add-hook 'minibuffer-setup-hook
188           (lambda ()
189             (make-local-variable 'face-remapping-alist)
190             (add-to-list 'face-remapping-alist '(default (:background "green")))))
191
192
193
194
195 (require 'evil-escape)
196 ;(setq-default evil-escape-delay 0.2)   
197 ;(setq evil-escape-excluded-major-modes '(dired-mode))
198 ;(setq-default evil-escape-key-sequence "jj")
199 ;(evil-escape-mode 1)
200
201
202 ;; ---------------
203 ;; recent file
204 (require 'recentf)
205 (recentf-mode)
206 ;(setq recentf-max-menu-items 100)
207
208 ;; http://www.emacswiki.org/emacs/RecentFiles
209 (defun recentf-ido-find-file ()
210   "Find a recent file using Ido."
211   (interactive)
212   (let ((file (ido-completing-read "Choose recent file: " recentf-list nil t)))
213     (when file
214       (find-file file))))
215
216
217
218 ;; http://stackoverflow.com/questions/11484225/fix-an-auto-complete-mode-and-linum-mode-annoyance
219 (ac-linum-workaround)
220
221
222 ;; ---------------------------------
223 ;; linum-relative
224
225 (require 'linum-relative)
226
227 (custom-set-variables
228  '(fringe-mode (quote (4 . 0)) nil (fringe)))
229
230 ;; maybe better to fix the size of line number rather scaled 0.8
231 ;; https://github.com/howardabrams/dot-files/blob/master/emacs.org
232 (custom-set-faces
233  '(highlight-current-line-face ((t (:background "gray22"))))
234  '(linum ((t (:background "#000000" :foreground "gray40" :height 0.8 :slant italic :weigth light))))
235  '(linum-relative-current-face ((t (:inherit linum :foreground "Yellow" :weight light :height 0.8)))))
236
237
238 ;; enable linum-relative in programming mode
239 ;https://github.com/howardabrams/dot-files/blob/master/emacs.org
240 (add-hook 'prog-mode-hook 'linum-mode)
241
242
243 ;; hight current line
244 (require 'highlight-current-line)
245 (highlight-current-line-on t)
246
247
248
249 ;(defun pl-fringe-mode ()
250 ;  "jfoewoif"
251 ;  (if linum-mode
252 ;      (fringe-mode '(4 . 0))
253 ;    (fringe-mode '(0 . 0))))
254
255
256 ;(add-hook 'eshell-mode-hook 'pl-fringe-mode)
257 ;(add-hook 'prog-mode-hook 'pl-fringe-mode)
258
259
260
261
262
263 (require 'workgroups2)
264
265
266 (setq wg-prefix-key (kbd "C-c z"))
267 (setq wg-session-file "~/.emacs.d/.emacs_workgroups")
268 (setq wg-mode-line-display-on t)          ; Default: (not (featurep 'powerline))
269 (setq wg-flag-modified t)                 ; Display modified flags as well
270 (setq wg-mode-line-decor-left-brace "["
271       wg-mode-line-decor-right-brace "]"  ; how to surround it
272       wg-mode-line-decor-divider ":")
273 ;(workgroups-mode 1)
274