feat(emacs): Org agenda
This commit is contained in:
@@ -429,7 +429,7 @@ CLOSED: [2024-11-21 Thu 09:04]
|
||||
**** DONE variable pitch
|
||||
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
|
||||
|
||||
|
||||
@@ -184,6 +184,8 @@
|
||||
"C-d" #'syd-eshell-C-d)
|
||||
(:keymaps 'eshell-mode-map
|
||||
:states '(normal insert)
|
||||
"[ [" #'eshell-previous-prompt
|
||||
"] ]" #'eshell-next-prompt
|
||||
"C-j" #'eshell-next-matching-input-from-input
|
||||
"C-k" #'eshell-previous-matching-input-from-input)
|
||||
|
||||
|
||||
@@ -41,7 +41,7 @@ via an indirect buffer."
|
||||
|
||||
(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.
|
||||
|
||||
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
|
||||
"k" #'org-babel-remove-result
|
||||
"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
|
||||
: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)))) ""))
|
||||
:custom ((org-startup-folded 'content)
|
||||
(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!
|
||||
(org-id-locations-file (file-name-concat syd-cache-dir
|
||||
"org-id-locations"))
|
||||
@@ -190,7 +252,7 @@ See https://lists.gnu.org/archive/html/emacs-orgmode/2019-07/msg00081.html."
|
||||
"|"
|
||||
"DONE(d)" ; Task successfully completed
|
||||
"KILL(k)"))) ; Task was cancelled, aborted, or is no longer
|
||||
; applicable
|
||||
; applicable
|
||||
(org-todo-keyword-faces
|
||||
'(("[-]" . syd-org-todo-active)
|
||||
("STRT" . syd-org-todo-active)
|
||||
@@ -212,6 +274,8 @@ See https://lists.gnu.org/archive/html/emacs-orgmode/2019-07/msg00081.html."
|
||||
;; ol-rmail
|
||||
;; ol-eww
|
||||
))
|
||||
(syd-add-hook 'org-load-hook
|
||||
#'syd-org-init-popup-rules-h)
|
||||
:config
|
||||
(syd-add-hook 'org-mode-hook
|
||||
#'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
|
||||
"f" #'org-roam-node-find)
|
||||
|
||||
(general-def
|
||||
:keymaps 'syd-leader-open-map
|
||||
"A" #'org-agenda)
|
||||
|
||||
(defun syd-org--init-roam-keybinds ()
|
||||
(general-def
|
||||
:prefix-map 'syd-org-roam-mode-map)
|
||||
@@ -280,18 +348,23 @@ In case of failure, fail gracefully."
|
||||
(use-package evil-org
|
||||
:hook ((org-mode . evil-org-mode)
|
||||
(org-capture-mode . evil-insert-state))
|
||||
:straight (:type git :host github :repo "doomelpa/evil-org-mode")
|
||||
:init
|
||||
(defvar evil-org-retain-visual-state-on-shift t)
|
||||
(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
|
||||
;; :hook (org-agenda-mode . evil-org-agenda-mode)
|
||||
;; :config
|
||||
;; (evil-org-agenda-set-keys)
|
||||
;; ;; Stay away from my leader key!
|
||||
;; (evil-define-key* 'motion evil-org-agenda-mode-map
|
||||
;; (kbd syd-leader-key) nil))
|
||||
(use-package evil-org-agenda
|
||||
:hook (org-agenda-mode . evil-org-agenda-mode)
|
||||
:straight nil
|
||||
:config
|
||||
(evil-org-agenda-set-keys)
|
||||
;; Stay away from my leader key!
|
||||
(evil-define-key* 'motion evil-org-agenda-mode-map
|
||||
(kbd syd-leader-key) nil))
|
||||
|
||||
(use-package hide-mode-line
|
||||
:hook (org-mode . hide-mode-line-mode))
|
||||
@@ -303,9 +376,11 @@ In case of failure, fail gracefully."
|
||||
(?+ . ?➤)
|
||||
(?* . ?⋆))))
|
||||
:config
|
||||
;; Stars should use fixed-pitch font to align w/ `org-indent'.
|
||||
(custom-theme-set-faces
|
||||
'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)
|
||||
;;; syd-org.el ends here
|
||||
|
||||
Reference in New Issue
Block a user