Files
dotfiles/.emacs.rc/org-mode-rc.el
2023-10-11 21:51:24 +02:00

69 lines
2.2 KiB
EmacsLisp
Executable File

(global-set-key (kbd "C-x a") 'org-agenda)
(global-set-key (kbd "C-c C-x j") #'org-clock-jump-to-current-clock)
(setq org-agenda-files (list "~/Documents/Agenda/"))
(setq org-export-backends '(md))
(defun rc/org-increment-move-counter ()
(interactive)
(defun default (x d)
(if x x d))
(let* ((point (point))
(move-counter-name "MOVE_COUNTER")
(move-counter-value (-> (org-entry-get point move-counter-name)
(default "0")
(string-to-number)
(1+))))
(org-entry-put point move-counter-name
(number-to-string move-counter-value)))
nil)
(defun rc/org-get-heading-name ()
(nth 4 (org-heading-components)))
(defun rc/org-kill-heading-name-save ()
(interactive)
(let ((heading-name (rc/org-get-heading-name)))
(kill-new heading-name)
(message "Kill \"%s\"" heading-name)))
(global-set-key (kbd "C-x p w") 'rc/org-kill-heading-name-save)
(setq org-agenda-custom-commands
'(("u" "Unscheduled" tags "+personal-SCHEDULED={.+}-DEADLINE={.+}/!+TODO"
((org-agenda-sorting-strategy '(priority-down))))
("p" "Personal" ((agenda "" ((org-agenda-tag-filter-preset (list "+personal"))))))
("w" "Work" ((agenda "" ((org-agenda-tag-filter-preset (list "+work"))))))
))
;;; org-cliplink
(rc/require 'org-cliplink)
(global-set-key (kbd "C-x p i") 'org-cliplink)
(defun rc/cliplink-task ()
(interactive)
(org-cliplink-retrieve-title
(substring-no-properties (current-kill 0))
'(lambda (url title)
(insert (if title
(concat "* TODO " title
"\n [[" url "][" title "]]")
(concat "* TODO " url
"\n [[" url "]]"))))))
(global-set-key (kbd "C-x p t") 'rc/cliplink-task)
;;; org-capture
(setq org-capture-templates
'(("p" "Capture task" entry (file "~/Documents/Agenda/Tasks.org")
"* TODO %?\n SCHEDULED: %t\n")
("K" "Cliplink capture task" entry (file "~/Documents/Agenda/Tasks.org")
"* TODO %(org-cliplink-capture) \n SCHEDULED: %t\n" :empty-lines 1)))
(define-key global-map "\C-cc" 'org-capture)