;; Date: Aug 19, 2010 ;; Author: Collin J. Doering ;; Description: Emacs configuration file (in emacs lisp) ;; TODO: clean up backages (prefer ELPA to AUR and archlinux packages); also denote which ;; source is being used after require or autoload sexp's. ;; E.g (require 'pkg) ;; PKG_SRC ;; (autoload ...) ;; PKG_SRC ;; For packages that are installed through the ELPA (and thus they are loaded ;; auto-magically) that do not require any changes to this file (.emacs) and/or ;; are changed using customize simply note (in a comment) at the beginning of this file ;; the package ;; ELPA packages that do not require modification of this file other then Customize ;; * caml (required by tuareg) ;; * tuareg ;; * project-mode ;; * register-list ;; ELPA packages configured explicitly below: ;; * php-mode ;; * python-mode ;; * ipython ;; * lua-mode ;; * erlang ;; * clojure-mode ;; Set repos for package.el (setq package-archives '(("gnu" . "http://elpa.gnu.org/packages/") ("marmalade" . "http://marmalade-repo.org/packages/") ("melpa" . "http://melpa.milkbox.net/packages/") ("ELPA" . "http://tromey.com/elpa/"))) ;; This needs to be a the start of ~/.emacs since package-initialize is run after the user ;; init file is read but before after-init-hook. It autoloads packages installed by ;; package.el including updating the load-path and running/loading/requiring ;; pkgname-autoload.el for all packages (where pkgname is replaced with the appropriate ;; package name). To disable package.el's autoloading functionality use: ;; (setq package-enabled-at-startup nil) ;; The reason to use package-initialize here is so one can modify the installed modules ;; later in this .emacs file but still retain the autoloading functionality of package.el (package-initialize) ;; stop renaming of saved files to filename~ which ends up breaking hardlinks (setq backup-by-copying-when-linked t) ;; fixes color output issues; see: http://wiki.archlinux.org/index.php/Emacs#Colored_output_issues (add-hook 'shell-mode-hook 'ansi-color-for-comint-mode-on) ;; Automatically open some config files with an associated major mode ;; Note: regexp's used to match buffer filenames are intentionally left ;; unbounded (without '$') to catch cases where the filename may ;; take the format: filename~ (add-to-list 'auto-mode-alist '("\\.conkerorrc" . javascript-mode)) (add-to-list 'auto-mode-alist '("\\.xmobarrc" . haskell-mode)) (add-to-list 'auto-mode-alist '("\\.screenrc" . conf-mode)) (add-to-list 'auto-mode-alist '("\\.stumpwmrc" . lisp-mode)) ;; bind M-g to M-x goto-line (global-set-key "\M-g" 'goto-line) ;; Make C-x O cycle backwards a pane (oposite to C-x o) (global-set-key "\C-xO" #'(lambda () (interactive) (other-window -1))) ;; Thanks to lauren michelle for this one *BROKEN* ;; Seemingly broken in emacs24 (or at least when i noticed the issue). Throws ;; off font size of function names because font-lock-add-keywords is responsible ;; for fontifying function/variable definitions. Consistency of text size is not ;; affected when emacs is run in a terminal, only the GTK GUI front end. ;; Also really only should be applied to lisp-like ;; languages (because it parses for char '(' and endBy ')' and thus \x -> ... ;; or a lambda expression from any language must be wrapped in parens ;; (defun pretty-lambdas () ;; (font-lock-add-keywords ;; nil `(("(\\(lambda\\>\\)" ;; (0 (progn (compose-region (match-beginning 1) (match-end 1) ;; ,(make-char 'greek-iso8859-7 107)) ;; nil)))))) ;; adds the given function mode to each element of the given-hooks (defun activate-mode-with-hooks (mode given-hooks) (while given-hooks (add-hook (car given-hooks) mode) (setq given-hooks (cdr given-hooks)))) ;; Make lambda appear as the greek character *BROKEN* -- read above ;;(activate-mode-with-hooks 'pretty-lambdas '(scheme-mode-hook lisp-mode-hook lisp-interaction-mode geiser-repl-mode python-mode emacs-lisp-mode)) ;; linum mode for pretty line numbering (require 'linum) ;; Built-in ;; right justify the numbers and add a space between them and the text in the given buffer (setq linum-format (lambda (line) (propertize (format (let ((w (length (number-to-string (count-lines (point-min) (point-max)))))) (concat "%" (number-to-string w) "d ")) line) 'face 'linum))) ;; code-modes is a list of mode hooks (for programming langs only) (defvar code-modes '(scheme-mode-hook emacs-lisp-mode-hook c-mode-hook c++-mode-hook python-mode-hook lua-mode-hook python-mode-hook haskell-mode-hook php-mode-hook perl-mode-hook lisp-mode-hook clojure-mode-hook ruby-mode-hook erlang-mode-hook sh-mode-hook)) ;; activate linum-mode in all buffers used for programming (activate-mode-with-hooks (lambda () (linum-mode 1)) code-modes) ;; activate flyspell-prog-mode for all buffers used for programming (activate-mode-with-hooks 'flyspell-prog-mode code-modes) ;; use flyspell-mode in org-mode and magit-log-edit-mode buffers (activate-mode-with-hooks 'flyspell-mode '(org-mode-hook magit-log-edit-mode-hook)) ;; Enjoy a game of Sudoku on some downtime (require 'sudoku) ;; ELPA ;; *DEPRECIATED* as of emacs24; when it goes live remove this as well as package emacs-color-theme ;; load color-theme and initialize ;;(require 'color-theme) ;;(color-theme-initialize) ;; use a global color theme ;;(color-theme-tty-dark) ;; make color-theme not applied globally and not cumunitive ;;(setq color-theme-is-cumulative nil) ;;(setq color-theme-is-global nil) ;; given a frame colorizes the frame ;; if its window-system is X Windows the tty-dark theme will be applied otherwise it will be colorized tty-dark ;;(defun apply-color-theme (frame) ;; (select-frame frame) ;; (if (eq (window-system frame) 'x) ;; (color-theme-tty-dark) ;; (color-theme-tty-dark))) ;; add the apply-color-theme function (hook) to be executed on the creation of a new frame ;;(add-hook 'after-make-frame-functions 'apply-color-theme) ;; Use the built-in themeing in emacs24 (load-theme 'manoj-dark) ;; Set the default font (12 pixels tall) (set-default-font "Terminus-12") ;; Set default tramp method to ssh (for security purposes) (setq tramp-default-method "ssh") ;; Setup ibuffer (interactive buffer) (global-set-key "\C-x\C-b" 'ibuffer) (autoload 'ibuffer "ibuffer" "List buffers." t) ;; Require ibuffer extentions (used for ibuffer-never-show-predicates) (require 'ibuf-ext) ;; Built-in (add-to-list 'ibuffer-never-show-predicates "^\\*slime-events\\*$") (add-to-list 'ibuffer-never-show-predicates "^\\*Completions\\*$") (add-to-list 'ibuffer-never-show-predicates "^\\*tramp/.*\\*$") ;; Filter ibuffers (similar to gnus) (setq ibuffer-saved-filter-groups (quote (("default" ("dired" (mode . dired-mode)) ("config" (or (name . "^\\.xinitrc$") (name . "^\\.bashrc$") (name . "^\\.bash_profile$") (name . "^\\.zshrc$") (name . "^xmonad\\.hs$") (name . "^\\.emacs$") (name . "^\\.gnus$") (name . "^\\.xmobarrc") (name . "^\\.Xdefaults$") (name . "^\\.screenrc$") (name . "^\\.xbindkeysrc$") (name . "^\\.racketrc$") (name . "^\\.ghci"))) ("code" (or (mode . c-mode) (mode . c++-mode) (mode . perl-mode) (mode . lua-mode) (mode . clojure-mode) (mode . java-mode) (mode . python-mode) (mode . ruby-mode) (mode . emacs-lisp-mode) (mode . lisp-mode) (mode . sh-mode) (mode . scheme-mode) (mode . haskell-mode) (mode . php-mode) (mode . xml-mode))) ("REPL" (or (mode . geiser-mode) (mode . slime-repl-mode) (mode . inferior-python-mode) (mode . ipython-mode) (mode . inferior-haskell-mode) (mode . inferior-lisp-mode) (mode . eshell-mode) (mode . inferior-scheme-mode) (mode . inferior-tcl) (mode . erlang-shell-mode) (name . "^\\*inferior-lisp\\*$") (name . "^\\* Racket REPL \\*$"))) ("git" (or (name . "^\\*magit: ") ;; this regxp could be better (mode . magit-mode) (mode . magit-log-mode))) ("planner" (or (name . "^\\*Calendar\\*$") (name . "^diary$") (mode . muse-mode))) ("emacs" (or (name . "^\\*scratch\\*$") (name . "^\\*Messages\\*$"))) ("org" (or (mode . org-mode) (name . "^\\.org$") (name . "^\\.org.gpg$"))) ("gnus" (or (mode . message-mode) (mode . bbdb-mode) (mode . mail-mode) (mode . gnus-group-mode) (mode . gnus-summary-mode) (mode . gnus-article-mode) (name . "^\\.bbdb$") (name . "^\\.newsrc-dribble"))))))) (add-hook 'ibuffer-mode-hook (lambda () (ibuffer-switch-to-saved-filter-groups "default"))) ;; Setup oauth2 (required by google-contacts) ;;(add-to-list 'load-path "/home/collin/.emacs.d/elpa/oauth2-0.5") (require 'oauth2-autoloads) ;; ELPA ;; Setup google-contact (require 'google-contacts) ;; AUR: emacs-google-contacts (require 'google-contacts-gnus) ;; AUR: emacs-google-contacts ;; setup html renderer w3m and external browser conkeror (require 'w3m-load) ;; AUR: emacs-w3m-cvs (setq browse-url-browser-function 'w3m-browse-url browse-url-generic-program "conkeror" w3m-use-cookies t) (autoload 'w3m-browse-url "w3m" "Ask a WWW browser to show a URL." t) ;; setup magit for git (being used though elpa [auto-loaded]) ;;(autoload 'magit-status magit nil t) ;;(require 'magit) ;; ELPA (global-set-key "\C-xS" 'magit-status) ;; Setup PKGBUILD mode (autoload 'pkgbuild-mode "pkgbuild-mode.el" "PKGBUILD mode." t) (setq auto-mode-alist (append '(("/PKGBUILD$" . pkgbuild-mode)) auto-mode-alist)) ;; setup php-mode (autoload 'php-mode "php-mode.el" "Php mode." t) ;; ELPA (setq auto-mode-alist (append '(("/*.\.php[345]?$" . php-mode)) auto-mode-alist)) ;; Set default lisp program (setq inferior-lisp-program "/usr/bin/sbcl") ;; Since there is no support for the kawa implementation of scheme (defun run-kawa () "Run Kawa Scheme in an Emacs buffer." (interactive) (require 'cmuscheme) ;; Built-in (let ((scheme-program-name "/usr/bin/kawa")) (run-scheme scheme-program-name))) ;; Set usable lisp implementations (setq slime-lisp-implementations '((sbcl ("/usr/bin/sbcl" "")) (clisp ("/usr/bin/clisp" "-K base")) (clojure ("/usr/bin/clj" "")))) ;; Function to start and/or connect to slime (defun start-slime () (interactive) (unless (slime-connected-p) (save-excursion (slime)))) ;; Setup slime mode *TODO* drop in slime from ELPA (add-to-list 'load-path "/usr/share/emacs/site-lisp/slime/") (require 'slime) ;; AUR: emacs-slime-cvs (slime-setup '(slime-fancy)) ;; Setup swank-clojure-mode (add-to-list 'load-path "/usr/share/emacs/site-lisp/swank-clojure") (require 'swank-clojure) ;; ELPA (add-hook 'clojure-mode-hook '(lambda () (define-key clojure-mode-map "\C-c\C-e" 'lisp-eval-last-sexp) (define-key clojure-mode-map "\C-x\C-e" 'lisp-eval-last-sexp))) (eval-after-load "slime" `(progn (require 'assoc) ;; Built-in (setq swank-clojure-classpath (list "/usr/share/clojure/clojure.jar" "/usr/share/clojure/clojure-contrib.jar" "/usr/share/emacs/site-lisp/swank-clojure/src")) (aput 'slime-lisp-implementations 'clojure (list (swank-clojure-cmd) :init 'swank-clojure-init)))) ;; Setup emacs-org-mode (add-to-list 'auto-mode-alist '("\\.org\\'" . org-mode)) (add-hook 'org-mode-hook 'turn-on-font-lock) ; not needed when global-font-lock-mode is on (setq org-return-follows-link t) (setq org-log-done 'time) ;; Add additional languages for org-babel (now part of org-mode) (org-babel-do-load-languages 'org-babel-load-languages '((haskell . t))) ;; Set keybindings for org-mode (global-set-key "\C-cl" 'org-store-link) (global-set-key "\C-ca" 'org-agenda) (global-set-key "\C-cb" 'org-iswitchb) ;; Setup haskell-mode ;; ELPA (add-hook 'haskell-mode-hook 'turn-on-haskell-doc-mode) (add-hook 'haskell-mode-hook 'turn-on-haskell-indentation) ;;(add-hook 'haskell-mode-hook 'turn-on-haskell-indent) ;;(add-hook 'haskell-mode-hook 'turn-on-haskell-simple-indent) ;; Set inferior haskell default executable (setq haskell-program-name "/usr/bin/ghci") ;; Python stuff currently *BROKEN* ;; Setup emacs-python-mode ;; (autoload 'python-mode "python-mode.el" "Python mode." t) ;; ELPA ;; (setq auto-mode-alist (append '(("/*.\.py$" . python-mode)) auto-mode-alist)) ;; Setup ipython-mode ;; (setq py-python-command "/usr/bin/ipython") ;; (require 'ipython) ;; ELPA ;; Make a variable alias because ipython-mode references python-mode-map as py-mode-map ;;(defvaralias 'python-mode-map 'py-mode-map) ;; Setup emacs-lua-mode (setq auto-mode-alist (cons '("\.lua$" . lua-mode) auto-mode-alist)) ;; ELPA (autoload 'lua-mode "lua-mode" "Lua editing mode." t) ;; Setup emacs-erlang-mode (ELPA) (setq erlang-root-dir "/usr/lib/erlang") (setq exec-path (cons "/usr/lib/erlang/bin" exec-path)) (setq auto-mode-alist (append '(("\.erl$" . erlang-mode)) auto-mode-alist)) ;; Setup enhanced scheme/racket mode consisting of geiser, quack and paredit ;; Setup geiser ;;(require 'geiser-install) ;; AUR: geiser-git ;; Setup quack *DISABLED* ;(require 'quack) ;; Setup paredit (require 'paredit) ;; ELPA (defvar paredit-hooks '(lisp-mode-hook lisp-interaction-mode-hook emacs-lisp-mode-hook scheme-mode-hook c-mode-hook c++-mode-hook python-mode-hook)) ;; Apply paredit-mode to modes listed in paredit-hooks (activate-mode-with-hooks (lambda () (paredit-mode 1)) paredit-hooks) ;; Paredit binds to C-j globally and thus disables the binding to ;; eval-print-last-sexp in emacs-lisp-mode (e.g *scratch*, etc..) (add-hook 'emacs-lisp-mode-hook '(lambda () (define-key emacs-lisp-mode-map "\C-xj" 'eval-print-last-sexp))) ;; Highlight paren's in given modes [to apply globally do (show-paren-mode 1)] (activate-mode-with-hooks (lambda () (show-paren-mode 1)) paredit-hooks) ;; upcomming functionallity: toggle paredit-mode due to annoying things like wrapping parens when a mistake is made ;; known issue..if paredit-mode is turned on when there are unbalanced parens an error is reported (defun toggle-paredit-mode () (let ((active-minor-modes (list))) (mapatoms (lambda (sym) (when (and (symbolp sym) (assq sym minor-mode-alist) (symbol-value sym)) (push sym active-minor-modes)))) (if (member 'paredit-mode active-minor-modes) (paredit-mode -1) (paredit-mode 1)))) (setq geiser-repl-use-other-window nil) (setq geiser-active-implementations '(racket)) ;; setup pastebin.el for use with pastebin.com (require 'pastebin) ;; ELPA ;; yasnippet, auto-complete-mode and flyspell do not play nicely with one another due to ;; a conflict with the context of their tab binding *OLD* ;; hideshow-org being depreciated in my config due to conflicting key bindings with yasnippet ;; and flyspell *TODO* ;; Make hs-minor-mode act like org-mode for code folding ;;(add-to-list 'load-path "/usr/share/emacs/site-lisp/hideshow-org") ;; (require 'hideshow-org) ;; (global-set-key "\C-ch" 'hs-org/minor-mode) ;; Add automatic activation of hs-org/minor-mode in the below major-modes ;; (add-hook 'c-mode-common-hook 'hs-org/minor-mode) ;; (add-hook 'emacs-lisp-mode-hook 'hs-org/minor-mode) ;; (add-hook 'java-mode-hook 'hs-org/minor-mode) ;; (add-hook 'lisp-mode-hook 'hs-org/minor-mode) ;; (add-hook 'sh-mode-hook 'hs-org/minor-mode) ;; (add-hook 'python-mode-hook 'hs-org/minor-mode) ;; (add-hook 'scheme-mode-hook 'hs-org/minor-mode) ;; Setup fancy auto-complete (require 'auto-complete-config) ;; ELPA ;;(add-to-list 'ac-dictionary-directories "/usr/share/emacs/site-lisp/auto-complete/ac-dict") (ac-config-default) ;; Setup yasnippet-mode (not yasnippet-bundle) (require 'yasnippet) ;; ELPA ;;(yas/initialize) (yas/load-directory "~/.emacs.d/elpa/yasnippet-20120718/snippets") ;; Enable flyspell-mode (ac-flyspell-workaround) ;; Known Bug: flyspell-mode doesn't play nice with auto-complete-mode ;;(flyspell-mode) ;; Enable autoinsert feature to automagically insert (require 'autoinsert) ;; Built-in (auto-insert-mode) ;;; Adds hook to find-files-hook (setq auto-insert-directory "~/.emacs.d/templates/") ;;; Or use custom, *NOTE* Trailing slash important (setq auto-insert-query nil) ;;; If you don't want to be prompted before insertion ;; auto-insert options template and auto-completion (add-hook 'find-file-hooks 'auto-insert) (setq auto-insert-directory (concat (getenv "HOME") "/.emacs.d/templates/")) (setq auto-insert-alist '(("\\.c$" . ["c-template.c" auto-update-generic-template]) ("\\.\(cc\|cpp\)$" . ["cpp-template.c" auto-update-generic-template]) ("\\.php$" . ["php-template.php" auto-update-generic-template]) ("\\.rb$" . ["ruby-template.rb" auto-update-generic-template]) ("\\.lua$" . ["lua-template.lua" auto-update-generic-template]) ("\\.erl$" . ["erlang-template.erl" auto-update-generic-template]) ("\\.sh$" . ["shell-template.sh" auto-update-generic-template]) ("\\.rkt$" . ["racket-template.rkt" auto-update-generic-template]) ("\\.scm$" . ["scheme-template.scm" auto-update-generic-template]) ("\\.clj$" . ["clojure-template.clj" auto-update-generic-template]) ("\\.lisp$" . ["lisp-template.lisp" auto-update-generic-template]) ("\\.el$" . ["emacs-lisp-template.el" auto-update-generic-template]) ("\\.hs$" . ["haskell-template.hs" auto-update-generic-template]) ("\\.ml$" . ["ocaml-template.ml" auto-update-generic-template]) ("\\.py$" . ["python-template.py" auto-update-generic-template]))) (setq auto-insert 'other) (defun auto-update-generic-template () (save-excursion ;; Replace @!@FILENAME@!@ with file name sans suffix (while (search-forward "@!@FILENAME@!@" nil t) (save-restriction (narrow-to-region (match-beginning 0) (match-end 0)) (replace-match (file-name-sans-extension (file-name-nondirectory buffer-file-name)) t)))) (save-excursion ;; Replace @!@FILE@!@ with file name (while (search-forward "@!@FILE@!@" nil t) (save-restriction (narrow-to-region (match-beginning 0) (match-end 0)) (replace-match (file-name-nondirectory buffer-file-name) t)))) (save-excursion ;; replace @!@DATE@!@ with today's date (while (search-forward "@!@DATE@!@" nil t) (save-restriction (narrow-to-region (match-beginning 0) (match-end 0)) (replace-match "") (insert-date)))) (save-excursion ;; Replace @!@YEAR@!@ with the current year (while (search-forward "@!@YEAR@!@" nil t) (save-restriction (narrow-to-region (match-beginning 0) (match-end 0)) (replace-match (format-time-string "%Y" (current-time))))))) ;; Insert current date at cursor in the currently active buffer (defun insert-date () "Insert today's date into buffer" (interactive) (insert (format-time-string "%b %e, %Y" (current-time)))) (defun open-scratch-buffer () "Opens the scratch buffer; if none exists creates one." (interactive) (let ((scratch-buffer (get-buffer "*scratch*"))) (if (null scratch-buffer) (progn (get-buffer-create "*scratch*") (insert initial-scratch-message) (lisp-interaction-mode))) (switch-to-buffer "*scratch*"))) ;; Bind a key to grab a scratchpad (global-set-key "\C-x4s" 'open-scratch-buffer) ;; Bind a key to switch to eshell (global-set-key "\C-x4e" 'eshell) ;; Toggles windows split orientation of 2 adjecent windows ;; Thanks to http://www.emacswiki.org/cgi-bin/wiki?ToggleWindowSplit (defun toggle-window-split () (interactive) (if (= (count-windows) 2) (let* ((this-win-buffer (window-buffer)) (next-win-buffer (window-buffer (next-window))) (this-win-edges (window-edges (selected-window))) (next-win-edges (window-edges (next-window))) (this-win-2nd (not (and (<= (car this-win-edges) (car next-win-edges)) (<= (cadr this-win-edges) (cadr next-win-edges))))) (splitter (if (= (car this-win-edges) (car (window-edges (next-window)))) 'split-window-horizontally 'split-window-vertically))) (delete-other-windows) (let ((first-win (selected-window))) (funcall splitter) (if this-win-2nd (other-window 1)) (set-window-buffer (selected-window) this-win-buffer) (set-window-buffer (next-window) next-win-buffer) (select-window first-win) (if this-win-2nd (other-window 1)))))) ;; Assign keybinding to toggle split orientation of 2 adjacent windows (define-key ctl-x-4-map "t" 'toggle-window-split) ;; Force ediff sessions to run in the same frame (setq ediff-window-setup-function 'ediff-setup-windows-plain) ;; Remove menu-bar (menu-bar-mode -1) ;; Remove tool-bar (tool-bar-mode -1) ;; Remove scroll bars (scroll-bar-mode -1) ;; Stop startup screen (setq inhibit-startup-screen t) ;; Set some eshell options (setq eshell-scroll-to-bottom-on-input t) ;; *BROKEN* ;;(setq eshell-scroll-to-bottom-on-output t) ;; Commands that require a little more then a dumb-term (setq eshell-visual-commands '("vi" "screen" "top" "less" "more" "lynx" "ncftp" "vim" "ncmpcpp" "irssi" "mc" "alsamixer" "/usr/bin/sudo")) (defun eshell/find-file-ext (fp) "Finds a single file or a list of files and returns a list of their respective buffers" (interactive) (if (listp fp) (mapcar #'find-file fp) (list (find-file fp)))) (defun eshell/ff (fp &rest other-fps) "A FP is either a file path (relative or absolute) or a regexp which eshell converts to a list of stings (file paths) which match the regexp (likely using file-expand-widcards). eshell/ff takes one or more file paths and opens them in the current buffer returning a list consisting of lists of buffers opened by each respective FP argument." (interactive) (mapcar #'eshell/find-file-ext (cons fp other-fps))) (defun eshell/clear () "04Dec2001 - sailor, to clear the eshell buffer." (interactive) (let ((inhibit-read-only t)) (erase-buffer))) ;; (add-to-list 'load-path "~/.emacs.d/el-get/el-get") ;; *BROKEN*..can't connect to dbus for some reason? ;; ;; Setup el-get ;; (unless (require 'el-get nil t) ;; (with-current-buffer ;; (url-retrieve-synchronously ;; "https://raw.github.com/dimitri/el-get/master/el-get-install.el") ;; (end-of-buffer) ;; (eval-print-last-sexp))) ;; ;; Synchronize el-get ;; (el-get 'sync) (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. '(highlight-current-line-globally t nil (highlight-current-line)) '(highlight-current-line-ignore-regexp "Faces\\|Colors\\| \\*Mini\\|\\**\\*") '(magit-commit-signoff t) '(org-agenda-files (quote ("~/.org/tech/notes.org" "~/.org/todo/rekahsoft-mini-todo.org" "~/.org/todo/rekahsoft-todo.org" "~/.org/todo/general.org" "~/.org/todo/work.org"))) '(quack-default-program "racket") '(quack-fontify-style (quote plt)) '(quack-programs (quote ("mzscheme" "bigloo" "csi" "csi -hygienic" "gosh" "gracket" "gsi" "gsi ~~/syntax-case.scm -" "guile" "kawa" "mit-scheme" "racket" "racket -il typed/racket" "rs" "scheme" "scheme48" "scsh" "sisc" "stklos" "sxi"))) '(scroll-bar-mode nil) '(show-paren-mode t) '(w3m-content-type-alist (quote (("text/plain" "\\.\\(?:txt\\|tex\\|el\\)\\'" nil nil) ("text/html" "\\.s?html?\\'" ("conkeror" file) nil) ("text/sgml" "\\.sgml?\\'" nil "text/plain") ("text/xml" "\\.xml\\'" nil "text/plain") ("image/jpeg" "\\.jpe?g\\'" ("/usr/bin/display" file) nil) ("image/png" "\\.png\\'" ("/usr/bin/display" file) nil) ("image/gif" "\\.gif\\'" ("/usr/bin/display" file) nil) ("image/tiff" "\\.tif?f\\'" ("/usr/bin/display" file) nil) ("image/x-xwd" "\\.xwd\\'" ("/usr/bin/display" file) nil) ("image/x-xbm" "\\.xbm\\'" ("/usr/bin/display" file) nil) ("image/x-xpm" "\\.xpm\\'" ("/usr/bin/display" file) nil) ("image/x-bmp" "\\.bmp\\'" ("/usr/bin/display" file) nil) ("video/mpeg" "\\.mpe?g\\'" nil nil) ("video/quicktime" "\\.mov\\'" nil nil) ("application/dvi" "\\.dvi\\'" ("xdvi" file) nil) ("application/postscript" "\\.e?ps\\'" ("gs" file) nil) ("application/pdf" "\\.pdf\\'" nil nil) ("application/x-pdf" "\\.pdf\\'" nil nil) ("application/xml" "\\.xml\\'" nil w3m-detect-xml-type) ("application/rdf+xml" "\\.rdf\\'" nil "text/plain") ("application/rss+xml" "\\.rss\\'" nil "text/plain") ("application/xhtml+xml" nil nil "text/html"))))) (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. '(font-lock-function-name-face ((t (:foreground "mediumspringgreen" :weight bold :height 1.0)))) '(highlight-current-line-face ((t (:background "gray10")))))