feat(emacs): Org agenda
This commit is contained in:
@@ -429,7 +429,7 @@ CLOSED: [2024-11-21 Thu 09:04]
|
|||||||
**** DONE variable pitch
|
**** DONE variable pitch
|
||||||
CLOSED: [2024-11-30 Sat 19:06]
|
CLOSED: [2024-11-30 Sat 19:06]
|
||||||
|
|
||||||
*** TODO jump to prev/next hole in haskell
|
*** TODO jump to prev/next hole in Haskell
|
||||||
|
|
||||||
*** make a bind for inserting hrules
|
*** make a bind for inserting hrules
|
||||||
|
|
||||||
|
|||||||
@@ -184,6 +184,8 @@
|
|||||||
"C-d" #'syd-eshell-C-d)
|
"C-d" #'syd-eshell-C-d)
|
||||||
(:keymaps 'eshell-mode-map
|
(:keymaps 'eshell-mode-map
|
||||||
:states '(normal insert)
|
:states '(normal insert)
|
||||||
|
"[ [" #'eshell-previous-prompt
|
||||||
|
"] ]" #'eshell-next-prompt
|
||||||
"C-j" #'eshell-next-matching-input-from-input
|
"C-j" #'eshell-next-matching-input-from-input
|
||||||
"C-k" #'eshell-previous-matching-input-from-input)
|
"C-k" #'eshell-previous-matching-input-from-input)
|
||||||
|
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ via an indirect buffer."
|
|||||||
|
|
||||||
(defvar recentf-exclude)
|
(defvar recentf-exclude)
|
||||||
|
|
||||||
(syd-defadvice syd-org--optimize-backgrounded-agenda-buffers-a (fn file)
|
(syd-defadvice syd-org--optimise-backgrounded-agenda-buffers-a (fn file)
|
||||||
"Disable `org-mode's startup processes for temporary agenda buffers.
|
"Disable `org-mode's startup processes for temporary agenda buffers.
|
||||||
|
|
||||||
Prevents recentf pollution as well. However, if the user tries to visit one of
|
Prevents recentf pollution as well. However, if the user tries to visit one of
|
||||||
@@ -149,7 +149,35 @@ See https://lists.gnu.org/archive/html/emacs-orgmode/2019-07/msg00081.html."
|
|||||||
"I" #'org-id-get-create
|
"I" #'org-id-get-create
|
||||||
"k" #'org-babel-remove-result
|
"k" #'org-babel-remove-result
|
||||||
"l" `("Links" . ,syd-org-mode-links-map)
|
"l" `("Links" . ,syd-org-mode-links-map)
|
||||||
"t" #'org-todo))
|
"t" #'org-todo)
|
||||||
|
(general-define-key
|
||||||
|
:keymaps 'org-agenda-mode-map
|
||||||
|
:states '(normal visual motion emacs insert)
|
||||||
|
:major-modes t
|
||||||
|
:prefix syd-localleader-key
|
||||||
|
:non-normal-prefix syd-alt-localleader-key
|
||||||
|
"t" #'org-agenda-todo
|
||||||
|
"r" #'org-agenda-refile
|
||||||
|
"q" #'org-agenda-set-tags
|
||||||
|
"p p" #'org-agenda-priority
|
||||||
|
"p u" #'org-agenda-priority-up
|
||||||
|
"p d" #'org-agenda-priority-down
|
||||||
|
"p k" #'org-agenda-priority-up
|
||||||
|
"p j" #'org-agenda-priority-down
|
||||||
|
"d d" #'org-agenda-deadline
|
||||||
|
"d s" #'org-agenda-schedule))
|
||||||
|
|
||||||
|
(defun syd-org-init-popup-rules-h ()
|
||||||
|
(set-popup-rules!
|
||||||
|
'(("^\\*Org Links" :slot -1 :vslot -1 :size 2 :ttl 0)
|
||||||
|
("^ ?\\*\\(?:Agenda Com\\|Calendar\\|Org Export Dispatcher\\)"
|
||||||
|
:slot -1 :vslot -1 :size #'+popup-shrink-to-fit :ttl 0)
|
||||||
|
("^\\*Org \\(?:Select\\|Attach\\|Table Edit\\)" :slot -1 :vslot -2 :ttl 0 :size 0.25)
|
||||||
|
("^\\*Edit Formulas\\*$" :slot -1 :vslot -2 :ttl 0 :size 0.25)
|
||||||
|
("^\\*Org Agenda" :ignore t)
|
||||||
|
("^\\*Org Src" :size 0.42 :quit nil :select t :autosave t :modeline t :ttl nil)
|
||||||
|
("^\\*Org-Babel")
|
||||||
|
("^\\*Capture\\*$\\|CAPTURE-.*$" :size 0.42 :quit nil :select t :autosave ignore))))
|
||||||
|
|
||||||
(use-package org
|
(use-package org
|
||||||
:defer-incrementally
|
:defer-incrementally
|
||||||
@@ -171,6 +199,40 @@ See https://lists.gnu.org/archive/html/emacs-orgmode/2019-07/msg00081.html."
|
|||||||
'((t (:inherit (bold error org-todo)))) ""))
|
'((t (:inherit (bold error org-todo)))) ""))
|
||||||
:custom ((org-startup-folded 'content)
|
:custom ((org-startup-folded 'content)
|
||||||
(org-directory "~/org")
|
(org-directory "~/org")
|
||||||
|
;; Let the agenda be comfortably mutable by storing the list of
|
||||||
|
;; agenda files in a file.
|
||||||
|
(org-agenda-files "~/org/agenda-files")
|
||||||
|
(org-agenda-deadline-faces '((1.001 . error)
|
||||||
|
(1.0 . org-warning)
|
||||||
|
(0.5 . org-upcoming-deadline)
|
||||||
|
(0.0 . org-upcoming-distant-deadline)))
|
||||||
|
(org-agenda-window-setup 'current-window)
|
||||||
|
(org-agenda-skip-unavailable-files t)
|
||||||
|
;; Shift the agenda to show the previous 3 days and the next 7 days
|
||||||
|
;; for better context on your week. The past is less important than
|
||||||
|
;; the future.
|
||||||
|
(org-agenda-span 10)
|
||||||
|
(org-agenda-start-on-weekday nil)
|
||||||
|
(org-agenda-start-day "-3d")
|
||||||
|
;; Optimize `org-agenda' by inhibiting extra work while opening
|
||||||
|
;; agenda buffers in the background. They'll be "restarted" if the
|
||||||
|
;; user switches to them anyway (see
|
||||||
|
;; `syd-org-exclude-agenda-buffers-from-workspace-h')
|
||||||
|
(org-agenda-inhibit-startup t)
|
||||||
|
;; Upon finishing a task, leave a timestamp.
|
||||||
|
(org-log-done 'time)
|
||||||
|
(org-indirect-buffer-display 'current-window)
|
||||||
|
;; Force a TeX-like syntax for {sub,super}-scripts. x^{blah blah}
|
||||||
|
(org-use-sub-superscripts '{})
|
||||||
|
(org-fontify-quote-and-verse-blocks t)
|
||||||
|
(org-enforce-todo-dependencies t)
|
||||||
|
(org-image-actual-width nil)
|
||||||
|
(org-imenu-depth 6)
|
||||||
|
;; Don't right-align tags.
|
||||||
|
(org-tags-column 0)
|
||||||
|
(org-priority-faces '((?A . error)
|
||||||
|
(?B . warning)
|
||||||
|
(?C . success)))
|
||||||
;; Stay out of my config dir!
|
;; Stay out of my config dir!
|
||||||
(org-id-locations-file (file-name-concat syd-cache-dir
|
(org-id-locations-file (file-name-concat syd-cache-dir
|
||||||
"org-id-locations"))
|
"org-id-locations"))
|
||||||
@@ -212,6 +274,8 @@ See https://lists.gnu.org/archive/html/emacs-orgmode/2019-07/msg00081.html."
|
|||||||
;; ol-rmail
|
;; ol-rmail
|
||||||
;; ol-eww
|
;; ol-eww
|
||||||
))
|
))
|
||||||
|
(syd-add-hook 'org-load-hook
|
||||||
|
#'syd-org-init-popup-rules-h)
|
||||||
:config
|
:config
|
||||||
(syd-add-hook 'org-mode-hook
|
(syd-add-hook 'org-mode-hook
|
||||||
#'org-indent-mode
|
#'org-indent-mode
|
||||||
@@ -229,6 +293,10 @@ See https://lists.gnu.org/archive/html/emacs-orgmode/2019-07/msg00081.html."
|
|||||||
:prefix-map 'syd-leader-notes-roam-map
|
:prefix-map 'syd-leader-notes-roam-map
|
||||||
"f" #'org-roam-node-find)
|
"f" #'org-roam-node-find)
|
||||||
|
|
||||||
|
(general-def
|
||||||
|
:keymaps 'syd-leader-open-map
|
||||||
|
"A" #'org-agenda)
|
||||||
|
|
||||||
(defun syd-org--init-roam-keybinds ()
|
(defun syd-org--init-roam-keybinds ()
|
||||||
(general-def
|
(general-def
|
||||||
:prefix-map 'syd-org-roam-mode-map)
|
:prefix-map 'syd-org-roam-mode-map)
|
||||||
@@ -280,18 +348,23 @@ In case of failure, fail gracefully."
|
|||||||
(use-package evil-org
|
(use-package evil-org
|
||||||
:hook ((org-mode . evil-org-mode)
|
:hook ((org-mode . evil-org-mode)
|
||||||
(org-capture-mode . evil-insert-state))
|
(org-capture-mode . evil-insert-state))
|
||||||
|
:straight (:type git :host github :repo "doomelpa/evil-org-mode")
|
||||||
:init
|
:init
|
||||||
(defvar evil-org-retain-visual-state-on-shift t)
|
(defvar evil-org-retain-visual-state-on-shift t)
|
||||||
(defvar evil-org-special-o/O '(table-row))
|
(defvar evil-org-special-o/O '(table-row))
|
||||||
(defvar evil-org-use-additional-insert t))
|
(defvar evil-org-use-additional-insert t)
|
||||||
|
:config
|
||||||
|
(add-hook 'evil-org-mode-hook #'evil-normalize-keymaps)
|
||||||
|
(evil-org-set-key-theme))
|
||||||
|
|
||||||
;; (use-package evil-org-agenda
|
(use-package evil-org-agenda
|
||||||
;; :hook (org-agenda-mode . evil-org-agenda-mode)
|
:hook (org-agenda-mode . evil-org-agenda-mode)
|
||||||
;; :config
|
:straight nil
|
||||||
;; (evil-org-agenda-set-keys)
|
:config
|
||||||
;; ;; Stay away from my leader key!
|
(evil-org-agenda-set-keys)
|
||||||
;; (evil-define-key* 'motion evil-org-agenda-mode-map
|
;; Stay away from my leader key!
|
||||||
;; (kbd syd-leader-key) nil))
|
(evil-define-key* 'motion evil-org-agenda-mode-map
|
||||||
|
(kbd syd-leader-key) nil))
|
||||||
|
|
||||||
(use-package hide-mode-line
|
(use-package hide-mode-line
|
||||||
:hook (org-mode . hide-mode-line-mode))
|
:hook (org-mode . hide-mode-line-mode))
|
||||||
@@ -303,9 +376,11 @@ In case of failure, fail gracefully."
|
|||||||
(?+ . ?➤)
|
(?+ . ?➤)
|
||||||
(?* . ?⋆))))
|
(?* . ?⋆))))
|
||||||
:config
|
:config
|
||||||
|
;; Stars should use fixed-pitch font to align w/ `org-indent'.
|
||||||
(custom-theme-set-faces
|
(custom-theme-set-faces
|
||||||
'user
|
'user
|
||||||
`(org-superstar-header-bullet ((t (:font ,syd-alt-fixed-pitch-font))))))
|
`(org-superstar-header-bullet ((t (:font ,syd-alt-fixed-pitch-font))))
|
||||||
|
`(org-superstar-item ((t (:font ,syd-alt-fixed-pitch-font))))))
|
||||||
|
|
||||||
(provide 'syd-org)
|
(provide 'syd-org)
|
||||||
;;; syd-org.el ends here
|
;;; syd-org.el ends here
|
||||||
|
|||||||
Reference in New Issue
Block a user