* Re: [BUG] Org-9.6.x org templates hang on 'clipboard pasted as level 2 subtree'...
2023-04-17 10:40 ` Carlo Tambuatco
@ 2023-06-06 15:03 ` Carlo Tambuatco
2023-06-07 11:29 ` Ihor Radchenko
0 siblings, 1 reply; 11+ messages in thread
From: Carlo Tambuatco @ 2023-06-06 15:03 UTC (permalink / raw)
To: Ihor Radchenko; +Cc: Org-Mode Mailing List
[-- 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
^ permalink raw reply [flat|nested] 11+ messages in thread