diff --git a/config-org.org b/config-org.org index 4e224cf..852ceee 100644 --- a/config-org.org +++ b/config-org.org @@ -233,41 +233,6 @@ (setq org-now-location nil) #+end_src -* org agenda goto headline AND narrow -#+begin_src emacs-lisp - (defun my/org-agenda-narrow () - (interactive) - (org-agenda-switch-to) - (org-narrow-to-subtree) - (outline-show-branches)) - (define-key org-agenda-mode-map (kbd "S-") 'my/org-agenda-narrow) -#+end_src - - -* Keybindings -#+begin_src emacs-lisp - (use-package org) - (require 'org-agenda) - - ;; This is for safety - (define-key org-mode-map (kbd "C-S-") - (lambda (arg) - (interactive "P") - (if (string= "yes" (completing-read "Are you sure you want to use that keybinding? " '("yes" "no"))) - (kill-whole-line arg) - (org-cut-subtree)))) -#+end_src -* count archive tree characters -#+begin_src emacs-lisp - (defun my/org-count-subtree-characters () - (interactive) - (save-window-excursion - (org-agenda-goto t) - (org-mark-subtree) - (message (format "This subtree has %d characters. " (- (region-end) (region-beginning)))))) - - (define-key org-agenda-mode-map (kbd "C") #'my/org-count-subtree-characters) -#+end_src * More alternative views #+begin_src emacs-lisp (defun cfw:open-org-calendar-no-projects (&args) diff --git a/lisp/org-config/my-org-agenda-commands.el b/lisp/org-config/my-org-agenda-commands.el index 0d98db5..019cd3d 100644 --- a/lisp/org-config/my-org-agenda-commands.el +++ b/lisp/org-config/my-org-agenda-commands.el @@ -39,6 +39,8 @@ (require 'org-ql-custom-stuck-projects) (require 'org-scan-tags-indent) +(require 'org-archive-tree-count) + (define-key org-agenda-mode-map (kbd "a") 'org-agenda) diff --git a/lisp/org-config/my-org.el b/lisp/org-config/my-org.el index 4291438..7713736 100644 --- a/lisp/org-config/my-org.el +++ b/lisp/org-config/my-org.el @@ -34,6 +34,7 @@ (require 'my-org-indent) (require 'my-org-agenda-commands) (require 'my-org-capture-templates) +(require 'org-other-additions) (require 'self-talk-mode) diff --git a/lisp/org-config/org-archive-tree-count.el b/lisp/org-config/org-archive-tree-count.el new file mode 100644 index 0000000..e5ceb8a --- /dev/null +++ b/lisp/org-config/org-archive-tree-count.el @@ -0,0 +1,37 @@ +;;; org-archive-tree-count.el --- -*- lexical-binding: t -*- + +;; Copyright (C) 2020 Benson Chu + +;; Author: Benson Chu +;; Created: [2020-09-26 18:48] + +;; This file is not part of GNU Emacs + +;; This program is free software: you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation, either version 3 of the License, or +;; (at your option) any later version. + +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with this program. If not, see . + +;;; Commentary: + +;;; Code: + +(defun my/org-count-subtree-characters () + (interactive) + (save-window-excursion + (org-agenda-goto t) + (org-mark-subtree) + (message (format "This subtree has %d characters. " (- (region-end) (region-beginning)))))) + +(define-key org-agenda-mode-map (kbd "C") #'my/org-count-subtree-characters) + +(provide 'org-archive-tree-count) +;;; org-archive-tree-count.el ends here diff --git a/lisp/org-config/org-other-additions.el b/lisp/org-config/org-other-additions.el new file mode 100644 index 0000000..acaaa8a --- /dev/null +++ b/lisp/org-config/org-other-additions.el @@ -0,0 +1,43 @@ +;;; org-other-additions.el --- -*- lexical-binding: t -*- + +;; Copyright (C) 2020 Benson Chu + +;; Author: Benson Chu +;; Created: [2020-09-26 18:48] + +;; This file is not part of GNU Emacs + +;; This program is free software: you can redistribute it and/or modify +;; it under the terms of the GNU General Public License as published by +;; the Free Software Foundation, either version 3 of the License, or +;; (at your option) any later version. + +;; This program is distributed in the hope that it will be useful, +;; but WITHOUT ANY WARRANTY; without even the implied warranty of +;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +;; GNU General Public License for more details. + +;; You should have received a copy of the GNU General Public License +;; along with this program. If not, see . + +;;; Commentary: + +;;; Code: +(defun my/org-agenda-narrow () + (interactive) + (org-agenda-switch-to) + (org-narrow-to-subtree) + (outline-show-branches)) + +(define-key org-agenda-mode-map (kbd "S-") 'my/org-agenda-narrow) + +(defun org-check-before-killing-line (arg) + (interactive "P") + (if (string= "yes" (completing-read "Are you sure you want to use that keybinding? " '("yes" "no"))) + (kill-whole-line arg) + (org-cut-subtree))) + +(define-key org-mode-map (kbd "C-S-") #'org-check-before-killing-line) + +(provide 'org-other-additions) +;;; org-other-additions.el ends here