emacs-orgmode@gnu.org archives
 help / color / mirror / code / Atom feed
From: Carlo Tambuatco <oraclmaster@gmail.com>
To: Ihor Radchenko <yantar92@posteo.net>
Cc: Org-Mode Mailing List <emacs-orgmode@gnu.org>
Subject: Re: [BUG] Org-9.6.x org templates hang on 'clipboard pasted as level 2 subtree'...
Date: Tue, 6 Jun 2023 11:03:45 -0400	[thread overview]
Message-ID: <CAJb92EwDaZ2seP6Ua_qOzYgOLzUqRmCC1UZm2cKSsJNqS=BERg@mail.gmail.com> (raw)
In-Reply-To: <CAJb92EyjiwPJO9s3yWWpsUipqZ3SrNRA0thtoC+32J7F0Vw7jg@mail.gmail.com>


[-- Attachment #1.1: Type: text/plain, Size: 7550 bytes --]

Hey Ihor, I recently upgraded my emacs to emacs@29 via homebrew, and I know
this is an
old thread, but now that my new emacs version comes with org-9.6.6, I am
getting the same
issues as I detailed in this thread with my org capture templates. I tried
to do a reproduce
with emacs -q but the error does not reproduce in those conditions, so it
might be an issue
with org mode interacting with some of my other packages installed.

I will include a list of emacs packages I have installed, and my
org-init.el file. Maybe you
could see if anything jumps out at you that is causing this weird behavior.

On Mon, Apr 17, 2023 at 6:40 AM Carlo Tambuatco <oraclmaster@gmail.com>
wrote:

> I've decided to delete the org-9.6 folder entirely and go with the
> built-in org-9.5.5 that comes with my emacs distribution, emacs-28.2 (9.0).
>
> Maybe for some reason newer versions of org are just incompatible with
> my version of emacs 28.2. Maybe the version of emacs you're using is
> newer or somehow more compatible with these bleeding edge development
> versions of org-mode, but I suppose when I upgrade my emacs the version
> of org that comes with it (9.6, I suppose) will just work out of the box.
>
> At any rate, I can't spend any more time and energy on this. I'll stick to
> what works. Thanks for the help.
>
> On Sun, Apr 16, 2023 at 8:09 AM Ihor Radchenko <yantar92@posteo.net>
> wrote:
>
>> Carlo Tambuatco <oraclmaster@gmail.com> writes:
>>
>> > I restarted emacs with org 9.6.3 and reloaded it uncompiled and
>> > did M-x toggle-debug-on-error to turn on backtrace on error.
>> >
>> > I have also attached a copy of what my org-capture-templates
>> > variable looks like.
>> >
>> > Comparing these backtraces to my org-capture-templates,
>> > you can see that only some of them fail (the ones corresponding to
>> > 'd', 'e', 'r', 'Rr', 'Rg', and 'Cc')
>> >
>> > They all worked up until Org 9.6. They still work under Org 9.5.5, so
>> > I don't know what changed.
>>
>> I tried your templates locally and I am not seeing any problem.
>>
>> May you try to reproduce starting from emacs -Q?
>> Or, alternatively, try to use the following version of Org capture, use
>> C-g to exit, and report the (hopefully) more detailed backtrace.
>>
>> (defun org-capture (&optional goto keys)
>>   "Capture something.
>> \\<org-capture-mode-map>
>> This will let you select a template from `org-capture-templates', and
>> then file the newly captured information.  The text is immediately
>> inserted at the target location, and an indirect buffer is shown where
>> you can edit it.  Pressing `\\[org-capture-finalize]' brings you back to
>> the \
>> previous
>> state of Emacs, so that you can continue your work.
>>
>> When called interactively with a `\\[universal-argument]' prefix argument
>> \
>> GOTO, don't
>> capture anything, just go to the file/headline where the selected
>> template stores its notes.
>>
>> With a `\\[universal-argument] \\[universal-argument]' prefix argument,
>> go to \
>> the last note stored.
>>
>> When called with a `C-0' (zero) prefix, insert a template at point.
>>
>> When called with a `C-1' (one) prefix, force prompting for a date when
>> a datetree entry is made.
>>
>> ELisp programs can set KEYS to a string associated with a template
>> in `org-capture-templates'.  In this case, interactive selection
>> will be bypassed.
>>
>> If `org-capture-use-agenda-date' is non-nil, capturing from the
>> agenda will use the date at point as the default date.  Then, a
>> `C-1' prefix will tell the capture process to use the HH:MM time
>> of the day at point (if any) or the current HH:MM time."
>>   (interactive "P")
>>   (when (and org-capture-use-agenda-date
>>              (eq major-mode 'org-agenda-mode))
>>     (setq org-overriding-default-time
>>           (org-get-cursor-date (equal goto 1))))
>>   (cond
>>    ((equal goto '(4))  (org-capture-goto-target keys))
>>    ((equal goto '(16)) (org-capture-goto-last-stored))
>>    (t
>>     (let* ((orig-buf (current-buffer))
>>            (annotation (if (and (boundp
>> 'org-capture-link-is-already-stored)
>>                                 org-capture-link-is-already-stored)
>>                            (plist-get org-store-link-plist :annotation)
>>                          (ignore-errors (org-store-link nil))))
>>            (entry (or org-capture-entry (org-capture-select-template
>> keys)))
>>            initial)
>>       (setq initial (or org-capture-initial
>>                         (and (org-region-active-p)
>>                              (buffer-substring (point) (mark)))))
>>       (when (stringp initial)
>>         (remove-text-properties 0 (length initial) '(read-only t)
>> initial))
>>       (when (stringp annotation)
>>         (remove-text-properties 0 (length annotation)
>>                                 '(read-only t) annotation))
>>       (cond
>>        ((equal entry "C")
>>         (customize-variable 'org-capture-templates))
>>        ((equal entry "q")
>>         (user-error "Abort"))
>>        (t
>>         (org-capture-set-plist entry)
>>         (org-capture-get-template)
>>         (org-capture-put :original-buffer orig-buf
>>                          :original-file (or (buffer-file-name orig-buf)
>>                                             (and (featurep 'dired)
>>                                                  (car (rassq orig-buf
>>
>>  dired-buffers))))
>>                          :original-file-nondirectory
>>                          (and (buffer-file-name orig-buf)
>>                               (file-name-nondirectory
>>                                (buffer-file-name orig-buf)))
>>                          :annotation annotation
>>                          :initial initial
>>                          :return-to-wconf (current-window-configuration)
>>                          :default-time (or org-overriding-default-time
>>                                            (org-current-time)))
>>         (org-capture-set-target-location (and (equal goto 0) 'here))
>>         (condition-case error
>>             (org-capture-put :template (org-capture-fill-template))
>>           ((error quit)
>>            (if (get-buffer "*Capture*") (kill-buffer "*Capture*"))
>>            (error "Capture abort: %s" (error-message-string error))))
>>
>>         (setq org-capture-clock-keep (org-capture-get :clock-keep))
>>             (org-capture-place-template
>>              (eq (car (org-capture-get :target)) 'function))
>>         (when (and (derived-mode-p 'org-mode) (org-capture-get :clock-in))
>>           (condition-case nil
>>               (progn
>>                 (when (org-clock-is-active)
>>                   (org-capture-put :interrupted-clock
>>                                    (copy-marker org-clock-marker)))
>>                 (org-clock-in)
>>                 (setq-local org-capture-clock-was-started
>>                             (copy-marker org-clock-marker)))
>>             (error "Could not start the clock in this capture buffer")))
>>         (when (org-capture-get :immediate-finish)
>>           (org-capture-finalize))))))))
>>
>> --
>> Ihor Radchenko // yantar92,
>> Org mode contributor,
>> Learn more about Org mode at <https://orgmode.org/>.
>> Support Org development at <https://liberapay.com/org-mode>,
>> or support my work at <https://liberapay.com/yantar92>
>>
>

[-- Attachment #1.2: Type: text/html, Size: 9614 bytes --]

[-- Attachment #2: emacs-packages.txt --]
[-- Type: text/plain, Size: 5022 bytes --]

0blayout-readme.txt
a-20210929.1510
abyss-theme-readme.txt
ac-anaconda-readme.txt
ac-html-20151005.731
ac-html-angular-readme.txt
ac-html-csswatcher-readme.txt
ac-ispell-20151101.226
ac-php-20230522.1329
ac-php-core-20230529.1404
ac-python-20110519
ac-slime-20171027.2100
ace-flyspell-readme.txt
achievements-readme.txt
adjust-parens-readme.txt
aio-20200610.1904
alert-20221213.1619
archives
async-20230528.622
atom-dark-theme-20220114.1902
auctex-13.2.0
auctex-13.2.0.signed
auto-complete-20221231.1633
bbdb-20220706.433
bind-key-20230203.2004
chess-2.0.5
chess-2.0.5.signed
cider-1.7.0
clojure-mode-5.16.0
coffee-mode-20200315.1133
commenter-20160219.1627
company-20230416.2034
company-irony-20190124.2346
compat-29.1.4.1
compat-29.1.4.1.signed
concurrent-20170601.435
creole-20140924.1500
csv-readme.txt
ctable-20210128.629
dart-mode-20220401.0
dash-20230502.1324
db-20140421.2111
db-pg-readme.txt
db-readme.txt
deferred-20170901.1330
ebf-readme.txt
eclim-readme.txt
eglot-20221020.1010
eldoc-1.14.0
eldoc-1.14.0.signed
elnode-20190702.1509
elpy-20230402.1946
env-var-import-2.1
epc-20140610.534
epl-20180205.2049
ess-20230419.1527
exec-path-from-shell-20220826.1535
extend-dnd-readme.txt
eyuml-readme.txt
f-20230116.1032
fakir-20140729.1652
flycheck-20230306.414
flycheck-irony-20180604.2152
flycheck-kotlin-20230111.1907
flycheck-nimsuggest-20171027.2208
flycheck-perl6-20180509.2201
flycheck-swift-readme.txt
flymake-1.3.4
flymake-1.3.4.signed
flyspell-correct-readme.txt
geeknote-readme.txt
gh-readme.txt
git-commit-20230521.2344
gntp-20141025.250
gnupg
gnuplot-20230323.1400
gnuplot-mode-20171013.1616
gnuplot-mode-readme.txt
go-mode-20221228.1706
gradle-mode-20150313.1905
hackernews-readme.txt
helm-20230529.1452
helm-core-20230505.802
helm-perldoc-readme.txt
helm-projectile-20221215.613
highlight-indentation-20210221.1418
horoscope-readme.txt
ht-20230214.1632
htmlize-20200816.746
htmlize-20210825.2150
humanoid-themes-20230308.2129
indium-20210309.1210
inkpot-theme-20230511.116
ipython.el
irony-20220110.849
irony-eldoc-20200622.2214
ivy-20230410.1815
japanlaw-readme.txt
jdee-20191102.1426
jedi-20191011.1750
jedi-core-20210503.1315
js2-mode-20230509.2244
js2-refactor-20210306.2003
json-process-client-20210525.733
julia-mode-20230510.745
kotlin-mode-20230123.1859
kubernetes-readme.txt
kv-20140108.1534
latex-extra-20220817.5
let-alist-1.0.6
let-alist-1.0.6.signed
log4e-20211019.948
lsp-mode-20230524.1820
lua-mode-20221218.605
lv-20200507.1518
macrostep-20230518.1911
magit-20230530.1403
magit-section-20230521.1803
markdown-mode+-20170320.2104
markdown-mode-20230522.147
meghanada-readme.txt
memoize-20200103.2036
modus-operandi-theme-20201114.729
modus-vivendi-theme-20201114.729
multiple-cursors-20230309.1204
muse-3.20.2
muse-3.20.2.signed
muse-readme.txt
nim-mode-20211102.917
noflet-20141102.1454
ob-kotlin-20180823.1321
orca-readme.txt
org-9.5.5
org-ac-readme.txt
org-agenda-property-readme.txt
org-alert-20230520.1449
org-analyzer-20191001.1717
org-autolist-20220530.1620
org-board-readme.txt
org-brain-readme.txt
org-bullets-20200317.1740
org-category-capture-readme.txt
org-chef-readme.txt
org-dropbox-readme.txt
org-ehtml-readme.txt
org-evil-readme.txt
org-gcal-20221212.1817
org-grep-20230424.2005
org-if-readme.txt
org-kanban-readme.txt
org-mind-map-readme.txt
org-notebook-readme.txt
org-outlook-readme.txt
org-random-todo-readme.txt
org-recur-readme.txt
org-super-agenda-readme.txt
org-tree-slide-readme.txt
orgit-readme.txt
orglue-readme.txt
osx-dictionary-readme.txt
osx-plist-readme.txt
paredit-20221127.1452
parseclj-20220422.936
parseedn-20220520.835
pdf-tools-20230404.327
perl6-mode-20200414.1930
persist-0.5
persist-0.5.signed
php-extras-2.2.0.20140405
php-mode-20230521.1700
pinentry-0.1
pinentry-0.1.signed
pinentry-readme.txt
pkg-info-20150517.1143
podcaster-readme.txt
popup-20221231.1634
project-0.9.8
project-0.9.8.signed
projectile-20230317.1101
python-environment-20150310.853
python-info-20151228.1852
python-mode-20230515.722
pyvenv-20211014.707
queue-0.2
queue-0.2.signed
reformatter-20220627.825
request-20230127.417
request-deferred-20220614.1604
rg-20230430.721
ruby-additional-readme.txt
rust-mode-20230112.27
rustic-20230130.912
rw-hunspell-0.2
s-20220902.1511
seq-2.22
seq-2.22.signed
seq-2.23
seq-2.23.signed
sesman-20190909.1754
sesman-20210901.1134
skype-readme.txt
slime-20230314.915
solarized-theme-20230507.1413
spacemacs-theme-20230530.1751
spinner-1.7.4
spinner-1.7.4.signed
swank-cdt-1.0.1
sweetgreen-readme.txt
swift-mode-20230507.717
swift3-mode-readme.txt
swiper-20230410.1815
swiper-helm-20180131.1744
swiper-helm-readme.txt
sx-readme.txt
tNFA-readme.txt
tablist-20230321.705
test-simple-readme.txt
transient-20230601.1854
try-20181204.236
try-readme.txt
use-package-20230426.2324
vs-dark-theme-20230415.435
web-20141231.2001
web-mode-20230329.601
wgrep-20230203.1214
winum-20190911.1607
with-editor-20230511.2142
worf-readme.txt
xcscope-20210719.828
xref-1.6.3
xref-1.6.3.signed
xterm-color-20230321.3
yasnippet-20200604.246
zig-mode-20230307.1215

[-- Attachment #3: org-init.el --]
[-- Type: application/octet-stream, Size: 24081 bytes --]

;; org-init.el --- Org mode initialization settings

;; Copyright (C) 2017 Free Software Foundation, Inc.
;;
;; Author: Carlo Tambuatco <carloftambuatco@iMac.local>
;; Maintainer: Carlo Tambuatco <carloftambuatco@iMac.local>
;; Created: 22 Sep 2017
;; Version: 0.01
;; Keywords

;; 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 2, 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, write to the Free Software
;; Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.



;; Initialize Org Mode
(require 'org)
;(require 'org-install) ; Not required with emacs@29
(require 'org-gcal)
(require 'org-autolist)
(require 'pinentry)
(require 'org-analyzer)
(require 'org-alert)
(require 'org-attach-git)

;;; Load Org markdown exporter
(require 'ox-md nil t)

;;;Customize org modules
(setq org-modules '(ol-bbdb
                      ol-gnus
                      org-habit
                      ol-irc
                      org-mouse
                      org-crypt
                      org-protocol
                      ol-w3m
                      ol-bibtex
                      ol-docview
                      ol-info
                      ol-mhe
                      ol-rmail))

(eval-after-load 'org
 '(org-load-modules-maybe t))

;;; Set default alert system
(setq alert-default-style 'notifier)
;;; Set default interval for receiving alerts
;;; Set to 120 minutes
(setq org-alert-interval (* 2 60 60))
;;; Enable Org Alert
(org-alert-enable)

;;; Use org-bullets to make everything nice and awesome
(require 'org-bullets)
(add-hook 'org-mode-hook (lambda () (org-bullets-mode 1)))

;;; Enable autolist mode in all org buffers
(add-hook 'org-mode-hook (lambda () (org-autolist-mode)))

;;;Org directory
(setf org-directory "~/Documents/Org")

;;;Directory for Org-Analyzer
(setf org-analyzer-directory "~/Documents/Org/Programming/")

;;;Org mode keybindings
(global-set-key "\C-cl" 'org-store-link)
(global-set-key "\C-ca" 'org-agenda-list)
(global-set-key "\C-cA" 'org-agenda)
(global-set-key "\C-cc" 'org-capture)
(global-set-key "\C-cb" 'org-iswitchb)
(global-set-key (kbd "<f5>") 'org-revert-all-org-buffers)
;;;(if (display-graphic-p) (global-set-key (kbd "<f5>") 'org-agenda))
;;;Open all directory links in dired
(add-to-list 'org-file-apps '(directory . emacs))

;;;Org Habit Column Graph
(setq org-habit-graph-column 70)
(setq org-habit-show-habits-only-for-today nil)

;;;Org default span for agenda view
(setq org-agenda-span 'day)

;;;Keep log times hidden
(setq org-log-into-drawer "LOGBOOK")
(setq org-clock-into-drawer 1)

;;;Set behavior of scheduled items with deadlines
;; Non-nil means skip scheduling line if same entry shows because of deadline.

;; In the agenda of today, an entry can show up multiple times
;; because it is both scheduled and has a nearby deadline, and maybe
;; a plain time stamp as well.

;; When this variable is nil, the entry will be shown several times.

;; When set to t, then only the deadline is shown and the fact that
;; the entry is scheduled today or was scheduled previously is not
;; shown.

;; When set to the symbol ‘not-today’, skip scheduled previously,
;; but not scheduled today.

;; When set to the symbol ‘repeated-after-deadline’, skip scheduled
;; items if they are repeated beyond the current deadline.
(setq org-agenda-skip-scheduled-if-deadline-is-shown 'repeated-after-deadline)

;;;Enable org property inheritance
(setq org-use-property-inheritance t)

;;Disable auto-saving
(setq auto-save-default nil)


;; Set Org directories [Remember to update with journal books]
(setq org-agenda-files (list "~/Documents/Org"
                             "~/Documents/Org/Personal"
                             "~/Documents/Org Journals/Training"
                             "~/Documents/Org/Programming"
                             "~/Documents/Org/Work"
                             "~/Documents/Org Journals/Programming Journal"))

;;;Set TODO default sequence
(setq org-todo-keywords
      '((sequence "TODO(t)" "IN_PROGRESS(i)" "|" "DONE(d!)" "POSTPONED(p@)" "CANCELLED(c@)")
        (sequence "TEST(e)" "TESTING(s)" "|" "PASS(p!)" "FAIL(f@)")))

;;;Set TODO keyword faces
(setq org-todo-keyword-faces
      '(("TODO" . (:foreground "#FFAAAA"))
        ("TEST" . (:foreground "#FFAAAA"))
        ("PRACTICE" . (:foreground "#FFAAAA"))
        ("STUDY" . (:foreground "#FFAAAA"))
        ("THEORY" . (:foreground "#FFAAAA"))
        ("WORKOUT" . (:foreground "#9EC9EA" :underline t))
        ("RACE" . (:foreground "#FAFA01" :weight bold))
        ("WATCH" . (:foreground "#FD00D6"))
        ("IN_PROGRESS" . (:foreground "#00E0E7"))
        ("TESTING" . (:foreground "#00E0E7"))
        ("POSTPONED" . (:foreground "#FF7700"))
        ("CANCELLED" . (:foreground "#D42800" :weight bold))
        ("MISSED" . (:foreground "#D42800" :weight bold))
	("IGNORED" . (:foreground "#D72800" :weight bold))
        ("FAIL" . (:foreground "#D42800" :weight bold))))

;;;Set lowest priority to G (ascii 71) for seven piority levels
(setq org-lowest-priority 71)

;;;Org mode log TODO timestamp
(setq org-log-done 'time)

;;;(setq org-agenda-log-mode-items '(closed clock))

;;;Org mode use am/pm time grid style
(setq org-agenda-timegrid-use-ampm t)

;;;Archiving Directory for completed tasks
(setq org-archive-location "~/Documents/Org/Completed.org::* From %s")

;;;Org enforce ordered properties, blocking
(setq org-enforce-todo-dependencies t)

;;;Turn on abbrev-mode in org-mode
(add-hook 'org-mode-hook 'abbrev-mode)
(add-hook 'org-mode-hook 'helm-mode)
(add-hook 'org-mode-hook (lambda () (global-auto-complete-mode -1)))

;; Enable symmetric encrpytion support
(require 'org-crypt)
(setq epg-gpg-program "gpg")
(org-crypt-use-before-save-magic)
(setq org-tags-exclude-from-inheritance (quote ("crypt")))
;; GPG key to use for encryption
;; Either the Key ID or set to nil to use symmetric encryption.
(setq org-crypt-key nil)
(setf epa-pinentry-mode 'loopback)
(pinentry-start)
;(fset 'epg-wait-for-status 'ignore) ;; gpg tends to stall on encryption

;; Set the encoding to utf-8
(setq org-export-coding-system 'utf-8)
(prefer-coding-system 'utf-8)
(set-charset-priority 'unicode)
(setq default-process-coding-system '(utf-8-unix . utf-8-unix))

;;iCalendar export file settings
(setq org-icalendar-include-todo t)
(setq org-icalendar-use-deadline '(event-if-todo todo-due))
(setq org-icalendar-use-scheduled '(event-if-todo))

;; Don't allow editing of folded regions
(setq org-catch-invisible-edits 'error)

;; Start the weekly agenda on Monday
(setq org-agenda-start-on-weekday 1)

;; Enable indentation view, does not effect file.
(setq org-startup-indented t)

;; Make attachments be copied / assigned a uuid
;; and placed in a appropiate folder
(setq org-id-method (quote uuidgen))
(setq org-attach-directory "attach/")

(setq org-tag-persistent-alist '(("@coding" . ?x) ("@design" . ?d)
                                 ("@studying" . ?s) ("@errands" . ?e)
                                 ("@purchases" . ?p) ("crypt" . ?c)
                                 ("@important" . ?i) ("@chore" . ?h)
                                 ("@appointment" . ?a) ("@subject" . ?b)
                                 ("@entertainment" . ?m) ("@event" . ?v)
                                 ("@project" . ?j) ("@reminder" . ?r)))

;; Sync Google calendars to your org files
(require 'org-gcal)

;; Org Grep
;; see https://github.com/pinard/org-grep for usage
(autoload 'org-grep "org-grep" nil t)
(define-key org-mode-map "\C-cng" 'org-grep-full)
(define-key org-mode-map "\C-cog" 'org-grep)

;;Convert all lines in a selected region to an unordered list
(defun org-convert-lines-to-checklist (beg end)
  "Convert all plain lines in region to a plain list with
checkboxes."
  (interactive "r")
  (save-excursion
    (goto-char beg)
    (dotimes (_ (- (line-number-at-pos end) (line-number-at-pos beg)))
      (insert "- [ ] ")
      (indent-according-to-mode)
      (forward-line 1))))

(defun org-convert-lines-to-unordered-list (beg end)
  "Convert all plain lines in region to a plain list without
checkboxes."
  (interactive "r")
  (save-excursion
    (goto-char beg)
    (dotimes (_ (- (line-number-at-pos end) (line-number-at-pos beg)))
      (insert "- ")
      (indent-according-to-mode)
      (forward-line 1))))

;; Org capture settings


;; Allow setting of tags withing org capture buffer
(add-hook 'org-capture-mode-hook
          (lambda ()
            (save-restriction
              (widen)
              (setq-local org-tag-alist (org-get-buffer-tags)))))

;; Org capture templates
(setf org-capture-templates '(("N" "New Note")
                              ("Np" "Personal Note" entry (file+headline
                                                          "~/Documents/Org/Personal/Notes.org"
                                                          "Personal Notes")
                               "* %? \nCaptured On: %t \n%i\n" :empty-lines 1)

                              ("Ns" "Study Note" entry (file+headline
                                                       "~/Documents/Org/Programming/Notes.org"
                                                       "Study Notes")
                               "* %? \nCaptured On: %t \n%i\n" :empty-lines 1)

                              ("Nw" "Work Note" entry (file+headline
                                                       "~/Documents/Org/Work/Notes.org"
                                                       "Work Notes")
                               "* %? \nCaptured On: %^t \n%i\n" :empty-lines 1)
			      ("a" "Appointment" entry (file+headline
                                                        "~/Documents/Org/Personal/Personal_Schedule.org"
                                                        "Appointments")
                               "* TODO %? \nSCHEDULED: %^{when}t DEADLINE: %^{when}t\n:PROPERTIES:\n:COOKIE_DATA: %^{COOKIE_DATA|todo recursive|recursive|nil}p\n:ORDERED: %^{ORDERED|t|nil}p\n:END:\n" :empty-lines 1)

                              ("d" "Due Date" entry (file+headline
                                                        "~/Documents/Org/Personal/Personal_Schedule.org"
                                                        "Due Dates")
                               "* TODO %? \nDEADLINE: %^{when}t\n:PROPERTIES:\n:COOKIE_DATA: %^{COOKIE_DATA|todo recursive|recursive|nil}p\n:END:\n" :empty-lines 1)

                              ("e" "Event" entry (file+headline
                                                        "~/Documents/Org/Personal/Personal_Schedule.org"
                                                        "Events")
                               "* TODO %? \nSCHEDULED: %^{when}t\n" :empty-lines 1)
			      ("t" "TV Show" entry (file+headline
                                                        "~/Documents/Org/Personal/TV_Schedule.org"
                                                        "Current TV Shows:")
                               "* WATCH %? [/]\nSCHEDULED: %^{when}t\n:PROPERTIES:\n:COOKIE_DATA: %^{COOKIE_DATA|checkbox recursive|recursive|nil}p\n:Network: %^{Network|Netflix|AZ Prime|HBO|Cinemax|Showtime|CW|AMC|FX|Fox|Facebook|USA|nil}p\n:ORDERED: %^{ORDERED|t|nil}p\n:STYLE: %^{STYLE|habit|nil}p\n:END:\n:LOGBOOK:\n:END:\nEpisodes:\n1. [ ] " :empty-lines 1)

                              ("m" "Movies / TV / Streaming Events" entry (file+headline
                                                        "~/Documents/Org/Personal/TV_Schedule.org"
                                                        "Movies / TV / Streaming Events")
                               "* WATCH %? \nSCHEDULED: %^{when}t\n:PROPERTIES:\n:Network: %^{Network|Netflix|AZ Prime|HBO|Cinemax|Showtime|CW|AMC|FX|Fox|USA|DVD|nil}p\n:END:\n" :empty-lines 1)

			      ("B" "New Book")
			      ("Bn" "Novel" entry (file+headline
						   "~/Documents/Org/Personal/Books_Read.org"
						   "Novels Read")
			       "* TODO %? \n:PROPERTIES:\n:AUTHOR: %^{AUTHOR}p\n:END:\n"
			       :empty-lines 1)

			      ("Bf" "Nonfiction" entry (file+headline
						   "~/Documents/Org/Personal/Books_Read.org"
						   "Nonfiction Read")
			       "* TODO %? \n:PROPERTIES:\n:AUTHOR: %^{AUTHOR}p\n:TOPIC: %^{TOPIC}p\n:END:\n"
			       :empty-lines 1)

                              ("r" "Race" entry (file+headline
                                                 "~/Documents/Org/Personal/Workouts.org"
                                                 "Scheduled Races")
                               "* RACE %? \nSCHEDULED: %^{when}t" :empty-lines 1)

                              ("R" "New Reminder")

                              ("Rr" "Reminder" entry (file+headline
                                                     "~/Documents/Org/Personal/Personal_Schedule.org"
                                                     "Reminders")
                               "* TODO %? \n:PROPERTIES:\n:COOKIE_DATA: %^{COOKIE_DATA|todo recursive|recursive|nil}p\n:ORDERED: %^{ORDERED|t|nil}p\n:STYLE: %^{STYLE|habit|nil}p\n:END:\n" :empty-lines 1)

                              ("Rg" "Game Release Date" entry (file+headline
                                                     "~/Documents/Org/Personal/Personal_Schedule.org"
                                                     "Reminders")
                               "* TODO %? \nSCHEDULED: %^{when}t\n:PROPERTIES:\n:Console: %^{Console|PS5|PC}p\n:END:\n" :empty-lines 1)

			      ("C" "New Chore(s)/Task(s)")

			      ("Ct" "Task" entry (file+headline
						  "~/Documents/Org/Personal/Personal_Schedule.org"
						  "Tasks")
			       "* TODO %? \nSCHEDULED: %^{when}t\n:PROPERTIES:\n:COOKIE_DATA: %^{COOKIE_DATA|todo recursive|checkbox recursive|recursive|nil}p\n:ORDERED: %^{ORDERED|nil|t}p\n:END:\n" :empty-lines 1)
			      ("Ch" "Chores" entry (file+headline
						  "~/Documents/Org/Personal/Personal_Schedule.org"
						  "Chores")
			       "* TODO %? \nSCHEDULED: %^{when}t\n:PROPERTIES:\n:COOKIE_DATA: %^{COOKIE_DATA|todo recursive|checkbox recursive|recursive|nil}p\n:ORDERED: %^{ORDERED|nil|t}p\n:END:\n" :empty-lines 1)
			      ))

;;Hide all scheduled tasks if DONE
(setf org-agenda-skip-scheduled-if-done t)

;;Org Custom Commands

;;Appointments, Reminders and Chores
(add-to-list 'org-agenda-custom-commands
             '("r" . "Reminders, Appointments and Chores"))
(add-to-list 'org-agenda-custom-commands
             '("rr" "Reminders" tags "+@reminder/!TODO"))
(add-to-list 'org-agenda-custom-commands
             '("ra" "Appointments" tags "+@appointment/!TODO"))
(add-to-list 'org-agenda-custom-commands
             '("rh" "Chores (Domestic)" tags "+@chore/!TODO|IN_PROGRESS"))
(add-to-list 'org-agenda-custom-commands
             '("rd" "Today's Daily Chores" tags "+SCHEDULED<\"<tomorrow>\"+CATEGORY=\"Daily_Chores\""))
(add-to-list 'org-agenda-custom-commands
             '("rt" "Today's Tasks" tags "+SCHEDULED<\"<tomorrow>\"+CATEGORY=\"Task\"/!-DONE-FINISHED-WATCHED"))
(add-to-list 'org-agenda-custom-commands
             '("rA" "Today's Completed Tasks" tags "+TIMESTAMP_IA>=\"<today>\"+TIMESTAMP_IA<\"<tomorrow>\""))
(add-to-list 'org-agenda-custom-commands
               '("rg" "Game Release Dates" tags "+Console=\"PS4\"|Console=\"PS5\"/!TODO"))

;;Workouts
(add-to-list 'org-agenda-custom-commands
             '("W" "Workouts" tags "+@conditioning/!WORKOUT|IN_PROGRESS"))

;;All Tasks in Progress or Postponed
(add-to-list 'org-agenda-custom-commands
             '("P" . "Tasks In Progress/Postponed" ))
(add-to-list 'org-agenda-custom-commands
             '("Pi" "In Progress" tags "/IN_PROGRESS"))
(add-to-list 'org-agenda-custom-commands
             '("Pp" "Postponed" tags "/POSTPONED"))

;;Testing
(add-to-list 'org-agenda-custom-commands
             '("t" . "Tests"))
(add-to-list 'org-agenda-custom-commands
             '("ti" "Tests in Progress" tags "/TESTING"))
(add-to-list 'org-agenda-custom-commands
             '("tp" "Tests Passed" tags "/PASS"))
(add-to-list 'org-agenda-custom-commands
             '("tf" "Tests Failed" tags "/FAIL"))

;;Deadlines
(add-to-list 'org-agenda-custom-commands
             '("d" . "Deadlines"))
(add-to-list 'org-agenda-custom-commands
             '("da" "All Deadlines" tags "+DEADLINE>=\"<now>\"/!"))
(add-to-list 'org-agenda-custom-commands
             '("di" "Imminent Deadlines" tags "+DEADLINE<=\"<+2w>\"/!"))
(add-to-list 'org-agenda-custom-commands
             '("dI" "Important Deadlines" tags "+{@important}+DEADLINE>=\"<now>\"/!"))

;;Music Practice
(add-to-list 'org-agenda-custom-commands
             '("i" . "Music Instrument Practice"))
(add-to-list 'org-agenda-custom-commands
             '("ig" "Guitar Practice" tags "Guitar"))
(add-to-list 'org-agenda-custom-commands
             '("ip" "Piano Practice" tags "Piano"))

;;Events and Entertainment
(add-to-list 'org-agenda-custom-commands
             '("E" . "Events and Entertainment"))
(add-to-list 'org-agenda-custom-commands
             '("Ea" "All Events" tags "+{@event}/!TODO|WATCH"))
(add-to-list 'org-agenda-custom-commands
             '("Eu" "Upcoming Events (Next 2 weeks)" tags "+SCHEDULED<=\"<+2w>\"+{@event}/!TODO|WATCH"))
(add-to-list 'org-agenda-custom-commands
             '("Et" "Television and Movies" tags "+{@television\|@streaming\|@entertainment}/!WATCH"))

;;Subjects
(add-to-list 'org-agenda-custom-commands
             '("b" . "Study Subjects and Books"))
(add-to-list 'org-agenda-custom-commands
             '("ba" "All Subjects" tags "+@subject-@unimportant/!TODO|IN_PROGRESS"))
(add-to-list 'org-agenda-custom-commands
             '("bu" "Unimportant Subjects" tags "+@unimportant/!TODO|IN_PROGRESS"))
(add-to-list 'org-agenda-custom-commands
             '("bc" "Current Subjects" tags "+@subject-@unimportant+TIMESTAMP_IA>=\"<-21d>\"+/!TODO|IN_PROGRESS"))
(add-to-list 'org-agenda-custom-commands
             '("br" "Recent Subjects" tags "+@subject-@unimportant+TIMESTAMP_IA>=\"<-4d>\"+/!TODO|IN_PROGRESS"))
(add-to-list 'org-agenda-custom-commands
             '("bl" "Less Recent Subjects"
               tags "+@subject-@unimportant+TIMESTAMP_IA<\"<-4d>\"+TIMESTAMP_IA>=\"<-10d>\"+/!TODO|IN_PROGRESS"))
(add-to-list 'org-agenda-custom-commands
             '("bi" "Current ignored subjects"
               tags "+@subject-@unimportant+TIMESTAMP_IA>=\"<-21d>\"+TIMESTAMP_IA<\"<-10d>\"+/!TODO|IN_PROGRESS"))
(add-to-list 'org-agenda-custom-commands
	         '("bb" . "Books"))
(add-to-list 'org-agenda-custom-commands
	         '("bbr" "Recent Books"
               tags "+@books+TIMESTAMP_IA>=\"<2023-01-01>\""))
(add-to-list 'org-agenda-custom-commands
	         '("bbn" "Current novels"
	           tags "+CATEGORY=\"novel\"+/!IN_PROGRESS"))
(add-to-list 'org-agenda-custom-commands
	         '("bbN" "All novels"
	           tags "+CATEGORY=\"novel\""))
(add-to-list 'org-agenda-custom-commands
	         '("bbb" "Current nonfiction"
	           tags "+CATEGORY=\"nonfiction\"+/!IN_PROGRESS"))
(add-to-list 'org-agenda-custom-commands
	         '("bbB" "All nonfiction"
	           tags "+CATEGORY=\"nonfiction\""))
(add-to-list 'org-agenda-custom-commands
	         '("bbt" "Current textbooks"
	           tags "+CATEGORY=\"textbook\"+/!IN_PROGRESS"))
(add-to-list 'org-agenda-custom-commands
	         '("bbT" "All textbooks"
	           tags "+CATEGORY=\"textbook\""))
(add-to-list 'org-agenda-custom-commands
	     '("bbI" "All In Progress"
	       tags "+@books+/!IN_PROGRESS"))
(add-to-list 'org-agenda-custom-commands
	     '("bbU" "All Unread"
	       tags "+@books+/!TODO"))

;;Notes
(add-to-list 'org-agenda-custom-commands
             '("N" . "Notes"))
(add-to-list 'org-agenda-custom-commands
             '("Np" "Personal Notes" tags "Personal_Notes"))
(add-to-list 'org-agenda-custom-commands
             '("Ns" "Study Notes" tags "Study_Notes"))
(add-to-list 'org-agenda-custom-commands
             '("Nw" "Work Notes" tags "Work_Notes"))

;; ----------------
;; Journal SYSTEM !
;; ----------------

;; SETUP A ROBUST / GENERAL JOURNAL SYSTEM
;; I have modified this from:
;; https://aqeelakber.com/2016/12/21/emacs-org-mode-journal-and-log/
;; Optional Journaling system, record

;; Author name to be auto inserted in entries
(setq journal-author "Carlo Tambuatco")

;; This is the base folder where all your "books"
;; will be stored.
(setq journal-base-dir "~/Documents/Org Journals/")

;; Journal Key bindings
(global-set-key (kbd "C-c j") 'journal-today)
(global-set-key (kbd "C-c e") 'browse-journal)


;; These are your "books" (folders), add as many as you like.
;; Note: "sub volumes" are acheivable with sub folders.
(setq journal-books '("Training"
                      "Blender"
                      "Programming Journal"
                      "Personal Journal"
                      "Japanese"
                      "Guitar"
                      "Investing"
                      "Piano"
                      ))


;; Functions for journal
(defun get-journal-file-today (book)
  "Return today's filename for a books journal file."
  (interactive (list (completing-read "Book: " journal-books) ))
  (expand-file-name
   (concat journal-base-dir book "/J"
	   (format-time-string "%Y-%m-%d") ".org" )) )

(defun journal-today ()
  "Load todays journal entry for book"
  (interactive)
  (find-file (call-interactively 'get-journal-file-today)) )

(defun go-to-journal-dir (book)
  "Go to a journal directory based on a given Book"
  (interactive (list (completing-read "Goto Book: " journal-books)))
          (concat journal-base-dir book)
  )

(defun browse-journal ()
  "Browse an existing journal directory"
  (interactive)
  (dired (call-interactively 'go-to-journal-dir)))


(defun journal-entry-date ()
  "Inserts the journal heading based on the file's name."
  (when (string-match
	 "\\(J\\)\\(20[0-9][0-9]\\)\\-\\([0-9][0-9]\\)\\-\\([0-9][0-9]\\)\\(.org\\)"
	 (buffer-name))
    (let ((year  (string-to-number (match-string 2 (buffer-name))))
          (month (string-to-number (match-string 3 (buffer-name))))
          (day   (string-to-number (match-string 4 (buffer-name))))
          (datim nil))
      (setq datim (encode-time 0 0 0 day month year))
      (format-time-string "%Y-%m-%d (%A)" datim))))

;; Auto-insert journal header
(auto-insert-mode)
(eval-after-load 'autoinsert
  '(define-auto-insert
     '("\\(J\\)\\(20[0-9][0-9]\\)\\-\\([0-9][0-9]\\)\\-\\([0-9][0-9]\\)\\(.org\\)" . "Journal Header")
     '("Short description: "
       "#+TITLE: Journal Entry - "
       (car
	(last
	 (split-string
	  (file-name-directory buffer-file-name) "/Org/"))) \n
       (concat "#+AUTHOR: " journal-author) \n
       "#+DATE: " (journal-entry-date) \n
       "#+FILETAGS: :"
       (car (split-string (car
	              (last
	               (split-string
	                (file-name-directory buffer-file-name) "/Org/"))) "/")) ":" \n \n
       > _ \n
       )))



;; Org Babel customization for evaluating languages
(org-babel-do-load-languages
 'org-babel-load-languages
 '((emacs-lisp . t)
   (R . t)
   (calc . t)
   (gnuplot . t)
   (java . t)))

;;Use the following in a source block to allow changing of DONE state
;;buffer local only

;; Set TODO entry to DONE when all children are DONE
;;  (defun org-summary-todo (n-done n-not-done)
;;    "Switch entry to DONE when all subentries are done, to TODO otherwise."
;;    (let (org-log-done org-log-states)   ; turn off logging
;;      (org-todo (if (= n-not-done 0) "DONE" "TODO"))))

;; (add-hook 'org-after-todo-statistics-hook 'org-summary-todo nil t)

;;; org-init.el ends here

  reply	other threads:[~2023-06-06 15:05 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-04-03 19:53 [BUG] Org-9.6.x org templates hang on 'clipboard pasted as level 2 subtree' Carlo Tambuatco
2023-04-04  8:54 ` Ihor Radchenko
2023-04-04 10:14   ` Carlo Tambuatco
2023-04-04 10:19     ` Ihor Radchenko
2023-04-04 10:25       ` Carlo Tambuatco
2023-04-04 11:24         ` Ihor Radchenko
2023-04-16  3:34           ` Carlo Tambuatco
2023-04-16 12:12             ` Ihor Radchenko
2023-04-17 10:40               ` Carlo Tambuatco
2023-06-06 15:03                 ` Carlo Tambuatco [this message]
2023-06-07 11:29                   ` Ihor Radchenko

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: https://www.orgmode.org/

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to='CAJb92EwDaZ2seP6Ua_qOzYgOLzUqRmCC1UZm2cKSsJNqS=BERg@mail.gmail.com' \
    --to=oraclmaster@gmail.com \
    --cc=emacs-orgmode@gnu.org \
    --cc=yantar92@posteo.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs/org-mode.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).