X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=emacs_el%2Fconfiguration%2Fdon-configuration.org;h=1f38321e01235d5bf9c946786f479f603fd61f1c;hb=7936c286d2b7b4f12d6af2824ec62d5186a32703;hp=069e260c4c02a5d58a177211894d2c87eedf7fa1;hpb=9898a8620eb112306c2eeea8d018902bc0e672b7;p=lib.git diff --git a/emacs_el/configuration/don-configuration.org b/emacs_el/configuration/don-configuration.org index 069e260..1f38321 100644 --- a/emacs_el/configuration/don-configuration.org +++ b/emacs_el/configuration/don-configuration.org @@ -809,7 +809,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]+-" @@ -878,10 +878,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) @@ -1002,12 +1002,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 @@ -1794,6 +1788,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