aboutsummaryrefslogtreecommitdiff
path: root/.emacs.d/rul-lisp/packages/rul-org.el
diff options
context:
space:
mode:
Diffstat (limited to '.emacs.d/rul-lisp/packages/rul-org.el')
-rw-r--r--.emacs.d/rul-lisp/packages/rul-org.el103
1 files changed, 65 insertions, 38 deletions
diff --git a/.emacs.d/rul-lisp/packages/rul-org.el b/.emacs.d/rul-lisp/packages/rul-org.el
index d076948..979fdab 100644
--- a/.emacs.d/rul-lisp/packages/rul-org.el
+++ b/.emacs.d/rul-lisp/packages/rul-org.el
@@ -1,24 +1,36 @@
-;; Debian packages: elpa-org
-;; Elpa packages: org-modern
+;;; rul-org.el --- Org configuration
(require 'org)
(require 'org-capture)
(require 'org-protocol)
(require 'org-habit)
-(require 'rul-config-org)
-
(require 'rul-org-agenda)
-(require 'rul-org-journal)
+(setq org-attach-use-inheritance t)
(setq org-cycle-separator-lines 0)
-(setq org-startup-indented t)
(setq org-hide-leading-stars nil)
+(setq org-startup-indented t)
+(setq org-edit-src-content-indentation 0)
(use-package org-modern :ensure t)
-(use-package org-pomodoro :ensure t)
+(use-package org-pomodoro
+ :ensure t
+ :config
+ (defun rul/disable-notifications ()
+ "Disable GNOME notifications."
+ (shell-command "gsettings set org.gnome.desktop.notifications show-banners false"))
+
+ (defun rul/enable-notifications ()
+ "Enable GNOME notifications."
+ (shell-command "gsettings set org.gnome.desktop.notifications show-banners true"))
-(add-hook 'org-mode-hook 'turn-off-auto-fill)
-(add-hook 'auto-save-hook 'org-save-all-org-buffers)
+ ;; Add hooks for Pomodoro start and finish
+ (add-hook 'org-pomodoro-started-hook #'rul/disable-notifications)
+ (add-hook 'org-pomodoro-finished-hook #'rul/enable-notifications)
+ (add-hook 'org-pomodoro-killed-hook #'rul/enable-notifications))
+
+;; (add-hook 'org-mode-hook 'turn-off-auto-fill)
+;; (add-hook 'auto-save-hook 'org-save-all-org-buffers)
(add-hook 'org-mode-hook 'visual-line-mode)
(use-package org-download
@@ -39,6 +51,11 @@
(global-set-key (kbd "C-c c") #'org-capture)
(global-set-key (kbd "C-c s") #'org-schedule)
+(global-set-key (kbd "<f6>") 'org-clock-goto)
+(global-set-key (kbd "<f9>") 'org-clock-in-last)
+(global-set-key (kbd "<f10>") 'org-clock-out)
+(global-set-key (kbd "<f12>") 'org-agenda)
+
;; ORG STATES ;;
(setq org-todo-keywords
(quote ((sequence "TODO(t)" "MAYBE(m)" "NEXT(n)" "|" "DONE(d)")
@@ -59,16 +76,16 @@
(setq org-log-done (quote time))
(setq org-log-redeadline (quote time))
(setq org-log-reschedule (quote time))
+(setq org-log-into-drawer t)
;; CAPTURE ;;
-(setq org-default-notes-file org-refile-path)
(setq org-capture-templates
(quote
(
("w" "Todo" entry
(file+headline org-refile-path "Tasks")
- "* TODO "
+ "* TODO %?"
:empty-lines 1)
("m"
@@ -84,39 +101,14 @@
("L" "Web Link" entry
(file+headline org-refile-path "Read later")
- "* %?[[%:link][%:description]] %(progn (setq rul/delete-frame-after-capture 1) \"\")\n %:initial\n \nCaptured On: %U"
+ "* %?[[%:link][%:description]]\n %:initial\n \nCaptured On: %U"
)
("l" "Web Link with Selection" entry
(file+headline org-refile-path "Read later")
- "* [[%:link][%:description]] %(progn (setq rul/delete-frame-after-capture 1) \"\")\n %:initial\n \nCaptured On: %U")
-
+ "* [[%:link][%:description]]\n %:initial\n \nCaptured On: %U")
)))
-(defvar rul/delete-frame-after-capture 0 "Whether to delete the last frame after the current capture")
-
-(defun rul/delete-frame-if-necessary ()
- "Delete the last frame if necessary."
- (cond
- ((= rul/delete-frame-after-capture 0) nil)
- ((> rul/delete-frame-after-capture 1)
- (setq rul/delete-frame-after-capture (- rul/delete-frame-after-capture 1)))
- (t
- (setq rul/delete-frame-after-capture 0)
- (delete-frame))))
-
-(defun rul/org-capture-before ()
- "Function to run before org capture."
- (setq rul/delete-frame-after-capture (1+ rul/delete-frame-after-capture)))
-
-(defun rul/org-capture-after ()
- "Function to run after org capture."
- (rul/delete-frame-if-necessary))
-
-(advice-add 'org-capture-finalize :after 'rul/delete-frame-if-necessary)
-(advice-add 'org-capture-kill :after 'rul/delete-frame-if-necessary)
-(advice-add 'org-capture-refile :after 'rul/delete-frame-if-necessary)
-
;; REFILE ;;
; Targets include this file and any file contributing to the agenda - up to 3 levels deep
@@ -180,4 +172,39 @@
;; Honor ATTR_ORG attribute. Defaults to image's width if not set.
(setq org-image-actual-width nil)
+(setq org-clock-mode-line-total 'today)
+
+;; org-tempus
+(unless (package-installed-p 'org-tempus)
+ (package-vc-install "https://github.com/rul/org-tempus.git"))
+
+(use-package org-tempus
+ :init
+ (org-tempus-mode 1))
+
+(use-package org-remark-global-tracking
+ :ensure org-remark
+ ;; `org-remark-global-tracking' is shipped by the `org-remark'
+ ;; package, so ensure the package exists before loading this feature.
+ :hook (after-init . org-remark-global-tracking-mode)
+ :config
+ ;; Selectively keep or comment out the following if you want to use
+ ;; extensions for Info-mode, EWW, and NOV.el (EPUB) respectively.
+ (use-package org-remark-eww :after eww :config (org-remark-eww-mode +1))
+ (use-package org-remark-nov :after nov :config (org-remark-nov-mode +1)))
+
+(use-package org-remark
+ :ensure t
+ :bind (;; :bind keyword also implicitly defers org-remark itself.
+ ;; Keybindings before :map is set for global-map. Adjust the keybinds
+ ;; as you see fit.
+ ("C-c n m" . org-remark-mark)
+ ("C-c n l" . org-remark-mark-line)
+ :map org-remark-mode-map
+ ("C-c n o" . org-remark-open)
+ ("C-c n ]" . org-remark-view-next)
+ ("C-c n [" . org-remark-view-prev)
+ ("C-c n r" . org-remark-remove)
+ ("C-c n d" . org-remark-delete)))
+
(provide 'rul-org)
nihil fit ex nihilo