]> git.donarmstrong.com Git - lib.git/blobdiff - emacs_el/configuration/don-configuration.org
re-enable eyebrowse
[lib.git] / emacs_el / configuration / don-configuration.org
index f3468a8c2ae9cd0c42f70d3108c188a644f0b4ae..d2b33c0bbb825fc97e0d985189fcb0eab026d4c8 100644 (file)
@@ -7,33 +7,68 @@
 #+BEGIN_SRC emacs-lisp
 (setq debug-on-event 'siguser2)
 #+END_SRC
-* Add library paths
-
+* Initial startup stuff
+** Disable startup screen
 #+BEGIN_SRC emacs-lisp
-  (add-to-list 'load-path '"~/lib/emacs_el/")
-  (add-to-list 'load-path '"~/lib/emacs_el/tiny-tools/lisp/tiny")
-  (add-to-list 'load-path '"~/lib/emacs_el/tiny-tools/lisp/other")
-  (add-to-list 'load-path '"~/lib/emacs_el/magit-annex")
+  (setq inhibit-startup-screen t)
+#+END_SRC
+** Disable cluter
+#+BEGIN_SRC emacs-lisp
+  ; (if (fboundp 'menu-bar-mode) (menu-bar-mode -1))
+  (if (fboundp 'tool-bar-mode) (tool-bar-mode -1))
+  (if (fboundp 'scroll-bar-mode) (scroll-bar-mode -1))
+#+END_SRC
+** Fullscreen
+#+BEGIN_SRC emacs-lisp
+  (setq frame-resize-pixelwise t)
+  (add-to-list 'default-frame-alist '(fullscreen . maximixed))
 #+END_SRC
-
 * Package management
 ** package repositories and package manager
+Borrowed from https://github.com/nilcons/emacs-use-package-fast/ to
+load  [[https://github.com/jwiegley/use-package/][use-package]] even faster
 #+BEGIN_SRC emacs-lisp
-  (require 'package)
+  (setq package-enable-at-startup nil)
+  (setq package--init-file-ensured t)
+  (eval-and-compile
+    (setq use-package-verbose (not (bound-and-true-p byte-compile-current-file))))
+  (mapc #'(lambda (add) (add-to-list 'load-path add))
+    (eval-when-compile
+      (package-initialize)
+      (unless (package-installed-p 'use-package)
+        (package-refresh-contents)
+        (package-install 'use-package))
+      (let ((package-user-dir-real (file-truename package-user-dir)))
+        ;; The reverse is necessary, because outside we mapc
+        ;; add-to-list element-by-element, which reverses.
+        (nreverse (apply #'nconc
+                 ;; Only keep package.el provided loadpaths.
+                 (mapcar #'(lambda (path)
+                     (if (string-prefix-p package-user-dir-real path)
+                         (list path)
+                       nil))
+                     load-path))))))
+
   (setq package-archives '(("gnu" . "https://elpa.gnu.org/packages/")
-                           ("melpa" . "https://melpa.org/packages/")
-                           ("org" . "http://orgmode.org/elpa/") ))
-#+END_SRC
-** [[https://github.com/jwiegley/use-package/][use-package]]
-#+BEGIN_SRC emacs-lisp
-  (package-initialize)
+               ("melpa" . "https://melpa.org/packages/")
+               ("org" . "http://orgmode.org/elpa/") ))
   (require 'use-package)
+  (require 'diminish)
+  (require 'bind-key)
 #+END_SRC
 ** Paradox
 #+BEGIN_SRC emacs-lisp
   (use-package paradox
     :ensure paradox
-  )
+    :commands (paradox-upgrade-packages paradox-list-packages)
+    :config (setq paradox-execute-asynchronously t)
+    )
+#+END_SRC
+* Add library paths
+
+#+BEGIN_SRC emacs-lisp
+  (add-to-list 'load-path '"~/lib/emacs_el/")
+  (add-to-list 'load-path '"~/lib/emacs_el/magit-annex")
 #+END_SRC
 * Disable custom-vars
 #+BEGIN_SRC emacs-lisp
     :ensure t
     :diminish flyspell-mode 🐝
     :config
-    (add-hook 'message-mode-hook 'turn-on-flyspell)
     (add-hook 'text-mode-hook 'turn-on-flyspell)
     (add-hook 'c-mode-common-hook 'flyspell-prog-mode)
     (add-hook 'cperl-mode-hook 'flyspell-prog-mode)
 ** Eyebrowse
 
 #+BEGIN_SRC emacs-lisp
-  ;; (use-package eyebrowse
-  ;;   :ensure t
-  ;;   :diminish eyebrowse-mode
-  ;;   :init (setq eyebrowse-keymap-prefix (kbd "C-c C-\\"))
-  ;;   :config (progn
-  ;;             (setq eyebrowse-wrap-around t)
-  ;;             (eyebrowse-mode t)
-  ;; 
-  ;;             (defun my/eyebrowse-new-window-config ()
-  ;;               (interactive)
-  ;;               (let ((done nil))
-  ;;                 (dotimes (i 10)
-  ;;                   ;; start at 1 run till 0
-  ;;                   (let ((j (mod (+ i 1) 10)))
-  ;;                     (when (and (not done)
-  ;;                                (not (eyebrowse--window-config-present-p j)))
-  ;;                       (eyebrowse-switch-to-window-config j)
-  ;;                       (call-interactively 'eyebrowse-rename-window-config2 j)
-  ;;                       (setq done t)
-  ;;                       ))
-  ;;                   )))
-  ;; 
-  ;;             ;; I don't use latex-preview-pane
-  ;;             ;; (require 'latex-preview-pane)
-  ;;             ;; (defun my/close-latex-preview-pane-before-eyebrowse-switch ()
-  ;;             ;;   ;; latex-preview-pane uses window-parameters which are
-  ;;             ;;   ;; not preserved by eyebrowse, so we close the preview
-  ;;             ;;   ;; pane before switching, it will be regenerated when we
-  ;;             ;;   ;; edit the TeX file.
-  ;;             ;;   (when (lpp/window-containing-preview)
-  ;;             ;;     (delete-window (lpp/window-containing-preview))))
-  ;; 
-  ;;             ;; (add-to-list 'eyebrowse-pre-window-switch-hook
-  ;;             ;;              #'my/close-latex-preview-pane-before-eyebrowse-switch)
-  ;; 
-  ;;             ;; (my/set-menu-key "["  #'my/eyebrowse-new-window-config)
-  ;;             ;; (my/set-menu-key ";"  #'eyebrowse-prev-window-config)
-  ;;             ;; (my/set-menu-key "'"  #'eyebrowse-next-window-config)
-  ;;             ;; (my/set-menu-key "]"  #'eyebrowse-close-window-config)
-  ;;             ;; (my/set-menu-key "\\" #'eyebrowse-rename-window-config)
-  ;;             )
-  ;;   )
+  (use-package eyebrowse
+    :ensure t
+    :diminish eyebrowse-mode
+    :init (setq eyebrowse-keymap-prefix (kbd "C-c e"))
+    :config (progn
+              (setq eyebrowse-wrap-around t)
+              (eyebrowse-mode t)
+
+              (defun my/eyebrowse-new-window-config ()
+                (interactive)
+                (let ((done nil))
+                  (dotimes (i 10)
+                    ;; start at 1 run till 0
+                    (let ((j (mod (+ i 1) 10)))
+                      (when (and (not done)
+                                 (not (eyebrowse--window-config-present-p j)))
+                        (eyebrowse-switch-to-window-config j)
+                        (call-interactively 'eyebrowse-rename-window-config2 j)
+                        (setq done t)
+                        ))
+                    )))
+
+              ;; I don't use latex-preview-pane
+              ;; (require 'latex-preview-pane)
+              ;; (defun my/close-latex-preview-pane-before-eyebrowse-switch ()
+              ;;   ;; latex-preview-pane uses window-parameters which are
+              ;;   ;; not preserved by eyebrowse, so we close the preview
+              ;;   ;; pane before switching, it will be regenerated when we
+              ;;   ;; edit the TeX file.
+              ;;   (when (lpp/window-containing-preview)
+              ;;     (delete-window (lpp/window-containing-preview))))
+
+              ;; (add-to-list 'eyebrowse-pre-window-switch-hook
+              ;;              #'my/close-latex-preview-pane-before-eyebrowse-switch)
+
+              ;; (my/set-menu-key "["  #'my/eyebrowse-new-window-config)
+              ;; (my/set-menu-key ";"  #'eyebrowse-prev-window-config)
+              ;; (my/set-menu-key "'"  #'eyebrowse-next-window-config)
+              ;; (my/set-menu-key "]"  #'eyebrowse-close-window-config)
+              ;; (my/set-menu-key "\\" #'eyebrowse-rename-window-config)
+              )
+    )
 #+END_SRC
 
 ** Window handling
@@ -500,7 +534,40 @@ value, scrolling continues until there is no more output.
                    ((equal arg 16) (helm-org-rifle-occur-agenda-files))
                    (t (helm-org-agenda-files-headings)))))))
 #+END_SRC
-
+*** Helm Google
+This can be used to link things pretty quickly if necessary
+#+BEGIN_SRC emacs-lisp
+  (use-package helm-google
+    :ensure t
+    :bind ("C-c h g" . helm-google)
+    :config
+    (progn (add-to-list 'helm-google-actions
+                        '("Copy URL" . (lambda (candidate)
+                                         (let ((url
+                                                (replace-regexp-in-string
+                                                 "https://.*q=\\(.*\\)\&sa=.*"
+                                                 "\\1" candidate)))
+                                           (kill-new url))))
+                        t
+                        )
+         
+           (add-to-list 'helm-google-actions
+                        '("Org Store Link" . (lambda (candidate)
+                                               (let ((title (car (split-string candidate "[\n]+")))
+                                                     (url
+                                                      (replace-regexp-in-string
+                                                       "https://.*q=\\(.*\\)\&sa=.*"
+                                                       "\\1" candidate)))
+                                                 (push (list url title) org-stored-links))))
+                        t)
+           ))
+#+END_SRC
+** Zap to char
+#+BEGIN_SRC emacs-lisp
+  (use-package avy-zap
+    :ensure t
+    :bind ("M-z" . avy-zap-up-to-char-dwim))
+#+END_SRC
 ** Hydra
 #+BEGIN_SRC emacs-lisp :tangle don-configuration.el
 (require 'don-hydra)
@@ -525,6 +592,17 @@ value, scrolling continues until there is no more output.
     (setq-default reftex-default-bibliography
                     '("~/projects/research/references.bib")))
 #+END_SRC
+** BibTex
+#+BEGIN_SRC emacs-lisp
+  (use-package bibtex
+    :config (setq bibtex-user-optional-fields
+                  (quote (("annote" "Personal annotation (ignored)")
+                          ("abstract" "")
+                  ("pmid" "")
+                  ("doi" ""))))
+    )
+
+#+END_SRC
 ** LaTeX
 #+BEGIN_SRC emacs-lisp
   (use-package tex
@@ -626,24 +704,12 @@ value, scrolling continues until there is no more output.
               ("fixme" "{"))
             )
       )
+    (setq font-latex-fontify-script nil)
+    (setq font-latex-fontify-sectioning (quote color))
+    (setq font-latex-script-display (quote (nil)))
   )
 
 #+END_SRC
-*** Org-Gcal
-#+BEGIN_SRC emacs-lisp
-  (use-package calfw
-    :ensure f
-    )
-  (use-package calfw-org
-    :ensure f
-    )
-  (use-package org-gcal
-    :ensure f
-    :config '((if (file-readable-p "~/.hide/org_gcal.el")
-                  (load-file "~/.hide/org_gcal.el"))
-              )
-    )
-#+END_SRC
 ** ESS
 #+BEGIN_SRC emacs-lisp
   (use-package ess
@@ -761,6 +827,79 @@ From http://julien.danjou.info/projects/emacs-packages#rainbow-mode, this colori
           '(("template-toolkit" . "\\.tmpl\\'")))
     )
 #+END_SRC
+* Email
+** Message 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)
+    )
+#+END_SRC
+** Mutt
+*** Message-mode
+#+BEGIN_SRC emacs-lisp
+  (use-package message
+
+    :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))
+    :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))))
+      )
+
+    (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)))
+
+    (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))))))
+
+    (setq mail-yank-prefix "> ")
+  )
+#+END_SRC
+*** Muttrc mode
+#+BEGIN_SRC emacs-lisp
+  (use-package muttrc-mode
+    :mode "muttngrc"
+    :mode "muttrc"
+  )
+
+#+END_SRC
+* Base emacs
+** Reverting buffers
+#+BEGIN_SRC emacs-lisp
+  (setq global-auto-revert-non-file-buffers t
+        global-auto-revert-ignore-modes '(pdf-view-mode)
+        auto-revert-verbose nil)
+  (global-auto-revert-mode 1)
+#+END_SRC
 * Org Mode
 ** Use-package and load things
 #+BEGIN_SRC emacs-lisp
@@ -771,11 +910,11 @@ From http://julien.danjou.info/projects/emacs-packages#rainbow-mode, this colori
 #+END_SRC
 ** Agenda Configuration
 #+BEGIN_SRC emacs-lisp
-  ;; The following lines are always needed. Choose your own keys.
-  (add-to-list 'auto-mode-alist '("\\.\\(org\\|org_archive\\|txt\\)$" . org-mode))
-  (global-set-key "\C-cl" 'org-store-link)
-  (global-set-key "\C-ca" 'org-agenda)
-  (global-set-key "\C-cb" 'org-iswitchb)
+  :mode ("\\.\\(org\\|org_archive\\|txt\\)\\'" . org-mode)
+  :bind (("C-c l"  . org-store-link)
+         ("C-c a"  . org-agenda)
+         ("C-c b"  . org-iswitchb))
+  :config
   (setq-default org-log-done 'time)
   (setq-default org-agenda-ndays 5)
 
@@ -872,7 +1011,6 @@ From http://julien.danjou.info/projects/emacs-packages#rainbow-mode, this colori
             "~/projects/org-notes/wildman.org"
             "~/projects/org-notes/uddin.org"
             "~/projects/org-notes/reviews.org"
-            "~/projects/org-notes/hpcbio.org"
             "~/org-mode/from-mobile.org"
             "~/projects/org-notes/fh.org")))
 
@@ -896,12 +1034,6 @@ From http://julien.danjou.info/projects/emacs-packages#rainbow-mode, this colori
       (write-file "/tmp/timeline.org")
       (org-agenda arg "L")))
   (define-key org-mode-map (kbd "C-c t") 'org-agenda-timeline-all)
-  ;; add automatic reminders for appointments
-  (defadvice  org-agenda-redo (after org-agenda-redo-add-appts)
-    "Pressing `r' on the agenda will also add appointments."
-    (progn 
-      (setq appt-time-msg-list nil)
-      (org-agenda-to-appt)))
 
 #+END_SRC
 ** General config
@@ -1673,6 +1805,64 @@ From http://julien.danjou.info/projects/emacs-packages#rainbow-mode, this colori
                  (min (1+ (match-end 0)) end)))
             (unless (bolp) (insert "\n"))))))))))))
 
+#+END_SRC
+** Org-Gcal
+#+BEGIN_SRC emacs-lisp
+  (use-package calfw
+    :ensure f
+    )
+  (use-package calfw-org
+    :ensure f
+    )
+  (use-package org-gcal
+    :ensure f
+    :config '((if (file-readable-p "~/.hide/org_gcal.el")
+                  (load-file "~/.hide/org_gcal.el"))
+              )
+    )
+#+END_SRC
+** appt integration
+#+BEGIN_SRC emacs-lisp
+  (use-package appt
+    :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)
+      (setq appt-time-msg-list nil)
+      (org-agenda-to-appt))
+    ;; add reminders when starting emacs
+    (my/org-agenda-to-appt)
+    ;; when rebuilding the agenda
+    (defadvice  org-agenda-redo (after org-agenda-redo-add-appts)
+      "Pressing `r' on the agenda will also add appointments."
+      (my/org-agenda-to-appt)
+      )
+    ;; when saving all org buffers
+    (defadvice org-save-all-org-buffers (after org-save-all-org-buffers-add-appts)
+      "Re-add appts after saving all org buffers"
+      (my/org-agenda-to-appt))
+    ;; 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))))
+      )
+    )
+
+
 #+END_SRC
 ** End use-package
 #+BEGIN_SRC emacs-lisp
@@ -1713,23 +1903,26 @@ From http://julien.danjou.info/projects/emacs-packages#rainbow-mode, this colori
   (global-unset-key "\M-g")
   (global-set-key (kbd "M-g l") 'goto-line)
 #+END_SRC
+* Debian
+** debian-changelog
+#+BEGIN_SRC emacs-lisp
+  (use-package debian-changelog
+    :mode "debian/changelog"
+    :config
+    (setq debian-changelog-mailing-address "don@debian.org")
+    (setq debian-changelog-full-name "Don Armstrong"))
+#+END_SRC
 * Misc (uncharacterized)
 #+BEGIN_SRC emacs-lisp
-  (setq bibtex-user-optional-fields (quote (("annote" "Personal annotation (ignored)") ("abstract" "") ("pmid" "") ("doi" ""))))
-  (setq calendar-latitude 40.11)
-  (setq calendar-longitude -88.24)
+  (setq calendar-latitude 38.6)
+  (setq calendar-longitude -121.5)
   (setq case-fold-search t)
   (setq confirm-kill-emacs (quote y-or-n-p))
   (setq cperl-lazy-help-time nil)
-  (setq debian-changelog-mailing-address "don@debian.org")
   (display-time)
   (setq display-time-24hr-format t)
   (setq display-time-day-and-date t)
   (display-time-mode 1)
-  (setq font-latex-fontify-script nil)
-  (setq font-latex-fontify-sectioning (quote color))
-  (setq font-latex-script-display (quote (nil)))
-  (global-auto-revert-mode 1)
   (global-font-lock-mode 1)
   (icomplete-mode 1)
   (setq log-edit-keep-buffer t)
@@ -1737,10 +1930,6 @@ From http://julien.danjou.info/projects/emacs-packages#rainbow-mode, this colori
   (setq markdown-enable-math t)
   (setq markdown-follow-wiki-link-on-enter nil)
   (setq mutt-alias-file-list (quote ("~/.mutt/aliases" "~/.mail_aliases")))
-  (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)
   (setq ps-footer-font-size (quote (8 . 10)))
   (setq ps-header-font-size (quote (8 . 10)))
   (setq ps-header-title-font-size (quote (10 . 10)))
@@ -1772,17 +1961,6 @@ From http://julien.danjou.info/projects/emacs-packages#rainbow-mode, this colori
 
   (require 'vcl-mode)
 
-  (require 'tex-site)
-  ;;(require 'psvn)
-  ;;(require 'ecasound)
-  ;;(require 'emacs-wiki)
-  (require 'bibtex)
-  (require 'post)
-  ;;(require 'fixme)
-  ; (require 'google-weather)
-  ; (require 'org-google-weather)
-  ; (setq-default org-google-weather-format "%i %c, [%l,%h] %s %C")
-  
   (global-set-key "\C-xp" 'server-edit)
 
   (setq-default auto-mode-alist (cons '("\.wml$" . 
@@ -1798,51 +1976,6 @@ From http://julien.danjou.info/projects/emacs-packages#rainbow-mode, this colori
   ;; tramp configuration
   (setq tramp-use-ssh-controlmaster-options nil)
 
-  ; mail configuration
-  (add-to-list 'auto-mode-alist '("muttng-[a-z0-9]+-[0-9]+-" . message-mode))
-  (add-to-list 'auto-mode-alist '("muttngrc" . muttrc-mode))
-
-  (add-to-list 'auto-mode-alist '("mutt-[a-z0-9]+-[0-9]+-" . message-mode))
-  (add-to-list 'auto-mode-alist '("muttrc" . muttrc-mode))
-  (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))))
-    (local-set-key (kbd "C-c C-a") 'my-post-attach-file)
-    )
-  (add-hook 'message-mode-hook 'my-message-mode-settings)
-
-  (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)))
-
-  (symbol-function 'my-post-attach-file)
-
-  (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))))))
-
-
-
-  (setq mail-yank-prefix "> ")
-
   ;; self-insert-command hack.
   ;;   Without this, "if<SP>" expands to
   ;;   if ( -!-) {
@@ -1888,8 +2021,6 @@ From http://julien.danjou.info/projects/emacs-packages#rainbow-mode, this colori
 
   (column-number-mode t)
 
-  (server-start)
-
   ; (require 'mode-compile)
 
   (defadvice server-process-filter (after post-mode-message first activate)
@@ -1983,11 +2114,6 @@ From http://julien.danjou.info/projects/emacs-packages#rainbow-mode, this colori
    (define-key cm-map "b" 'outline-backward-same-level)       ; Backward - same level
    (global-set-key "\M-o" cm-map)
 
-
-  ; debian stuff
-  (setq-default debian-changelog-mailing-address "don@debian.org")
-  (setq-default debian-changelog-full-name "Don Armstrong")
-
   ; ediff configuration
   ; don't use the multi-window configuration
   (setq ediff-window-setup-function 'ediff-setup-windows-plain)
@@ -2166,6 +2292,14 @@ From http://julien.danjou.info/projects/emacs-packages#rainbow-mode, this colori
 
 #+END_SRC
 
+* Server
+#+BEGIN_SRC emacs-lisp
+  (unless (server-running-p)
+  (server-start))
+#+END_SRC
+
+
+
 * END
 #+BEGIN_SRC emacs-lisp
   (provide 'don-configuration)