;; Emacs initialization file ;; Remember the initialization directory (setq ravi/init-dir (file-name-directory (or load-file-name (buffer-file-name)))) (defun ravi/emacs-file (filename) (expand-file-name filename ravi/init-dir) ) ;; Initialize some customizations early on to avoid flicker (setq warning-suppress-types nil) (set-face-background 'default "black") (set-face-foreground 'default "white") (add-to-list 'default-frame-alist '(background-mode . dark)) (require 'cl) (defun font-candidate (&rest fonts) "Return existing font which first match." (find-if (lambda (f) (find-font (font-spec :name f))) fonts)) (set-face-attribute 'default nil :font (font-candidate '"Inconsolata" "Source Code Pro" "Anonymous Pro")) (when window-system (tooltip-mode -1) (tool-bar-mode -1)) (menu-bar-mode -1) (setq custom-file (concat ravi/init-dir "custom.el")) ;; Initialize package handling: currently using only the official repository and MELPA (setq package-archives '(("gnu" . "http://elpa.gnu.org/packages/") ;("original" . "http://tromey.com/elpa/") ;("org" . "http://orgmode.org/elpa/") ;("marmalade" . "http://marmalade-repo.org/packages/") ("melpa" . "http://melpa.milkbox.net/packages/"))) (add-to-list 'load-path ravi/init-dir) (setq autoload-file (concat ravi/init-dir "loaddefs.el")) (setq package-user-dir (concat ravi/init-dir "elpa")) (package-initialize) (defvar ravi/default-install-packages (list 'yasnippet 'use-package 'bind-key 'diminish) "Libraries that should be installed by default.") (unless package-archive-contents (package-refresh-contents)) (dolist (package ravi/default-install-packages) (unless (package-installed-p package) (package-install package))) ;; Settings from M-x customize (load custom-file 'noerror) (require 'bind-key) (require 'use-package) (require 'diminish) ;; Initialize appearance (require 'ravi-init-ido) (require 'ravi-init-marks) (require 'ravi-init-appearance) (require 'ravi-init-files)