175 lines
5.7 KiB
EmacsLisp
175 lines
5.7 KiB
EmacsLisp
;; -*- lexical-binding: t -*-
|
|
|
|
;;;;
|
|
;; Packages
|
|
;;;;
|
|
|
|
;; Define package repositories
|
|
(require 'package)
|
|
(add-to-list 'package-archives
|
|
'("marmalade" . "http://marmalade-repo.org/packages/") t)
|
|
(add-to-list 'package-archives
|
|
'("tromey" . "http://tromey.com/elpa/") t)
|
|
(add-to-list 'package-archives
|
|
'("melpa" . "http://melpa.milkbox.net/packages/") t)
|
|
|
|
|
|
;; Load and activate emacs packages. Do this first so that the
|
|
;; packages are loaded before you start trying to modify them.
|
|
;; This also sets the load path.
|
|
(package-initialize)
|
|
|
|
;; Download the ELPA archive description if needed.
|
|
;; This informs Emacs about the latest versions of all packages, and
|
|
;; makes them available for download.
|
|
(when (not package-archive-contents)
|
|
(package-refresh-contents))
|
|
|
|
;; The packages you want installed. You can also install these
|
|
;; manually with M-x package-install
|
|
;; Add in your own as you wish:
|
|
(defvar my-packages
|
|
'(
|
|
|
|
;; Enhances M-x to allow easier execution of commands. Provides
|
|
;; a filterable list of possible commands in the minibuffer
|
|
;; http://www.emacswiki.org/emacs/Smex
|
|
smex
|
|
|
|
))
|
|
|
|
;; On OS X, an Emacs instance started from the graphical user
|
|
;; interface will have a different environment than a shell in a
|
|
;; terminal window, because OS X does not run a shell during the
|
|
;; login. Obviously this will lead to unexpected results when
|
|
;; calling external utilities like make from Emacs.
|
|
;; This library works around this problem by copying important
|
|
;; environment variables from the user's shell.
|
|
;; https://github.com/purcell/exec-path-from-shell
|
|
(if (eq system-type 'darwin)
|
|
(add-to-list 'my-packages 'exec-path-from-shell))
|
|
|
|
(dolist (p my-packages)
|
|
(when (not (package-installed-p p))
|
|
(package-install p)))
|
|
|
|
|
|
;; Place downloaded elisp files in ~/.emacs.d/vendor. You'll then be able
|
|
;; to load them.
|
|
;;
|
|
;; For example, if you download yaml-mode.el to ~/.emacs.d/vendor,
|
|
;; then you can add the following code to this file:
|
|
;;
|
|
;; (require 'yaml-mode)
|
|
;; (add-to-list 'auto-mode-alist '("\\.yml$" . yaml-mode))
|
|
;;
|
|
;; Adding this code will make Emacs enter yaml mode whenever you open
|
|
;; a .yml file
|
|
(add-to-list 'load-path "~/.emacs.d/vendor")
|
|
|
|
|
|
;;;;
|
|
;; Customization
|
|
;;;;
|
|
|
|
;; Add a directory to our load path so that when you `load` things
|
|
;; below, Emacs knows where to look for the corresponding file.
|
|
(add-to-list 'load-path "~/.emacs.d/customizations")
|
|
|
|
;; These customizations make it easier for you to navigate files,
|
|
;; switch buffers, and choose options from the minibuffer.
|
|
(load "navigation.el")
|
|
|
|
;; These customizations change the way emacs looks and disable/enable
|
|
;; some user interface elements
|
|
(load "ui.el")
|
|
|
|
;; These customizations make editing a bit nicer.
|
|
(load "editing.el")
|
|
|
|
;; Hard-to-categorize customizations
|
|
(load "misc.el")
|
|
|
|
(custom-set-variables
|
|
;; custom-set-variables was added by Custom.
|
|
;; If you edit it by hand, you could mess it up, so be careful.
|
|
;; Your init file should contain only one such instance.
|
|
;; If there is more than one, they won't work right.
|
|
'(ansi-color-faces-vector
|
|
[default bold shadow italic underline bold bold-italic bold])
|
|
'(ansi-color-names-vector
|
|
(vector "#ffffff" "#bf616a" "#B4EB89" "#ebcb8b" "#89AAEB" "#C189EB" "#89EBCA" "#232830"))
|
|
'(blink-cursor-mode nil)
|
|
'(coffee-tab-width 2)
|
|
'(custom-safe-themes
|
|
(quote
|
|
("ebc83be4a38da627b90598422a8f734e64555ce1c6a485d91b1fd15e05bb3ff8" "118f0145d56cc963031a2492b7454e3811e63c6ee9d75dad115bf76a774ab1ff" "d8f76414f8f2dcb045a37eb155bfaa2e1d17b6573ed43fb1d18b936febc7bbc2" "05c3bc4eb1219953a4f182e10de1f7466d28987f48d647c01f1f0037ff35ab9a" "e97dbbb2b1c42b8588e16523824bc0cb3a21b91eefd6502879cf5baa1fa32e10" "2305decca2d6ea63a408edd4701edf5f4f5e19312114c9d1e1d5ffe3112cde58" default)))
|
|
'(fci-rule-color "#343d46")
|
|
'(org-startup-truncated nil)
|
|
'(show-paren-mode t)
|
|
'(tool-bar-mode nil)
|
|
'(vc-annotate-background nil)
|
|
'(vc-annotate-color-map
|
|
(quote
|
|
((20 . "#bf616a")
|
|
(40 . "#DCA432")
|
|
(60 . "#ebcb8b")
|
|
(80 . "#B4EB89")
|
|
(100 . "#89EBCA")
|
|
(120 . "#89AAEB")
|
|
(140 . "#C189EB")
|
|
(160 . "#bf616a")
|
|
(180 . "#DCA432")
|
|
(200 . "#ebcb8b")
|
|
(220 . "#B4EB89")
|
|
(240 . "#89EBCA")
|
|
(260 . "#89AAEB")
|
|
(280 . "#C189EB")
|
|
(300 . "#bf616a")
|
|
(320 . "#DCA432")
|
|
(340 . "#ebcb8b")
|
|
(360 . "#B4EB89"))))
|
|
'(vc-annotate-very-old-color nil))
|
|
|
|
(require 'visual-fill-column)
|
|
(require 'linum-off)
|
|
(require 'f)
|
|
|
|
|
|
;; enable perspective mode
|
|
(persp-mode)
|
|
|
|
;; "A hook that's run after `persp-switch'.
|
|
;; Run with the newly created perspective as `persp-curr'.")
|
|
(add-hook 'persp-switch-hook
|
|
(lambda()
|
|
;; switche themes here...
|
|
))
|
|
|
|
;; loads workspace on launch
|
|
;; https://github.com/nex3/perspective-el/pull/49
|
|
(defun save-perspective-configuration ()
|
|
"Save the current perspective windows configuration"
|
|
(interactive)
|
|
(if persp-curr
|
|
(with-temp-file (format "~/.emacs.d/perspectives/%s" (persp-name persp-curr))
|
|
(insert (prin1-to-string (current-window-configuration-printable))))))
|
|
|
|
(defun load-perspective-configuration ()
|
|
"Load the current perspective windows configuration"
|
|
(interactive)
|
|
(let ((perspective-file (format "~/.emacs.d/perspectives/%s" (persp-name persp-curr))))
|
|
(if (f-exists? perspective-file)
|
|
(restore-window-configuration (read (f-read perspective-file))))))
|
|
|
|
(add-hook 'persp-before-switch-hook 'save-perspective-configuration)
|
|
(add-hook 'persp-created-hook 'load-perspective-configuration)
|
|
|
|
(load-perspective-configuration)
|
|
|
|
|
|
(persp-new "main")
|
|
(persp-new "config")
|
|
(persp-new "journal")
|
|
(persp-new "vimvalley")
|