]> git.donarmstrong.com Git - lib.git/commitdiff
large rework of configuration to allow compilation
authorDon Armstrong <don@donarmstrong.com>
Wed, 17 Jan 2018 00:05:36 +0000 (16:05 -0800)
committerDon Armstrong <don@donarmstrong.com>
Wed, 17 Jan 2018 00:05:36 +0000 (16:05 -0800)
emacs_el/configuration/don-configuration.org

index d2b33c0bbb825fc97e0d985189fcb0eab026d4c8..abbd4cc5b94dfb0e3318fdcdda0d3473c43d7e6e 100644 (file)
@@ -128,6 +128,12 @@ load  [[https://github.com/jwiegley/use-package/][use-package]] even faster
     )
 
 #+END_SRC
+** Flymake
+#+begin_src emacs-lisp :tangle yes
+  (use-package flymake
+    :diminish "Φ")
+#+end_src
+
 ** Winnermode
 #+BEGIN_SRC emacs-lisp
   (winner-mode 1)
@@ -342,11 +348,9 @@ value, scrolling continues until there is no more output.
 #+BEGIN_SRC emacs-lisp
   ;; load tinyprocmail
   (use-package tinyprocmail
-    :ensure f
-    :config (with-library 'tinyprocmail
-              ;; (setq tinyprocmail--procmail-version "v3.22")
-              (add-hook 'tinyprocmail--load-hook 'tinyprocmail-install))
-  )
+    :load-path "~/lib/emacs_el/tiny-tools/lisp/tiny"
+    :mode (".procmailrc" . turn-on-tinyprocmail-mode)
+    )
 #+END_SRC
 
 ** Magit
@@ -356,25 +360,17 @@ value, scrolling continues until there is no more output.
     :bind (("C-x g" . magit-status)
            ("C-x C-g" . magit-status))
     :config
-    ;; don't verify where we are pushing
-    (setq magit-push-always-verify nil)
     ;; refine diffs always (hilight words)
     (setq magit-diff-refine-hunk nil)
-    ;; load magit-annex
-    (setq load-path
-          (append '("~/lib/emacs_el/magit-annex")
-                  load-path))
-    ;; load magit-vcsh
-    (setq load-path
-          (append '("~/lib/emacs_el/magit-vcsh")
-                  load-path))
     )
   (use-package magit-annex
     :ensure t
-  )
+    :load-path "~/lib/emacs_el/magit-annex/"
+    )
   (use-package magit-vcsh
     :ensure f ; currently not in melpa, so don't try to install
-  )
+    :load-path "~/lib/emacs_el/magit-vcsh/"
+    )
 #+END_SRC
 
 ** Perl
@@ -407,15 +403,60 @@ value, scrolling continues until there is no more output.
 
 ** Helm
 #+BEGIN_SRC emacs-lisp
+  (defun malb/helm-omni (&rest arg)
+    ;; just in case someone decides to pass an argument, helm-omni won't fail.
+    (interactive)
+    (unless helm-source-buffers-list
+      (setq helm-source-buffers-list
+            (helm-make-source "Buffers" 'helm-source-buffers)))
+    (helm-other-buffer
+     (append
+
+     (if (projectile-project-p)
+          '(helm-source-projectile-buffers-list
+            helm-source-buffers-list)
+        '(helm-source-buffers-list)) ;; list of all open buffers
+
+      `(((name . "Virtual Workspace")
+         (candidates . ,(--map (cons (eyebrowse-format-slot it) (car it))
+                               (eyebrowse--get 'window-configs)))
+         (action . (lambda (candidate)
+                     (eyebrowse-switch-to-window-config candidate)))))
+
+      (if (projectile-project-p)
+          '(helm-source-projectile-recentf-list
+            helm-source-recentf)
+        '(helm-source-recentf)) ;; all recent files
+
+      ;; always make some common files easily accessible
+      ;;'(((name . "Common Files")
+       ;;  (candidates . malb/common-file-targets)
+        ;; (action . (("Open" . (lambda (x) (find-file (eval x))))))))
+
+      '(helm-source-files-in-current-dir
+        helm-source-locate
+        helm-source-bookmarks
+        helm-source-buffer-not-found ;; ask to create a buffer otherwise
+        ))
+     "*Helm all the things*"))
   (use-package helm
-    :ensure t
+    :ensure helm
+    :diminish helm-mode
+    :bind (("M-x" . helm-M-x)
+           ("C-x C-f" . helm-find-files)
+           ("C-x b" . helm-buffers-list) ; malb/helm-omni)
+           ("C-x C-b" . helm-buffers-list) ; malb/helm-omni)
+           ("C-c <SPC>" . helm-all-mark-rings))
     :config
+    (require 'helm-config)
+    (require 'helm-for-files)
+    (require 'helm-bookmark)
+
     (helm-mode 1)
     (define-key global-map [remap find-file] 'helm-find-files)
     (define-key global-map [remap occur] 'helm-occur)
     (define-key global-map [remap list-buffers] 'helm-buffers-list)
     (define-key global-map [remap dabbrev-expand] 'helm-dabbrev)
-    (global-set-key (kbd "M-x") 'helm-M-x)
     (unless (boundp 'completion-in-region-function)
       (define-key lisp-interaction-mode-map [remap completion-at-point] 'helm-lisp-completion-at-point)
       (define-key emacs-lisp-mode-map       [remap completion-at-point] 'helm-lisp-completion-at-point))
@@ -450,48 +491,50 @@ value, scrolling continues until there is no more output.
   ;;; stolen from https://github.com/malb/emacs.d/blob/master/malb.org
   (defun malb/helm-swoop-pre-fill ()
     (thing-at-point 'symbol))
-  (setq malb/helm-swoop-ignore-major-mode '(dired-mode
-        paradox-menu-mode doc-view-mode pdf-view-mode
-        mu4e-headers-mode org-mode markdown-mode latex-mode
-        ein:notebook-multilang-mode))
+    (defvar malb/helm-swoop-ignore-major-mode "List of major modes to ignore for helm-swoop")
+    (setq malb/helm-swoop-ignore-major-mode '(dired-mode
+          paradox-menu-mode doc-view-mode pdf-view-mode
+          mu4e-headers-mode org-mode markdown-mode latex-mode
+          ein:notebook-multilang-mode))
 
-  (defun malb/swoop-or-search ()
-    (interactive)
-    (if (or (> (buffer-size) 1048576) ;; helm-swoop can be slow on big buffers
-            (memq major-mode malb/helm-swoop-ignore-major-mode))
-        (isearch-forward)
-      (helm-swoop)))
+    (defun malb/swoop-or-search ()
+      (interactive)
+      (if (or (> (buffer-size) 1048576) ;; helm-swoop can be slow on big buffers
+              (memq major-mode malb/helm-swoop-ignore-major-mode))
+          (isearch-forward)
+        (helm-swoop)))
+
+    (use-package helm-swoop
+      :ensure t
+      :commands helm-swoop
+      :bind (("C-c o" . helm-multi-swoop-org)
+             ("C-s" . malb/swoop-or-search)
+             ("C-M-s" . helm-multi-swoop-all))
+      :config (progn
+
+                (setq helm-swoop-pre-input-function  #'malb/helm-swoop-pre-fill
+                      helm-swoop-split-with-multiple-windows nil
+                      helm-swoop-split-direction #'split-window-horizontally
+                      helm-swoop-split-window-function 'helm-default-display-buffer
+                      helm-swoop-speed-or-color t)
+
+                ;; https://emacs.stackexchange.com/questions/28790/helm-swoop-how-to-make-it-behave-more-like-isearch
+                (defun malb/helm-swoop-C-s ()
+                  (interactive)
+                  (if (boundp 'helm-swoop-pattern)
+                      (if (equal helm-swoop-pattern "")
+                          (previous-history-element 1)
+                        (helm-next-line))
+                    (helm-next-line)))
+
+                (bind-key "C-S-s" #'helm-swoop-from-isearch isearch-mode-map)
+                (bind-key "C-S-s" #'helm-multi-swoop-all-from-helm-swoop helm-swoop-map)
+                (bind-key "C-r"   #'helm-previous-line helm-swoop-map)
+                (bind-key "C-s"   #'malb/helm-swoop-C-s helm-swoop-map)
+                (bind-key "C-r"   #'helm-previous-line helm-multi-swoop-map)
+                (bind-key "C-s"   #'malb/helm-swoop-C-s helm-multi-swoop-map))
+      )
 
-  (use-package helm-swoop
-    :ensure t
-    :bind (("C-c o" . helm-multi-swoop-org)
-           ("C-s" . malb/swoop-or-search)
-           ("C-M-s" . helm-multi-swoop-all))
-    :config (progn
-            
-              (setq helm-swoop-pre-input-function  #'malb/helm-swoop-pre-fill
-                    helm-swoop-split-with-multiple-windows nil
-                    helm-swoop-split-direction #'split-window-horizontally
-                    helm-swoop-split-window-function 'helm-default-display-buffer
-                    helm-swoop-speed-or-color t)
-
-              ;; https://emacs.stackexchange.com/questions/28790/helm-swoop-how-to-make-it-behave-more-like-isearch
-              (defun malb/helm-swoop-C-s ()
-                (interactive)
-                (if (boundp 'helm-swoop-pattern)
-                    (if (equal helm-swoop-pattern "")
-                        (previous-history-element 1)
-                      (helm-next-line))
-                  (helm-next-line)))
-
-              (bind-key "C-S-s" #'helm-swoop-from-isearch isearch-mode-map)
-              (bind-key "C-S-s" #'helm-multi-swoop-all-from-helm-swoop helm-swoop-map)
-              (bind-key "C-r"   #'helm-previous-line helm-swoop-map)
-              (bind-key "C-s"   #'malb/helm-swoop-C-s helm-swoop-map)
-              (bind-key "C-r"   #'helm-previous-line helm-multi-swoop-map)
-              (bind-key "C-s"   #'malb/helm-swoop-C-s helm-multi-swoop-map))
-    )
-  
 #+END_SRC
 *** Helm Ag
 #+BEGIN_SRC emacs-lisp
@@ -562,6 +605,47 @@ This can be used to link things pretty quickly if necessary
                         t)
            ))
 #+END_SRC
+
+** Projectile -- Project management
+#+begin_src emacs-lisp
+  (use-package projectile
+    :ensure t
+    :bind (("<f5>" . projectile-compile-project)
+           ("<f6>" . next-error))
+    :config (progn
+              (use-package magit :ensure t)
+              (require 'helm-projectile)
+              (helm-projectile-on)
+
+              (setq projectile-make-test-cmd "make check"
+                    projectile-switch-project-action 'helm-projectile
+                    projectile-mode-line  '(:eval (format "»{%s}" (projectile-project-name))))
+
+              (projectile-global-mode)))
+#+end_src
+
+*** helm integration
+#+begin_src emacs-lisp
+  (use-package helm-projectile
+    :ensure t
+    :config (progn
+              (defvar malb/helm-source-file-not-found
+                (helm-build-dummy-source
+                    "Create file"
+                  :action 'find-file))
+
+              (add-to-list
+               'helm-projectile-sources-list
+               malb/helm-source-file-not-found t)
+
+              (helm-delete-action-from-source
+               "Grep in projects `C-s'"
+               helm-source-projectile-projects)
+
+              (helm-add-action-to-source
+               "Grep in projects `C-s'"
+               'helm-do-ag helm-source-projectile-projects 4)))
+#+end_src
 ** Zap to char
 #+BEGIN_SRC emacs-lisp
   (use-package avy-zap
@@ -569,8 +653,72 @@ This can be used to link things pretty quickly if necessary
     :bind ("M-z" . avy-zap-up-to-char-dwim))
 #+END_SRC
 ** Hydra
-#+BEGIN_SRC emacs-lisp :tangle don-configuration.el
-(require 'don-hydra)
+#+BEGIN_SRC emacs-lisp
+  (use-package hydra
+    :bind (("C-c 2" . my/hydra-orgmodes/body)
+          ("C-c @" . my/hydra-orgmodes/body)
+          ("C-c #" . my/hydra-outline/body)
+          ("C-c 3" . my/hydra-outline/body)
+          )
+    :config
+    (defhydra my/hydra-orgmodes (:color blue :hint nil)
+    "
+  _n_: notes _c_: chaim _w_: wildman _o_: ool
+  _u_: uddin _s_: steve _r_: refile  _f_: fh    
+  _p_: read papers      _R_: paper notes
+  _h_: hpcbio
+  _q_: quit
+  _z_: quit
+  "
+    ("n" (find-file "~/projects/org-notes/notes.org"))
+    ("c" (find-file "~/projects/org-notes/chaim.org"))
+    ("w" (find-file "~/projects/org-notes/wildman.org"))
+    ("u" (find-file "~/projects/org-notes/uddin.org"))
+    ("o" (find-file "~/projects/org-notes/ool.org"))
+    ("f" (find-file "~/projects/org-notes/fh.org"))
+    ("s" (find-file "~/projects/org-notes/sndservers.org"))
+    ("r" (find-file "~/projects/org-notes/refile.org"))
+    ("p" (find-file "~/projects/research/papers_to_read.org"))
+    ("R" (find-file "~/projects/research/paper_notes.org"))
+    ("h" (find-file "~/projects/org-notes/hpcbio.org"))
+    ("q" nil "quit")
+    ("z" nil "quit")
+    )
+
+    ;; from https://github.com/abo-abo/hydra/wiki/Emacs
+    (defhydra my/hydra-outline (:color pink :hint nil)
+    "
+  ^Hide^             ^Show^           ^Move
+  ^^^^^^------------------------------------------------------
+  _q_: sublevels     _a_: all         _u_: up
+  _t_: body          _e_: entry       _n_: next visible
+  _o_: other         _i_: children    _p_: previous visible
+  _c_: entry         _k_: branches    _f_: forward same level
+  _l_: leaves        _s_: subtree     _b_: backward same level
+  _d_: subtree
+
+  "
+    ;; Hide
+    ("q" outline-hide-sublevels)    ; Hide everything but the top-level headings
+    ("t" outline-hide-body)         ; Hide everything but headings (all body lines)
+    ("o" outline-hide-other)        ; Hide other branches
+    ("c" outline-hide-entry)        ; Hide this entry's body
+    ("l" outline-hide-leaves)       ; Hide body lines in this entry and sub-entries
+    ("d" outline-hide-subtree)      ; Hide everything in this entry and sub-entries
+    ;; Show
+    ("a" outline-show-all)          ; Show (expand) everything
+    ("e" outline-show-entry)        ; Show this heading's body
+    ("i" outline-show-children)     ; Show this heading's immediate child sub-headings
+    ("k" outline-show-branches)     ; Show all sub-headings under this heading
+    ("s" outline-show-subtree)      ; Show (expand) everything in this heading & below
+    ;; Move
+    ("u" outline-up-heading)                ; Up
+    ("n" outline-next-visible-heading)      ; Next
+    ("p" outline-previous-visible-heading)  ; Previous
+    ("f" outline-forward-same-level)        ; Forward - same level
+    ("b" outline-backward-same-level)       ; Backward - same level
+    ("z" nil "leave"))
+  )
 #+END_SRC
 
 ** Tramp
@@ -827,59 +975,57 @@ From http://julien.danjou.info/projects/emacs-packages#rainbow-mode, this colori
           '(("template-toolkit" . "\\.tmpl\\'")))
     )
 #+END_SRC
-* Email
-** Message Mode
+** Spamassassin Mode
 #+BEGIN_SRC emacs-lisp
-  (use-package post
-    :config
-    (setq post-email-address "don@donarmstrong.com")
-    (setq post-kill-quoted-sig nil)
-    (setq post-mail-message "mutt\\(ng\\|\\)-[a-z0-9]+-[0-9]+-.*")
-    (setq post-uses-fill-mode nil)
+  (use-package spamassassin-mode
+    :defer
+    :ensure f
     )
 #+END_SRC
+* Email
 ** Mutt
 *** Message-mode
 #+BEGIN_SRC emacs-lisp
   (use-package message
-
+    :ensure f
+    :diminish "✉"
     :mode "muttng-[a-z0-9]+-[0-9]+-"
     :mode "mutt-[a-z0-9]+-[0-9]+-"
     :hook 'my/message-mode-settings
     :hook 'turn-on-flyspell
     :bind (:map message-mode-map
-                ("C-c C-a" . my/post-attach-file))
+               ("C-c C-a" . my/post-attach-file))
     :config 
     (defun my/message-mode-settings ()
       (font-lock-add-keywords nil
-                              '(("^[ \t]*>[ \t]*>[ \t]*>.*$"
-                                 (0 'message-multiply-quoted-text-face))
-                                ("^[ \t]*>[ \t]*>.*$"
-                                 (0 'message-double-quoted-text-face))))
+                             '(("^[ \t]*>[ \t]*>[ \t]*>.*$"
+                                (0 'message-multiply-quoted-text-face))
+                               ("^[ \t]*>[ \t]*>.*$"
+                                (0 'message-double-quoted-text-face))))
       )
 
     (defun my/post-attach-file ()
       "Prompt for an attachment."
       (interactive)
       (let ((file (read-file-name "Attach file: " nil nil t nil))
-            (description (string-read "Description: ")))
-        (my/header-attach-file file description)))
+           (description (string-read "Description: ")))
+       (my/header-attach-file file description)))
 
     (defun my/header-attach-file (file description)
       "Attach a FILE to the current message (works with Mutt).
     Argument DESCRIPTION MIME description."
       (interactive "fAttach file: \nsDescription: ")
       (when (> (length file) 0)
-        (save-excursion
-          (save-match-data
-            (save-restriction
-              (widen)
-              (goto-char (point-min))
-              (search-forward-regexp "^$")
-              (insert (concat "Attach: " (replace-regexp-in-string "\\([[:space:]\\]\\)" "\\\\\\1" (file-truename file)) " "
-                              description "\n"))
-              (message (concat "Attached '" file "'."))
-              (setq post-has-attachment t))))))
+       (save-excursion
+         (save-match-data
+           (save-restriction
+             (widen)
+             (goto-char (point-min))
+             (search-forward-regexp "^$")
+             (insert (concat "Attach: " (replace-regexp-in-string "\\([[:space:]\\]\\)" "\\\\\\1" (file-truename file)) " "
+                             description "\n"))
+             (message (concat "Attached '" file "'."))
+             (setq post-has-attachment t))))))
 
     (setq mail-yank-prefix "> ")
   )
@@ -1029,7 +1175,7 @@ From http://julien.danjou.info/projects/emacs-packages#rainbow-mode, this colori
     (with-temp-buffer
       (dolist (org-agenda-file org-agenda-files)
         (insert-file-contents org-agenda-file nil)
-        (end-of-buffer)
+        (goto-char (point-max))
         (newline))
       (write-file "/tmp/timeline.org")
       (org-agenda arg "L")))
@@ -1100,7 +1246,7 @@ From http://julien.danjou.info/projects/emacs-packages#rainbow-mode, this colori
   ; org mode configuration from http://doc.norang.ca/org-mode.html
   ;; Custom Key Bindings
   (global-set-key (kbd "<f12>") 'org-agenda)
-  (global-set-key (kbd "<f5>") 'bh/org-todo)
+  (global-set-key (kbd "<f5>") 'bh/org-todo)
   (global-set-key (kbd "<S-f5>") 'bh/widen)
   (global-set-key (kbd "<f7>") 'bh/set-truncate-lines)
   (global-set-key (kbd "<f8>") 'org-cycle-agenda-files)
@@ -1824,13 +1970,14 @@ From http://julien.danjou.info/projects/emacs-packages#rainbow-mode, this colori
 ** appt integration
 #+BEGIN_SRC emacs-lisp
   (use-package appt
+    :ensure f
     :config
     ;; Show notification 10 minutes before event
     (setq appt-message-warning-time 10)
     ;; Disable multiple reminders
     (setq appt-display-interval appt-message-warning-time)
     (setq appt-display-mode-line nil)
-  
+
     ;; add automatic reminders for appointments
     (defun my/org-agenda-to-appt ()
       (interactive)
@@ -1850,15 +1997,15 @@ From http://julien.danjou.info/projects/emacs-packages#rainbow-mode, this colori
     ;; Display appointments as a window manager notification
     (setq appt-disp-window-function 'my/appt-display)
     (setq appt-delete-window-function (lambda () t))
-  
+
     (setq my/appt-notification-app (concat (getenv "HOME") "/bin/appt_notification"))
-  
+
     (defun my/appt-display (min-to-app new-time msg)
       (if (atom min-to-app)
       (start-process "my/appt-notification-app" nil my/appt-notification-app min-to-app msg)
     (dolist (i (number-sequence 0 (1- (length min-to-app))))
       (start-process "my/appt-notification-app" nil my/appt-notification-app
-                     (nth i min-to-app) (nth i msg))))
+                    (nth i min-to-app) (nth i msg))))
       )
     )
 
@@ -1869,35 +2016,6 @@ From http://julien.danjou.info/projects/emacs-packages#rainbow-mode, this colori
   )
 #+END_SRC
 * Keybindings
-** Override other things
-#+BEGIN_SRC emacs-lisp
-  ; apparently things like to step on C-;, so we'll use a hack from
-  ; http://stackoverflow.com/questions/683425/globally-override-key-binding-in-emacs/5340797#5340797 to fix this
-
-  (defvar my-keys-minor-mode-map (make-keymap) "my-keys-minor-mode keymap.")
-
-  ; use mc everywhere
-  (define-key my-keys-minor-mode-map (kbd "C-;") 'mc/mark-all-dwim)
-  ;; use outline mode keybindings everywhere
-  ;; (define-key my-keys-minor-mode-map (kbd "C-;") 'my/mydra-outline/body)
-
-  (define-minor-mode my-keys-minor-mode
-    "A minor mode so that my key settings override annoying major modes."
-    t " my-keys" 'my-keys-minor-mode-map)
-
-  (my-keys-minor-mode 1)
-  (defun my-minibuffer-setup-hook ()
-    (my-keys-minor-mode 0))
-
-  (add-hook 'minibuffer-setup-hook 'my-minibuffer-setup-hook)
-  (defadvice load (after give-my-keybindings-priority)
-    "Try to ensure that my keybindings always have priority."
-    (if (not (eq (car (car minor-mode-map-alist)) 'my-keys-minor-mode))
-        (let ((mykeys (assq 'my-keys-minor-mode minor-mode-map-alist)))
-          (assq-delete-all 'my-keys-minor-mode minor-mode-map-alist)
-          (add-to-list 'minor-mode-map-alist mykeys))))
-  (ad-activate 'load)
-#+END_SRC
 ** Goto line
 #+BEGIN_SRC emacs-lisp
   (global-unset-key "\M-g")
@@ -1907,6 +2025,7 @@ From http://julien.danjou.info/projects/emacs-packages#rainbow-mode, this colori
 ** debian-changelog
 #+BEGIN_SRC emacs-lisp
   (use-package debian-changelog
+    :ensure f
     :mode "debian/changelog"
     :config
     (setq debian-changelog-mailing-address "don@debian.org")
@@ -1976,18 +2095,6 @@ From http://julien.danjou.info/projects/emacs-packages#rainbow-mode, this colori
   ;; tramp configuration
   (setq tramp-use-ssh-controlmaster-options nil)
 
-  ;; self-insert-command hack.
-  ;;   Without this, "if<SP>" expands to
-  ;;   if ( -!-) {
-  ;;   }
-  ;;   which really should be,
-  ;;   if (-!-) {
-  ;;   }
-
-
-
-  ;(load-library "php-mode")
-
   (setq-default c-indent-level 4)
   (setq-default c-brace-imaginary-offset 0)
   (setq-default c-brace-offset -4)
@@ -2020,30 +2127,7 @@ From http://julien.danjou.info/projects/emacs-packages#rainbow-mode, this colori
     )
 
   (column-number-mode t)
-
-  ; (require 'mode-compile)
-
-  (defadvice server-process-filter (after post-mode-message first activate)
-    "If the buffer is in post mode, overwrite the server-edit
-      message with a post-save-current-buffer-and-exit message."
-    (if (eq major-mode 'post-mode)
-        (message
-         (substitute-command-keys "Type \\[describe-mode] for help composing; \\[post-save-current-buffer-and-exit] when done."))))
-                      ; This is also needed to see the magic message.  Set to a higher
-                      ; number if you have a faster computer or read slower than me.
-  '(font-lock-verbose 1000)
-  ;(setq-default server-temp-file-regexp "mutt\(-\|ng-\)")
-  ; (add-hook 'server-switch-hook 
-  ;     (function (lambda()
-  ;             (cond ((string-match "Post" mode-name)
-  ;                (post-goto-body)))
-  ;             set-buffer-file-coding-system 'utf-8
-  ;             )))
-  ; 
-
-  (add-hook 'post-mode-hook
-        (auto-fill-mode nil)
-        )
   ; abbrev mode settings
   ; load abbreviations from 
   (setq abbrev-file-name       
@@ -2056,20 +2140,6 @@ From http://julien.danjou.info/projects/emacs-packages#rainbow-mode, this colori
   ; for now, use abbrev mode everywhere
   (setq default-abbrev-mode t)
 
-
-  (defun insert-function-documentation ()
-    "Insert function documentation"
-    (interactive)
-    (insert-file-contents "/home/don/lib/templates/perl_function_documentation" nil))
-  (global-set-key "\M-f" 'insert-function-documentation)
-
-  (eval-after-load "lilypond-mode" 
-    '(progn
-       (load-library "lyqi-mode")
-       (define-key LilyPond-mode-map "\C-cq" 'lyqi-mode)))
-
-  (autoload 'spamassassin-mode "spamassassin-mode" nil t)
-
   (desktop-load-default)
   (desktop-read)
   '(icomplete-mode on)
@@ -2094,18 +2164,18 @@ From http://julien.danjou.info/projects/emacs-packages#rainbow-mode, this colori
    ; Outline-minor-mode key map
    (define-prefix-command 'cm-map nil "Outline-")
    ; HIDE
-   (define-key cm-map "q" 'hide-sublevels)    ; Hide everything but the top-level headings
-   (define-key cm-map "t" 'hide-body)         ; Hide everything but headings (all body lines)
-   (define-key cm-map "o" 'hide-other)        ; Hide other branches
-   (define-key cm-map "c" 'hide-entry)        ; Hide this entry's body
-   (define-key cm-map "l" 'hide-leaves)       ; Hide body lines in this entry and sub-entries
-   (define-key cm-map "d" 'hide-subtree)      ; Hide everything in this entry and sub-entries
+   (define-key cm-map "q" 'outline-hide-sublevels)    ; Hide everything but the top-level headings
+   (define-key cm-map "t" 'outline-hide-body)         ; Hide everything but headings (all body lines)
+   (define-key cm-map "o" 'outline-hide-other)        ; Hide other branches
+   (define-key cm-map "c" 'outline-hide-entry)        ; Hide this entry's body
+   (define-key cm-map "l" 'outline-hide-leaves)       ; Hide body lines in this entry and sub-entries
+   (define-key cm-map "d" 'outline-hide-subtree)      ; Hide everything in this entry and sub-entries
    ; SHOW
-   (define-key cm-map "a" 'show-all)          ; Show (expand) everything
-   (define-key cm-map "e" 'show-entry)        ; Show this heading's body
-   (define-key cm-map "i" 'show-children)     ; Show this heading's immediate child sub-headings
-   (define-key cm-map "k" 'show-branches)     ; Show all sub-headings under this heading
-   (define-key cm-map "s" 'show-subtree)      ; Show (expand) everything in this heading & below
+   (define-key cm-map "a" 'outline-show-all)          ; Show (expand) everything
+   (define-key cm-map "e" 'outline-show-entry)        ; Show this heading's body
+   (define-key cm-map "i" 'outline-show-children)     ; Show this heading's immediate child sub-headings
+   (define-key cm-map "k" 'outline-show-branches)     ; Show all sub-headings under this heading
+   (define-key cm-map "s" 'outline-show-subtree)      ; Show (expand) everything in this heading & below
    ; MOVE
    (define-key cm-map "u" 'outline-up-heading)                ; Up
    (define-key cm-map "n" 'outline-next-visible-heading)      ; Next
@@ -2133,22 +2203,6 @@ From http://julien.danjou.info/projects/emacs-packages#rainbow-mode, this colori
   (setq mweb-filename-extensions '("php" "htm" "html" "ctp" "phtml" "php4" "php5"))
   (multi-web-global-mode 1)
 
-  ;;; alias the new `flymake-report-status-slim' to
-  ;;; `flymake-report-status'
-  (defalias 'flymake-report-status 'flymake-report-status-slim)
-  (defun flymake-report-status-slim (e-w &optional status)
-    "Show \"slim\" flymake status in mode line."
-    (when e-w
-      (setq flymake-mode-line-e-w e-w))
-    (when status
-      (setq flymake-mode-line-status status))
-    (let* ((mode-line " Φ"))
-      (when (> (length flymake-mode-line-e-w) 0)
-        (setq mode-line (concat mode-line ":" flymake-mode-line-e-w)))
-      (setq mode-line (concat mode-line flymake-mode-line-status))
-      (setq flymake-mode-line mode-line)
-      (force-mode-line-update)))
-
   ; load sql-indent when sql is loaded
   (eval-after-load "sql"
     '(load-library "sql-indent"))
@@ -2248,11 +2302,6 @@ From http://julien.danjou.info/projects/emacs-packages#rainbow-mode, this colori
       )
   ; (add-hook 'tty-setup-hook 'fix-up-tmux-keys)
 
-  ; procmailmode configuration
-  (load "procmail_mode")
-
-  (load "mode-line-cleaner")
-
   (defadvice ask-user-about-supersession-threat (around ask-user-about-supersession-threat-if-necessary)
     "Call ask-user-about-supersession-threat only if the buffer is actually obsolete."
     (if (or (buffer-modified-p)
@@ -2264,30 +2313,6 @@ From http://julien.danjou.info/projects/emacs-packages#rainbow-mode, this colori
       (not-modified)))
   (ad-activate 'ask-user-about-supersession-threat)
 
-  ; apparently things like to step on C-;, so we'll use a hack from
-  ; http://stackoverflow.com/questions/683425/globally-override-key-binding-in-emacs/5340797#5340797 to fix this
-
-  (defvar my-keys-minor-mode-map (make-keymap) "my-keys-minor-mode keymap.")
-
-  ; use iedit everywhere
-  (define-key my-keys-minor-mode-map (kbd "C-;") 'mc/mark-all-dwim)
-
-  (define-minor-mode my-keys-minor-mode
-    "A minor mode so that my key settings override annoying major modes."
-    t " my-keys" 'my-keys-minor-mode-map)
-
-  (my-keys-minor-mode 1)
-  (defun my-minibuffer-setup-hook ()
-    (my-keys-minor-mode 0))
-
-  (add-hook 'minibuffer-setup-hook 'my-minibuffer-setup-hook)
-  (defadvice load (after give-my-keybindings-priority)
-    "Try to ensure that my keybindings always have priority."
-    (if (not (eq (car (car minor-mode-map-alist)) 'my-keys-minor-mode))
-        (let ((mykeys (assq 'my-keys-minor-mode minor-mode-map-alist)))
-          (assq-delete-all 'my-keys-minor-mode minor-mode-map-alist)
-          (add-to-list 'minor-mode-map-alist mykeys))))
-  (ad-activate 'load)
   (global-set-key "\M- " 'hippie-expand)
 
 #+END_SRC