Last active
January 11, 2018 01:05
-
-
Save siraben/5a58002552a9af54a350310577958e56 to your computer and use it in GitHub Desktop.
Emacs Config
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
(require 'package) | |
(let* ((no-ssl (and (memq system-type '(windows-nt ms-dos)) | |
(not (gnutls-available-p)))) | |
(proto (if no-ssl "http" "https"))) | |
;; Comment/uncomment these two lines to enable/disable MELPA and MELPA Stable as desired | |
(add-to-list 'package-archives (cons "melpa" (concat proto "://melpa.org/packages/")) t) | |
;;(add-to-list 'package-archives (cons "melpa-stable" (concat proto "://stable.melpa.org/packages/")) t) | |
(when (< emacs-major-version 24) | |
;; For important compatibility libraries like cl-lib | |
(add-to-list 'package-archives '("gnu" . (concat proto "://elpa.gnu.org/packages/"))))) | |
(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 default default italic underline success warning error]) | |
'(ansi-color-names-vector | |
["#212526" "#ff4b4b" "#b4fa70" "#fce94f" "#729fcf" "#e090d7" "#8cc4ff" "#eeeeec"]) | |
'(display-battery-mode t) | |
'(display-time-mode t) | |
'(package-selected-packages | |
(quote | |
(notmuch flycheck writeroom-mode zenburn-theme auto-complete rainbow-delimiters solarized-theme pdf-tools paredit markdown-mode helm evil csv-mode chess aggressive-indent 2048-game))) | |
'(pdf-view-midnight-colors (quote ("#DCDCCC" . "#383838"))) | |
'(scroll-bar-mode nil)) | |
(custom-set-faces | |
;; custom-set-faces 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. | |
) | |
;; list the packages you want | |
(setq package-list package-selected-packages) | |
;; activate all the packages (in particular autoloads) | |
(package-initialize) | |
;; fetch the list of packages available | |
(unless package-archive-contents | |
(package-refresh-contents)) | |
;; install the missing packages | |
(dolist (package package-list) | |
(unless (package-installed-p package) | |
(package-install package))) | |
;; Chez/MIT scheme | |
(if (eq system-type 'darwin) | |
(setq scheme-program-name "/usr/local/bin/chez") | |
(setq scheme-program-name "/usr/bin/mit-scheme")) | |
(defun ben/apply-solarized-theme () | |
(setq solarized-use-variable-pitch nil) | |
;; (setq solarized-high-contrast-mode-line t) | |
(load-theme 'solarized-dark t)) | |
(ben/apply-solarized-theme) | |
;; Spell Checking | |
(setq | |
ispell-program-name "/usr/local/bin/aspell" | |
ispell-dictionary "en_US") | |
(defun ben/my-lisp-hook () | |
(paredit-mode 1) | |
(aggressive-indent-mode 1) | |
(rainbow-delimiters-mode 1) | |
(undo-tree-mode 1) | |
(auto-complete-mode 1)) | |
(add-hook 'scheme-mode-hook #'(lambda () (ben/my-lisp-hook))) | |
(add-hook 'markdown-mode-hook #'(lambda () | |
(progn (visual-line-mode 1) | |
(undo-tree-mode 1) | |
(writeroom-mode 1)))) | |
(add-hook 'org-mode-hook #'(lambda () (progn (visual-line-mode 1) | |
(undo-tree-mode 1)))) | |
(add-hook 'emacs-lisp-mode-hook #'(lambda () (ben/my-lisp-hook))) | |
(setq ben/default-font "Hack") | |
(setq ben/default-font-size 11) | |
(setq ben/current-font-size ben/default-font-size) | |
(setq ben/font-change-increment 1.1) | |
(defun ben/font-code () | |
"Return a string representing the current font (like \"Hack-13\")." | |
(concat ben/default-font "-" (number-to-string ben/current-font-size))) | |
(defun ben/set-font-size () | |
"Set the font to `ben/default-font' at `ben/current-font-size'. | |
Set that for the current frame, and also make it the default for | |
other, future frames." | |
(let ((font-code (ben/font-code))) | |
(add-to-list 'default-frame-alist (cons 'font font-code)) | |
(set-frame-font font-code))) | |
(defun ben/reset-font-size () | |
"Change font size back to `ben/default-font-size'." | |
(interactive) | |
(setq ben/current-font-size ben/default-font-size) | |
(ben/set-font-size)) | |
(defun ben/increase-font-size () | |
"Increase current font size by a factor of `ben/font-change-increment'." | |
(interactive) | |
(setq ben/current-font-size | |
(ceiling (* ben/current-font-size ben/font-change-increment))) | |
(ben/set-font-size)) | |
(defun ben/decrease-font-size () | |
"Decrease current font size by a factor of `ben/font-change-increment', down to a minimum size of 1." | |
(interactive) | |
(setq ben/current-font-size | |
(max 1 | |
(floor (/ ben/current-font-size ben/font-change-increment)))) | |
(ben/set-font-size)) | |
(define-key global-map (kbd "C-)") 'ben/reset-font-size) | |
(define-key global-map (kbd "C-+") 'ben/increase-font-size) | |
(define-key global-map (kbd "C-=") 'ben/reset-font-size) | |
(define-key global-map (kbd "C--") 'ben/decrease-font-size) | |
(ben/reset-font-size) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment