merge to top
[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  ;; custom-set-variables was added by Custom.
229  ;; If you edit it by hand, you could mess it up, so be careful.
230  ;; Your init file should contain only one such instance.
231  ;; If there is more than one, they won't work right.
232  '(fringe-mode (quote (4 . 0)) nil (fringe))
233  '(ggtags-split-window-function (quote split-window-vertically))
234  '(org-agenda-files (quote ("~/temp/org-note.org")))
235  '(powerline-text-scale-factor 0.85))
236
237 ;; maybe better to fix the size of line number rather scaled 0.8
238 ;; https://github.com/howardabrams/dot-files/blob/master/emacs.org
239 (custom-set-faces
240  ;; custom-set-faces was added by Custom.
241  ;; If you edit it by hand, you could mess it up, so be careful.
242  ;; Your init file should contain only one such instance.
243  ;; If there is more than one, they won't work right.
244  '(highlight-current-line-face ((t (:background "gray22"))))
245  '(linum ((t (:background "#000000" :foreground "gray40" :height 0.8 :slant italic :weigth light))))
246  '(linum-relative-current-face ((t (:inherit linum :foreground "Yellow" :weight light :height 0.8))))
247  '(mode-line ((t (:foreground "#030303" :background "#bdbdbd" :box nil :family "Source Code Pro for Powerline" :height 100))))
248  '(mode-line-inactive ((t (:foreground "#f9f9f9" :background "#666666" :box nil :family "Source Code Pro for Powerline" :height 100)))))
249
250
251 ;; enable linum-relative in programming mode
252 ;https://github.com/howardabrams/dot-files/blob/master/emacs.org
253 (add-hook 'prog-mode-hook 'linum-mode)
254
255
256 ;; hight current line
257 (require 'highlight-current-line)
258 (highlight-current-line-on t)
259
260
261
262 ;(defun pl-fringe-mode ()
263 ;  "jfoewoif"
264 ;  (if linum-mode
265 ;      (fringe-mode '(4 . 0))
266 ;    (fringe-mode '(0 . 0))))
267
268
269 ;(add-hook 'eshell-mode-hook 'pl-fringe-mode)
270 ;(add-hook 'prog-mode-hook 'pl-fringe-mode)
271
272
273
274
275
276 (require 'workgroups2)
277
278
279 (setq wg-prefix-key (kbd "C-c z"))
280 (setq wg-session-file "~/.emacs.d/.emacs_workgroups")
281 (setq wg-mode-line-display-on t)          ; Default: (not (featurep 'powerline))
282 (setq wg-flag-modified t)                 ; Display modified flags as well
283 (setq wg-mode-line-decor-left-brace "["
284       wg-mode-line-decor-right-brace "]"  ; how to surround it
285       wg-mode-line-decor-divider ":")
286 ;(workgroups-mode 1)
287