Skip to content

Instantly share code, notes, and snippets.

@drewkerrigan
Created December 17, 2013 18:38
Show Gist options
  • Save drewkerrigan/8010308 to your computer and use it in GitHub Desktop.
Save drewkerrigan/8010308 to your computer and use it in GitHub Desktop.
;;;; .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