Created
December 17, 2013 18:38
-
-
Save drewkerrigan/8010308 to your computer and use it in GitHub Desktop.
This file contains hidden or 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
;;;; .emacs Customizations, Functions, and Packages | |
;;; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | |
;;; Packages and Initialization | |
;;; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | |
(require 'package) | |
;; Add the original Emacs Lisp Package Archive | |
(add-to-list 'package-archives '("melpa" . "http://melpa.milkbox.net/packages/")) | |
;; Add the user-contributed repository | |
(add-to-list 'package-archives '("marmalade" . "http://marmalade-repo.org/packages/")) | |
;; (add-to-list 'load-path "~/.emacs.d/packages/emacs-colors-solarized/") | |
;; (require 'color-theme-solarized) | |
;; (color-theme-solarized-dark) | |
(add-to-list 'custom-theme-load-path "~/.emacs.d/packages/emacs-color-theme-solarized/") | |
(load-theme 'solarized-dark t) | |
(add-to-list 'load-path "~/.emacs.d/packages/emacs-elixir/") | |
(require 'elixir-mode) | |
;; (add-to-list 'custom-theme-load-path "~/.emacs.d/packages/emacs-color-theme-solarized/") | |
;; (load-theme 'solarized-dark t) | |
(global-linum-mode 1) | |
;;; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | |
;;; Erlang | |
;;; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | |
(setq load-path (cons "~/erlang/r16b02/lib/tools-2.6.12/emacs" | |
load-path)) | |
(setq erlang-root-dir "~/erlang/r16b02") | |
(setq exec-path (cons "~/erlang/r16b02/bin" exec-path)) | |
(require 'erlang-start) | |
(add-to-list 'auto-mode-alist '("\\.config\\'" . erlang-mode)) | |
(require 'erlang-flymake) | |
;;; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | |
;;; Keybindings | |
;;; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | |
(if (eq window-system nil) | |
;;; Terminal | |
((global-set-key (kbd "C-S-<left>") 'previous-buffer) | |
(global-set-key (kbd "C-S-<right>") 'next-buffer) | |
(global-set-key (kbd "C-x C-k") 'erlang-compile) | |
(global-set-key (kbd "C-c C-s") 'make-shell) | |
(global-set-key (kbd "A-S-r") (rgrep))) | |
;;; Aquamacs / Window System | |
(global-set-key (kbd "s-<right>") 'move-end-of-line) | |
(global-set-key (kbd "s-<left>") 'move-beginning-of-line) | |
(global-set-key (kbd "s-<up>") 'beginning-of-buffer) | |
(global-set-key (kbd "s-<down>") 'end-of-buffer) | |
(set-frame-size (selected-frame) 200 64) | |
(add-to-list 'default-frame-alist '(width . 200)) | |
(add-to-list 'default-frame-alist '(height . 64)) | |
(global-set-key (kbd "C-S-<left>") 'previous-buffer) | |
(global-set-key (kbd "C-S-<right>") 'next-buffer) | |
(global-set-key (kbd "C-x C-k") 'erlang-compile) | |
(global-set-key (kbd "C-c C-s") 'make-shell) | |
;; (define-key osx-key-mode-map (kbd "C-S-<left>") 'previous-tab-or-buffer) | |
;; (define-key osx-key-mode-map (kbd "C-S-<right>") 'next-tab-or-buffer) | |
;; (define-key osx-key-mode-map (kbd "C-x C-k") 'erlang-compile) | |
;; (define-key osx-key-mode-map (kbd "C-c C-s") 'make-shell) | |
(modify-frame-parameters (selected-frame) '((alpha . 90))) | |
(global-set-key (kbd "C-?") 'transparency-set-value) | |
(global-set-key (kbd "C->") 'transparency-increase) | |
(global-set-key (kbd "C-<") 'transparency-decrease) | |
(setq-default cursor-type 'box)) | |
;;; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | |
;;; Whitespace Management | |
;;; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | |
(setq-default indent-tabs-mode nil) | |
(add-hook 'before-save-hook 'delete-trailing-whitespace) | |
(add-hook 'before-save-hook | |
(lambda () (if (not indent-tabs-mode) | |
(untabify (point-min) (point-max))))) | |
(put 'erase-buffer 'disabled nil) | |
;;; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | |
;;; Functions | |
;;; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | |
(defun my-makefile-hook () | |
(indent-tabs-mode)) | |
;;; Shell / Eshell | |
(defun my-clear () | |
(interactive) | |
(let ((comint-buffer-maximum-size 0)) | |
(comint-truncate-buffer))) | |
(defun my-shell-hook () | |
(local-set-key "\C-cl" 'my-clear) | |
(local-set-key (kbd "A-k") 'my-eclear)) | |
(defun my-eclear () | |
(interactive) | |
(let ((inhibit-read-only t)) | |
(erase-buffer) | |
(eshell-send-input))) | |
(defun my-eshell-hook () | |
(local-set-key "\C-cl" 'my-clear) | |
(local-set-key (kbd "A-k") 'my-eclear)) | |
;;; Utility Functions | |
(defun make-shell (name) | |
"Create a shell buffer named NAME." | |
(interactive "sEShell Name: ") | |
(setq name (concat name "$" )) | |
(eshell) | |
(rename-buffer name)) | |
(defun transparency-set-initial-value () | |
"Set initial value of alpha parameter for the current frame" | |
(interactive) | |
(if (equal (frame-parameter nil 'alpha) nil) | |
(set-frame-parameter nil 'alpha 100))) | |
(defun transparency-set-value (numb) | |
"Set level of transparency for the current frame" | |
(interactive "nEnter transparency level in range 0-100: ") | |
(if (> numb 100) | |
(message "Error! The maximum value for transparency is 100!") | |
(if (< numb 0) | |
(message "Error! The minimum value for transparency is 0!") | |
(set-frame-parameter nil 'alpha numb)))) | |
(defun transparency-increase () | |
"Increase level of transparency for the current frame" | |
(interactive) | |
(transparency-set-initial-value) | |
(if (> (frame-parameter nil 'alpha) 0) | |
(set-frame-parameter nil 'alpha (+ (frame-parameter nil 'alpha) -2)) | |
(message "This is a minimum value of transparency!"))) | |
(defun transparency-decrease () | |
"Decrease level of transparency for the current frame" | |
(interactive) | |
(transparency-set-initial-value) | |
(if (< (frame-parameter nil 'alpha) 100) | |
(set-frame-parameter nil 'alpha (+ (frame-parameter nil 'alpha) +2)) | |
(message "This is a minimum value of transparency!"))) | |
;;; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | |
;;; Hooks | |
;;; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%% | |
(add-hook 'shell-mode-hook 'my-shell-hook) | |
(add-hook 'eshell-mode-hook 'my-eshell-hook) | |
(add-hook 'makefile-mode 'my-makefile-hook) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment