1 ;;; -*- lexical-binding: t -*-
7 (let ((dir "~/.cache/emacs/eln-cache/"))
8 (unless (file-accessible-directory-p dir)
10 (startup-redirect-eln-cache dir))
12 (let ((dir "~/.cache/emacs/saves/"))
13 (unless (file-accessible-directory-p dir)
15 (setq auto-save-list-file-prefix dir))
17 (let ((dir "~/.cache/emacs/backups/"))
18 (unless (file-accessible-directory-p dir)
20 (setq backup-directory-alist `(("." . ,dir))))
22 (setq save-place-file "~/.cache/emacs/places")
24 (setq project-list-file "~/.cache/emacs/projects")
26 (setq tramp-persistency-file-name "~/.cache/emacs/tramp")
32 (load-file "~/.emacs.d/pastels-on-dark-theme.el")
33 (enable-theme 'pastels-on-dark)
35 (setq default-frame-alist '((vertical-scroll-bars . nil)
38 (background-mode . dark)
40 (font . "monospace 12")))
42 (column-number-mode t)
48 (setq-default show-trailing-whitespace t)
50 ;; 256-color mode in screen terminals
51 (add-to-list 'term-file-aliases
52 '("screen.xterm-256color" . "screen-256color"))
58 (add-hook 'text-mode-hook #'goto-address-mode)
59 (add-hook 'prog-mode-hook #'goto-address-prog-mode)
61 (global-auto-revert-mode 1)
62 (setq global-auto-revert-non-file-buffers t)
63 (setq auto-revert-verbose nil)
65 (setq auto-save-interval 0)
66 (setq auto-save-timeout 30)
68 ;; backup files - keep 10 numbered backups
69 (setq backup-by-copying t)
70 (setq delete-old-versions t)
71 (setq kept-new-versions 10)
72 (setq kept-old-versions 0)
73 (setq vc-make-backup-files t)
74 (setq version-control t)
76 (setq create-lockfiles nil)
78 (delete-selection-mode t)
80 (setq disabled-command-function nil)
82 (setq ediff-window-setup-function 'ediff-setup-windows-plain
83 ediff-split-window-function 'split-window-horizontally)
85 (setq find-file-visit-truename t)
87 (setq help-window-select t)
89 (global-hl-line-mode 1)
91 (setq mouse-1-click-follows-link nil)
93 (setq mouse-wheel-scroll-amount '(3))
94 (setq mouse-wheel-progressive-speed nil)
98 (setq save-interprogram-paste-before-kill t)
102 (setq scroll-conservatively 1)
103 (setq scroll-margin 1)
105 (setq shift-select-mode nil)
107 (setq sentence-end-double-space nil)
109 (setq undo-limit 10000000)
110 (setq undo-strong-limit undo-limit)
112 ;; unique buffer names
113 (setq uniquify-strip-common-suffix t)
114 (setq uniquify-buffer-name-style 'post-forward)
116 (setq vc-follow-symlinks t)
120 (defalias 'yes-or-no-p 'y-or-n-p)
126 (global-set-key (kbd "C-x f") 'project-find-file)
129 (global-set-key (kbd "M-;") 'comment-line)
130 (global-set-key (kbd "C-c d") 'duplicate-dwim)
131 (global-set-key (kbd "M-z") 'zap-up-to-char)
132 (global-set-key (kbd "C-c k") 'kill-whole-line)
135 (global-set-key (kbd "<C-up>") 'windmove-up)
136 (global-set-key (kbd "<C-down>") 'windmove-down)
137 (global-set-key (kbd "<C-left>") 'windmove-left)
138 (global-set-key (kbd "<C-right>") 'windmove-right)
141 (global-set-key (kbd "<f7>") 'flymake-mode)
142 (global-set-key (kbd "<f8>") 'flyspell-mode)
143 (global-set-key (kbd "<f9>") 'whitespace-mode)
144 (global-set-key (kbd "<f10>") 'toggle-truncate-lines)
146 ;; Disable some default bindings from the builtin mouse.el
147 (global-set-key [C-down-mouse-1] nil)
148 (global-set-key [C-down-mouse-2] nil)
149 (global-set-key [C-down-mouse-3] nil)
150 (global-set-key [S-down-mouse-1] nil)
151 (global-set-key [S-down-mouse-2] nil)
152 (global-set-key [S-down-mouse-3] nil)
154 ;; Disable suspend-frame, it's annoying
155 (global-set-key (kbd "C-z") nil)
156 (global-set-key (kbd "C-x C-z") nil)
162 (defvar my/original-load-path load-path)
164 (defun my/reset-load-path ()
165 (setq load-path my/original-load-path))
167 (message "Loading packages...")
168 (load-file "~/.emacs.d/utils/init.el")
169 (load-file "~/.emacs.d/completion/init.el")
170 (load-file "~/.emacs.d/text-edit/init.el")
171 (load-file "~/.emacs.d/file-modes/init.el")
172 (load-file "~/.emacs.d/vc/init.el")
173 (message "Finished loading init.el")