X-Git-Url: https://git.distorted.org.uk/~mdw/profile/blobdiff_plain/51603539e658892d93fc7691e0ce2772df6ed3c0..4120b2c6117642e02113e576a573bf8d60ec4c72:/dot/emacs diff --git a/dot/emacs b/dot/emacs index d4a313e..f1bcfbf 100644 --- a/dot/emacs +++ b/dot/emacs @@ -21,7 +21,18 @@ ;;; along with this program; if not, write to the Free Software ;;; Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA -(setq load-path (nconc load-path (list "~/lib/emacs"))) +(let ((path "~/lib/emacs/") + (pkgs (list "bbdb/" "multiple-cursors/" "rust-mode/")) + pkg) + (setq load-path (nconc load-path (list path))) + (while (setq pkg (pop pkgs)) + (let ((dir (concat path pkg))) + (if (file-exists-p dir) + (setq load-path (nconc load-path (list dir)))))) + (let ((boot (concat path "mdw-pkgs.el"))) + (if (file-exists-p boot) + (load boot)))) + (require 'dot-emacs) (require 'cl) @@ -88,14 +99,12 @@ ;; Multiple cursors. -(setq load-path (nconc load-path (list "~/lib/emacs/multiple-cursors/"))) (global-set-key [?\C-c ?r] 'mdw-multiple-cursors-keymap) (autoload 'mdw-multiple-cursors-keymap "mdw-multiple-cursors.el" "A keymap for Magnar Sveen's awesome multiple-cursors." nil 'keymap) ;; Rust mode. -(setq load-path (nconc load-path (list "~/lib/emacs/rust-mode/"))) (autoload 'rust-mode "rust-mode" nil t) (add-to-list 'auto-mode-alist '("\\.rs\\'" . rust-mode)) @@ -185,11 +194,13 @@ (or mdw-fast-startup (trap (bbdb-initialize 'gnus 'sendmail 'message))) -(setq bbdb-file "~/etc/state/bbdb" +(setq bbdb-file "~/etc/brain/bbdb" bbdb-north-american-phone-numbers-p nil - bbdb/news-auto-create-p (lambda () - (string-match "^nnimap\\+" - gnus-newsgroup-name)) + bbdb/news-auto-create-p + (lambda () + (let ((group gnus-newsgroup-name)) + (and (string-match "^nnimap\\+" group) + (not (string-match ":\\(crap\\|spam\\)\\." group))))) bbdb-user-mail-names (concat "^" "\\(" "\\(mdw\\|markw\\|root\\|postmaster\\)" @@ -205,6 +216,14 @@ "@\\(nationwide-communications\\.co\\.uk\\)") addr) (concat "nationwide@" (match-string 1 addr))) + ((string-match (concat "^[0-9]+@bugs\\." + "\\(" "debian\\.org" + "\\|" "distorted\\.org\\.uk" + "\\)") + addr) + (concat "submit@bugs." (match-string 1 addr))) + ((string-match "^\\([^@+]+\\)\\+[^@]*\\(@.*\\)$" addr) + (concat (match-string 1 addr) (match-string 2 addr))) (t addr)))) ;; Customization. @@ -361,7 +380,12 @@ ;;;-------------------------------------------------------------------------- ;;; Calendar configuration. -(setq diary-file "~/etc/state/diary") +(setq diary-file + (let ((main-diary "~/etc/brain/diary") + (index "~/etc/index.diary")) + (if (file-exists-p index) + index + main-diary))) ;; Trivial stuff for the sunrise/sunset calculations. @@ -385,13 +409,14 @@ '(24-hours ":" minutes (if time-zone " (") time-zone (if time-zone ")"))) -(setq diary-date-forms '((day "[-/]" month "[^-/0-9]") - (day " *" monthname "[ \t]*\\(\^M\\|\n\\)") - (backup day " *" monthname "\\W+\\<[^*0-9]") - (day "[-/]" month "[-/]" year "[^0-9]") - (day " *" monthname " *" year "[^0-9]") - (year "[-/]" month "[-/]" day "[^0-9]") - (dayname "\\W"))) +(setq diary-date-forms + '((day "[-/]" month "[^-/0-9]") + (day " *" monthname "[ \t]*\\(\^M\\|\n\\)") + (backup day " *" monthname "\\W+\\<\\([^*0-9]\\|[0-9]+[:aApP]\\)") + (day "[-/]" month "[-/]" year "[^0-9]") + (day " *" monthname " *" year "[^0-9]") + (year "[-/]" month "[-/]" day "[^0-9]") + (dayname "\\W"))) ;; Fancy diary handling. @@ -416,17 +441,24 @@ ;; Org-mode agenda. (setq org-agenda-include-diary t - org-tags-column -77) + org-directory "~/etc/brain.local/" + org-default-notes-file (concat org-directory "local.org") + org-tags-column -77 + org-agenda-align-tags-to-column org-tags-column) ;; Cosmetic stuff. -(setq calendar-view-diary-initially-flag t - calendar-view-holidays-initially-flag t) +(setq calendar-view-diary-initially-flag nil + calendar-view-holidays-initially-flag nil + calendar-mark-diary-entries-flag t) (setq display-time-24hr-format t) (display-time) (column-number-mode 1) -(trap (if window-system (calendar))) +(trap + (if window-system + (let ((calendar-view-diary-initially-flag t)) + (calendar)))) ;;;-------------------------------------------------------------------------- ;;; MailCrypt. @@ -463,7 +495,8 @@ ;; Default frame size. -(setq default-frame-alist +(setq frame-background-mode (if mdw-black-background 'dark 'light) + default-frame-alist `((width . ,(if (>= emacs-major-version 21) 77 78)) (height . 33) (vertical-scroll-bars . right) @@ -475,7 +508,7 @@ (tool-bar-lines . 0) (menu-bar-lines . 1) (cursor-color . "red") - (background-mode . ,(if mdw-black-background 'dark 'light))) + (background-mode . ,frame-background-mode)) initial-frame-alist `((width . ,(if (>= emacs-major-version 21) 77 78)) (menu-bar-lines . ,(if window-system 1 0))) @@ -521,7 +554,7 @@ (global-set-key [?\C-x ?3] 'mdw-split-window-horizontally) (global-set-key [?\M-#] 'calc-dispatch) (global-set-key [?\C-x ?/] 'auto-fill-mode) - (global-set-key [?\C-x ?w ?d] 'mdw-divvy-window) + (global-set-key [?\C-c ?w ?d] 'mdw-divvy-window) (global-set-key [insertchar] 'overwrite-mode) (global-set-key [?\C-x ?\C-n] 'skel-create-file) (global-set-key [?\C-x ?4 ?n] 'skel-create-file-other-window) @@ -559,7 +592,7 @@ (or mdw-fast-startup (trap (progn (org-remember-insinuate) - (global-set-key [?\C-c ?o ?r] 'org-remember)))) + (global-set-key [?\C-c ?g ?r] 'org-remember)))) ;; Minor mode listing