Permalink
Cannot retrieve contributors at this time
Fetching contributors…
| ;; Time-stamp: <2015-10-21 10:05:48 kmodi> | |
| ;; Author: Kaushal Modi | |
| ;; Global variables | |
| ;; https://www.reddit.com/r/emacs/comments/3kqt6e/2_easy_little_known_steps_to_speed_up_emacs_start/ | |
| (setq gc-cons-threshold--orig gc-cons-threshold) | |
| (setq gc-cons-threshold (* 100 1024 1024)) ; 100 MB before garbage collection | |
| (setq user-home-directory (concat (getenv "HOME") "/")) ; must end with / | |
| (setq user-emacs-directory (concat user-home-directory ".emacs.d/")) ; must end with / | |
| (setq emacs-version-short (replace-regexp-in-string | |
| "\\([0-9]+\\)\\.\\([0-9]+\\).*" | |
| "\\1_\\2" emacs-version)) ; 25.0.50.1 -> 25_0 | |
| (setq org-directory (let ((dir (concat user-home-directory | |
| "org/"))) ; must end with / | |
| (make-directory dir :parents) | |
| dir)) | |
| (setq setup-packages-file (locate-user-emacs-file "setup-packages.el")) | |
| (setq custom-file (locate-user-emacs-file | |
| (concat "custom_" emacs-version-short ".el"))) | |
| (setq user-personal-directory (let ((dir (concat user-emacs-directory | |
| "personal/"))) ; must end with / | |
| (make-directory dir :parents) | |
| dir)) | |
| ;; A list of packages to ensure are installed at launch | |
| (setq my-packages | |
| '( | |
| ;; git-gutter git-gutter-fringe git-gutter+ git-gutter-fringe+ ; < diff-hl | |
| ;; popwin ; < shackle | |
| ;; ox-reveal ; used to export to HTML slides; using latest from git | |
| ;; helm helm-swoop ; < swiper | |
| ;; helm-gtags ; < ggtags | |
| ace-window | |
| adaptive-wrap ; indented line wrapping | |
| ag wgrep wgrep-ag s ; ag > ack > grep | |
| ; wgrep+wgrep-ag allow editing files | |
| ; directly in ag buffer | |
| aggressive-indent | |
| all all-ext ; edit ALL lines matching regex | |
| anzu ; shows total search hits in mode line, > query-replace | |
| ascii-art-to-unicode | |
| auto-complete fuzzy | |
| auto-highlight-symbol | |
| avy ; > ace-jump-mode | |
| beacon ; visual flash to show the cursor position | |
| benchmark-init | |
| bm ; visual bookmarks | |
| bookmark+ ; able to bookmark desktop sessions | |
| buffer-move | |
| cperl-mode | |
| csv-nav ; editing csv files | |
| deft ; quick note taking and management | |
| diff-hl | |
| dired-single dired+ | |
| discover-my-major ; Discover key bindings for the major mode | |
| drag-stuff | |
| easy-escape ; Make the \\ escape chars more pleasant looking in elisp regexps | |
| eimp ; required by org-show | |
| elfeed | |
| elisp-slime-nav ; tag based code navigation for elisp; works even for compressed code | |
| engine-mode ; search engines | |
| expand-region | |
| eww-lnum ; jump to links in eww buffer ace-jump style | |
| fill-column-indicator | |
| fold-this | |
| gist | |
| git-link ; get git links with line numbers and commit-hash/branch | |
| git-timemachine ; walk through git revisions | |
| gplusify ; copy region with formatting for G+ posts | |
| ggtags etags-select etags-table ctags-update | |
| hardcore-mode | |
| header2 | |
| help-fns+ | |
| hideshow-org hideshowvis | |
| htmlize | |
| hl-line+ | |
| hungry-delete | |
| hydra | |
| ibuffer-projectile | |
| ido-vertical-mode flx-ido ido-ubiquitous | |
| imenu-list | |
| indent-guide | |
| info+ | |
| interleave ; takes notes associated to pdf files in org mode | |
| iregister ; Interactive access to registers | |
| isend-mode ; used in setup-perl.el | |
| iy-go-to-char ; Go to next char which is similar to "f" and "t" in vim | |
| key-chord ; map pairs of simultaneously pressed keys to commands | |
| keyfreq ; find which commands you use the most | |
| kurecolor ; library to tweak colors | |
| linum-relative | |
| list-environment | |
| magit ; for git management | |
| manage-minor-mode | |
| markdown-mode | |
| minibuffer-line | |
| multi-term | |
| multiple-cursors | |
| mwe-log-commands ; for logging commands; useful when demoing emacs | |
| neotree | |
| nlinum ; reviews say it's better than linum | |
| number ; number manipulation | |
| org-cliplink ; paste copied links as well-formatted org-mode links with desc | |
| org-plus-contrib ; latest stable version of org-mode, includes org-eww | |
| org-tree-slide | |
| outorg navi-mode ; supporting packages for outshine | |
| outshine ; org-mode navigation and organization outside org-mode | |
| ox-twbs ; export to twitter bootstrap html | |
| paradox ; package menu improvements | |
| page-break-lines ; Convert the ^L (form feed) chars to horizontal lines | |
| pomodoro | |
| poporg ; edit comments from any other mode in org mode | |
| projectile ; Better than fiplr | |
| rainbow-delimiters | |
| rainbow-mode | |
| region-bindings-mode ; complements really well with multiple-cursors | |
| rectangle-utils | |
| rpn-calc | |
| shackle | |
| smart-compile | |
| smart-mark | |
| smart-mode-line popup rich-minority | |
| smex ; smart M-x | |
| stripe-buffer | |
| sunshine forecast ; weather | |
| swiper counsel | |
| sx | |
| tiny | |
| transpose-frame ; for the priceless `rotate-frame' and `transpose-frame' | |
| undo-tree ; supercool undo visualization | |
| use-package use-package-chords ; optimize package loading | |
| visual-regexp | |
| volatile-highlights | |
| web-mode | |
| which-key ; > guide-key | |
| wordnut ; offline dictionary (requires installing Wordnet wn application) | |
| wrap-region ; wrap selection with punctuations, tags (org-mode, markdown-mode, ..) | |
| writegood-mode ; highlight passive voice, weasel words and duplicates | |
| xkcd ; comic | |
| yafolding ; indentation detected code folding | |
| yaml-mode ; Useful for editing Octopress' _config.yml | |
| yasnippet | |
| zop-to-char | |
| ;; Themes | |
| ;; zenburn-theme ; < forked version | |
| ;; smyx-theme ; < forked version | |
| ample-theme ; ample, ample-flat, ample-light | |
| darktooth-theme ; coffee | |
| leuven-theme ; awesome white background theme | |
| planet-theme ; dark blue | |
| tao-theme ; monochrome | |
| twilight-bright-theme | |
| twilight-anti-bright-theme | |
| )) | |
| ;; Basic requires | |
| (require 'cl) | |
| (require 'cl-lib) | |
| ;; Place `setup-var-overrides.el' with `(provide 'setup-var-overrides)' in | |
| ;; `user-personal-directory' | |
| (add-to-list 'load-path user-personal-directory) | |
| (require 'setup-var-overrides nil :noerror) | |
| (load custom-file :noerror :nomessage) ; Load the emacs `M-x customize` generated file | |
| (load setup-packages-file nil :nomessage) ; Load the packages | |
| ;; (package-initialize) ; Do NOT delete this comment | |
| ;; In emacs 25+, the `package-initialize' call is auto-added to the top of | |
| ;; init.el unless the user already has a commented or uncommented | |
| ;; `(package-initialize)' line present in their init.el. | |
| ;; I call this function in setup-packages.el and so am keeping the | |
| ;; commented out version here so that package.el does not add it again. | |
| ;; Start `benchmark-init' as soon as possible | |
| (require 'benchmark-init) | |
| (eval-when-compile | |
| (require 'use-package) | |
| (setq use-package-always-ensure nil)) | |
| (require 'bind-key) | |
| (require 'use-package-chords) | |
| (require 'defuns) | |
| ;; Enable `modi-mode' unless `disable-pkg-modi-mode' is set to `t' in | |
| ;; `setup-var-overrides.el'. | |
| (when (not (bound-and-true-p disable-pkg-modi-mode)) | |
| (require 'modi-mode)) | |
| (require 'temp-mode) | |
| (require 'setup-paradox) | |
| (require 'setup-region-bindings-mode) | |
| (require 'setup-key-chord) | |
| (require 'setup-hydra) | |
| (require 'setup-tags) ; It's important that this is required at least | |
| ; before requiring `setup-projectile' | |
| ;; End of basic requires | |
| ;; Set up the looks of emacs | |
| (require 'setup-mode-line) | |
| (require 'setup-visual) | |
| (if (bound-and-true-p disable-pkg-shackle) | |
| (require 'setup-popwin) | |
| (require 'setup-shackle)) | |
| ;; Set up packages | |
| (require 'setup-abbrev) | |
| (require 'setup-ace-window) | |
| (when (executable-find "ag") | |
| (require 'setup-ag)) | |
| (require 'setup-aggressive-indent) | |
| (require 'setup-all) | |
| (require 'setup-artist) | |
| (require 'setup-auto-complete) | |
| (require 'setup-beacon) | |
| (require 'setup-big-fringe) | |
| (require 'setup-bookmarks) | |
| (require 'setup-buffer-move) | |
| (require 'setup-calc) | |
| (require 'setup-counsel) | |
| (require 'setup-de-ansi) | |
| (require 'setup-deft) | |
| (require 'setup-dired) | |
| (require 'setup-discover-my-major) | |
| (require 'setup-drag-stuff) | |
| (require 'setup-elfeed) | |
| (>=e "24.4" | |
| (require 'setup-eww)) | |
| (require 'setup-elisp-slime-nav) | |
| (require 'setup-engine-mode) | |
| (require 'setup-expand-region) | |
| (require 'setup-fci) | |
| (require 'setup-fold) | |
| (require 'setup-gist) | |
| (when (executable-find "git") | |
| (require 'setup-diff-hl) | |
| (require 'setup-git-link) | |
| (require 'setup-git-timemachine) | |
| (require 'setup-magit)) | |
| (require 'setup-hardcore) | |
| (require 'setup-header2) | |
| (require 'setup-highlight) | |
| (require 'setup-htmlize) | |
| (require 'setup-hungry-delete) | |
| (require 'setup-ibuffer) | |
| (require 'setup-ido) | |
| (require 'setup-imenu-list) | |
| (require 'setup-indent-guide) | |
| (require 'setup-iregister) | |
| (require 'setup-ivy) | |
| (require 'setup-keyfreq) | |
| (require 'setup-kurecolor) | |
| (require 'setup-list-environment) | |
| (require 'setup-manage-minor-mode) | |
| (require 'setup-multiple-cursors) | |
| (require 'setup-neotree) | |
| (require 'setup-number) | |
| (require 'setup-org) | |
| (require 'setup-orgstruct) | |
| (require 'setup-outshine) | |
| (require 'setup-page-break-lines) | |
| (require 'setup-pcache) | |
| (require 'setup-pomodoro) | |
| (require 'setup-poporg) | |
| (require 'setup-projectile) | |
| (require 'setup-rainbow-delimiters) | |
| (require 'setup-rainbow-mode) | |
| (require 'setup-server) | |
| (require 'setup-smart-compile) | |
| (require 'setup-smex) | |
| (require 'setup-stripe-buffer) | |
| (require 'setup-sx) | |
| (require 'setup-term) | |
| (require 'setup-tiny) | |
| (require 'setup-undo-tree) | |
| (require 'setup-weather) | |
| (require 'setup-which-func) | |
| (require 'setup-which-key) | |
| (when (executable-find "wn") | |
| (require 'setup-wordnut)) | |
| (require 'setup-wrap-region) | |
| (require 'setup-writegood) | |
| (require 'setup-xkcd) | |
| (require 'setup-yasnippet) | |
| ;; Languages | |
| (require 'setup-conf) | |
| (require 'setup-elisp) | |
| (require 'setup-latex) | |
| (require 'setup-markdown) | |
| (when (executable-find "matlab") | |
| (require 'setup-matlab)) | |
| (require 'setup-perl) | |
| (require 'setup-python) | |
| (require 'setup-shell) | |
| (require 'setup-spice) | |
| (require 'setup-tcl) | |
| (require 'setup-verilog) | |
| (require 'setup-web-mode) | |
| (require 'setup-yaml-mode) | |
| ;; Blend of other setup | |
| (require 'setup-backup) | |
| (require 'setup-editing) | |
| (require 'setup-image) | |
| (require 'setup-navigation) | |
| (require 'setup-pdf) | |
| (require 'setup-print) | |
| (require 'setup-registers) | |
| (require 'setup-search) | |
| (when (or (executable-find "aspell") | |
| (executable-find "hunspell")) | |
| (require 'setup-spell)) | |
| (require 'setup-unicode) | |
| (require 'setup-windows-buffers) | |
| ;; Place `setup-work.el' with `(provide 'setup-work)' in `user-personal-directory' | |
| (require 'setup-work nil :noerror) | |
| ;; Place `setup-personal.el' with `(provide 'setup-personal)' in `user-personal-directory' | |
| (require 'setup-personal nil :noerror) | |
| ;; Load certain setup files after a 1 second idle time after emacs has loaded. | |
| ;; This files need the emacs frame to be set up properly. For example, linum, | |
| ;; font detection does not work when emacs is launched in daemon mode while | |
| ;; the emacs frame has yet to load. So do those things after a safe estimate | |
| ;; delay of 1 second by which the frame should have loaded. | |
| (use-package setup-info :defer 1) | |
| (use-package setup-linum :defer 1) | |
| (use-package setup-symbola :defer 1) | |
| ;; Do desktop setup after linum setup so that the desktop loaded files will show | |
| ;; linum if enabled for that major mode or if enabled globally | |
| (with-eval-after-load 'setup-linum | |
| (require 'setup-desktop)) | |
| ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; | |
| (require 'setup-misc) ; This MUST be the last required package | |
| (when (and (bound-and-true-p emacs-initialized) | |
| (featurep 'setup-visual)) | |
| (funcall default-theme-fn)) ; defined in `setup-visual.el' | |
| (setq emacs-initialized t) | |
| (run-with-idle-timer 5 nil (lambda () (setq gc-cons-threshold gc-cons-threshold--orig))) |