X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=emacs_el%2Fconfiguration%2Fdon-configuration.org;h=5e63115dc830f1ce340e8657f624cc4bae3951c0;hb=794cf3ff5bc1f03cfebe7ba16a37a6b5757a2ad9;hp=5ce8115e92682b1d801970685562dbd0cb17e785;hpb=6657e3262f326180e3a97b139f02992e1dbd9c57;p=lib.git diff --git a/emacs_el/configuration/don-configuration.org b/emacs_el/configuration/don-configuration.org index 5ce8115..5e63115 100644 --- a/emacs_el/configuration/don-configuration.org +++ b/emacs_el/configuration/don-configuration.org @@ -18,8 +18,31 @@ * Package management ** package repositories and package manager -#+BEGIN_SRC emacs-lisp - (require 'package) +Borrowed from https://github.com/nilcons/emacs-use-package-fast/ to +load use-package even faster +#+BEGIN_SRC emacs-lisp + (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)) + (setq use-package-always-ensure t) + (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/") )) @@ -27,10 +50,11 @@ ** [[https://github.com/jwiegley/use-package/][use-package]] #+BEGIN_SRC emacs-lisp (package-initialize) - (condition-case nil - (require 'use-package) - (progn (package-install 'use-package) - (require 'use-package))) + (eval-when-compile + (unless (package-installed-p 'use-package) + (package-refresh-contents) + (package-install 'use-package)) + (require 'use-package)) #+END_SRC ** Paradox #+BEGIN_SRC emacs-lisp @@ -809,7 +833,7 @@ From http://julien.danjou.info/projects/emacs-packages#rainbow-mode, this colori ** Mutt *** Message-mode #+BEGIN_SRC emacs-lisp - (use-package message-mode + (use-package message :mode "muttng-[a-z0-9]+-[0-9]+-" :mode "mutt-[a-z0-9]+-[0-9]+-" @@ -860,6 +884,14 @@ From http://julien.danjou.info/projects/emacs-packages#rainbow-mode, this colori ) #+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 @@ -870,10 +902,10 @@ From http://julien.danjou.info/projects/emacs-packages#rainbow-mode, this colori #+END_SRC ** Agenda Configuration #+BEGIN_SRC emacs-lisp - :mode "\\.\\(org\\|org_archive\\|txt\\)$" + :mode ("\\.\\(org\\|org_archive\\|txt\\)\\'" . org-mode) :bind (("C-c l" . org-store-link) ("C-c a" . org-agenda) - ("C-c b" . org-iswitchb) + ("C-c b" . org-iswitchb)) :config (setq-default org-log-done 'time) (setq-default org-agenda-ndays 5) @@ -994,12 +1026,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 @@ -1786,6 +1812,49 @@ From http://julien.danjou.info/projects/emacs-packages#rainbow-mode, this colori (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 @@ -1826,19 +1895,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 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) - (global-auto-revert-mode 1) (global-font-lock-mode 1) (icomplete-mode 1) (setq log-edit-keep-buffer t) @@ -2030,11 +2106,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)