aboutsummaryrefslogtreecommitdiff
path: root/config/emacs/emacs.d
diff options
context:
space:
mode:
authorKenny Ballou <kb@devnulllabs.io>2021-04-17 13:28:06 -0600
committerKenny Ballou <kb@devnulllabs.io>2021-04-17 17:11:17 -0600
commit2c3c358b04e49331722c2f85a913c36940a563a6 (patch)
treeb6573f0e7bb3f3eb5a028f1188132ecaf25b73cf /config/emacs/emacs.d
parent8d8ca4e1b5b57b8d0782a23b58956ea330b5a529 (diff)
downloaddotfiles-2c3c358b04e49331722c2f85a913c36940a563a6.tar.gz
dotfiles-2c3c358b04e49331722c2f85a913c36940a563a6.tar.xz
emacs: add astronomical library
Signed-off-by: Kenny Ballou <kb@devnulllabs.io>
Diffstat (limited to 'config/emacs/emacs.d')
-rw-r--r--config/emacs/emacs.d/init.el1
-rw-r--r--config/emacs/emacs.d/lisp/init-astronomical.el39
2 files changed, 40 insertions, 0 deletions
diff --git a/config/emacs/emacs.d/init.el b/config/emacs/emacs.d/init.el
index 99ab6b7a..a5c9bae6 100644
--- a/config/emacs/emacs.d/init.el
+++ b/config/emacs/emacs.d/init.el
@@ -130,6 +130,7 @@
(require 'init-ledger)
(require 'init-org)
(require 'init-mpd)
+(require 'init-astronomical)
;; PDF-tools
(require 'init-pdf-tools)
diff --git a/config/emacs/emacs.d/lisp/init-astronomical.el b/config/emacs/emacs.d/lisp/init-astronomical.el
new file mode 100644
index 00000000..3c977f57
--- /dev/null
+++ b/config/emacs/emacs.d/lisp/init-astronomical.el
@@ -0,0 +1,39 @@
+;;; init-astronomical --- astronomical emacs
+;;; Commentary:
+;;; https://orgmode.org/worg/org-hacks.html#org790bd5a
+;;; https://orgmode.org/worg/org-hacks.html#orgf1fe951
+;;; Code:
+
+(require 'cl-lib)
+(require 'lunar)
+(require 'solar)
+
+(setq lunar-phase-names
+ '("🌑 New Moon"
+ "🌓 First Quarter Moon"
+ "🌕 Full Moon"
+ "🌗 Last Quarter Moon"))
+
+(with-suppressed-warnings ((lexical date))
+ (defvar date))
+(defun kb/diary-lunar-phases ()
+ "Show lunar phase in Agenda Buffer."
+ (let* ((phase-list (lunar-phase-list (nth 0 date) (nth 2 date)))
+ (phase (cl-find-if (lambda (phase) (equal (car phase) date))
+ phase-list)))
+ (when phase
+ (concat (lunar-phase-name (nth 2 phase)) " "
+ (substring (nth 1 phase) 0 5)))))
+
+(defun kb/diary-solar-sunrise ()
+ "Show sunrise in Agenda Buffer."
+ (let ((sunrise (car (car (solar-sunrise-sunset date)))))
+ (concat "Sunrise " (solar-time-string sunrise nil))))
+
+(defun kb/diary-solar-sunset ()
+ "Show sunset in agenda buffer."
+ (let ((sunset (car (cadr (solar-sunrise-sunset date)))))
+ (concat "Sunset " (solar-time-string sunset nil))))
+
+(provide 'init-astronomical)
+;;; init-astronimical.el ends here