Commit 4296fc8dbb6e
Changed files (4)
config
data
17
a3ed73-aaca-4a18-8ed1-3efe7bac855a
1f
74bbae-c4a1-4723-977e-e48900fcd1c7
config/setup-org.el
@@ -15,6 +15,7 @@
(set-register ?n `(file . ,org-default-notes-file))
(set-register ?j `(file . ,org-default-journal-file))
+(use-package s)
(use-package org
:ensure org-plus-contrib ;; load from the package instead of internal
:mode (("\\.org$" . org-mode))
@@ -45,22 +46,86 @@
(:startgroup . nil)
("@link" . ?i) ("@read" . ?r) ("@project" . ?p)
(:endgroup . nil))
- org-use-property-inheritance t
org-log-done 'time
org-log-redeadline 'time
org-log-reschedule 'time
- org-log-into-drawer t)
+ org-log-into-drawer t
+ org-enforce-todo-dependencies t
+ org-refile-targets (append '((org-default-inbox-file :level . 0))
+ (->>
+ (directory-files org-default-projects-dir nil ".org")
+ (--remove (s-starts-with? "." it))
+ (--map (format "%s/%s" org-default-projects-dir it))
+ (--map `(,it :level . 1))))
+ org-refile-use-outline-path 'file
+ org-refile-allow-creating-parent-nodes 'confirm
+ org-outline-path-complete-in-steps nil
+ org-columns-default-format "%80ITEM(Task) %TODO %3PRIORITY %10Effort(Effort){:} %10CLOCKSUM"
+ org-fontify-whole-heading-line t
+ org-pretty-entities t
+ org-ellipsis " …"
+ org-use-property-inheritance t
+ org-global-properties (quote (("EFFORT_ALL" . "0:15 0:30 0:45 1:00 2:00 3:00 4:00 5:00 6:00 0:00")
+ ("STYLE_ALL" . "habit")))
+ org-blank-before-new-entry '((heading . t)
+ (plain-list-item . nil))
+ org-insert-heading-respect-content t
+ org-yank-adjusted-subtrees t)
+ (setcar (nthcdr 4 org-emphasis-regexp-components) 10)
:bind (("C-c o l" . org-store-link)
- ("C-c o r r" . org-refile)))
+ ("C-c o r r" . org-refile))
+ :hook (org-mode . vde/org-mode-hook))
-(use-package org-habit
+(defun vde/org-mode-hook ()
+ "Org-mode hook"
+ (setq show-trailing-whitespace t)
+ (when (not (eq major-mode 'org-agenda-mode))
+ (setq fill-column 90)
+ (auto-revert-mode)
+ (auto-fill-mode)
+ (flyspell-mode)
+ (org-indent-mode)
+ (smartparens-mode)))
+
+(use-package org-id
:after (org)
:config
- (setq org-habit-show-habits-only-for-today nil
- org-habit-graph-column 80))
+ (setq org-id-link-to-org-use-id 'create-if-interactive-and-no-custom-id)
+ (defun eos/org-custom-id-get (&optional pom create prefix)
+ "Get the CUSTOM_ID property of the entry at point-or-marker POM.
+ If POM is nil, refer to the entry at point. If the entry does
+ not have an CUSTOM_ID, the function returns nil. However, when
+ CREATE is non nil, create a CUSTOM_ID if none is present
+ already. PREFIX will be passed through to `org-id-new'. In any
+ case, the CUSTOM_ID of the entry is returned."
+ (interactive)
+ (org-with-point-at pom
+ (let ((id (org-entry-get nil "CUSTOM_ID")))
+ (cond
+ ((and id (stringp id) (string-match "\\S-" id))
+ id)
+ (create
+ (setq id (org-id-new (concat prefix "h")))
+ (org-entry-put pom "CUSTOM_ID" id)
+ (org-id-add-location id (buffer-file-name (buffer-base-buffer)))
+ id)))))
+
+ (defun eos/org-add-ids-to-headlines-in-file ()
+ "Add CUSTOM_ID properties to all headlines in the
+ current file which do not already have one."
+ (interactive)
+ (org-map-entries (lambda ()
+ (eos/org-custom-id-get (point) 'create)))))
+
+(use-package org-crypt
+ :after (org)
+ :config
+ (org-crypt-use-before-save-magic)
+ (setq org-tags-exclude-from-inheritance '("crypt")))
(use-package org-agenda
:after (org)
+ :commands (org-agenda)
:config
(setq org-agenda-span 'day
org-agenda-include-diary t
@@ -73,6 +138,12 @@
("<f12>" . org-agenda)
("C-c o r a" . org-agenda-refile)))
+(use-package org-habit
+ :after (org)
+ :config
+ (setq org-habit-show-habits-only-for-today nil
+ org-habit-graph-column 80))
+
(use-package org-src
:after (org)
:config
@@ -94,6 +165,10 @@
:commands (org-clock-in org-clock-out org-clock-goto)
:bind (("<f11>" . org-clock-goto)))
+(use-package org-attach
+ :config
+ (setq org-link-abbrev-alist '(("att" . org-attach-expand-link))))
+
(use-package ol-eshell
:after (org))
@@ -115,49 +190,39 @@
(use-package ol-notmuch
:after (org))
+(use-package ob-async
+ :after (org))
+
+(use-package ob-go
+ :after (org))
+
+(use-package ob-http
+ :after (org))
+
(defconst site-directory "~/desktop/sites/" "website folder that holds exported org-mode files and more.")
(defconst org-default-publish-technical (concat site-directory "sbr.pm/technical") "publish directory for the technical org-mode files.")
-;;; -*- lexical-binding: t; -*-
+(use-package ox-publish
+ :after (org ox)
+ :config
+ (setq org-html-coding-system 'utf-8-unix))
+(use-package ox-slack
+ :after ox)
+(use-package ox-hugo
+ :after ox
+ :commands (org-hugo-slug)
+ :bind (:map vde-mode-map
+ ("C-c G" . org-hugo-export-wim-to-md))
+ :config
+ (use-package ox-hugo-auto-export))
-(use-package s)
+;;; -*- lexical-binding: t; -*-
(use-package org
:defer t
- :mode (("\\.org$" . org-mode))
- :commands (org-capture org-agenda)
:ensure org-plus-contrib
- :hook (org-mode . vde/org-mode-hook)
:config
(use-package find-lisp)
- (setq org-modules '(org-crypt
- org-docview
- org-id
- org-protocol))
- (setq org-blank-before-new-entry '((heading . t)
- (plain-list-item . nil)))
- (setq org-enforce-todo-dependencies t)
-
- (setq org-refile-use-outline-path 'file
- org-outline-path-complete-in-steps nil
- org-refile-allow-creating-parent-nodes 'confirm)
-
- (setq org-refile-targets (append '((org-default-inbox-file :level . 0))
- (->>
- (directory-files org-default-projects-dir nil ".org")
- (--remove (s-starts-with? "." it))
- (--map (format "%s/%s" org-default-projects-dir it))
- (--map `(,it :level . 1)))))
-
- (setq org-fontify-whole-heading-line t)
-
- (setq org-pretty-entities t)
- (setq org-insert-heading-respect-content t)
- (setq org-ellipsis " …")
-
- (setq org-yank-adjusted-subtrees t)
-
- (setcar (nthcdr 4 org-emphasis-regexp-components) 10)
(use-package org-super-agenda
:config (org-super-agenda-mode))
@@ -247,12 +312,6 @@ Callers of this function already widen the buffer view."
(setq is-subproject t))))
(and is-a-task is-subproject)))
- ;; Set default column view headings: Task Effort Clock_Summary
- (setq org-columns-default-format "%80ITEM(Task) %TODO %3PRIORITY %10Effort(Effort){:} %10CLOCKSUM")
-
- (setq org-global-properties (quote (("Effort_ALL" . "0:15 0:30 0:45 1:00 2:00 3:00 4:00 5:00 6:00 0:00")
- ("STYLE_ALL" . "habit"))))
-
(org-clock-persistence-insinuate)
;; Show lot of clocking history so it's easy to pick items off the C-F11 list
(setq org-clock-history-length 23)
@@ -459,82 +518,9 @@ like this : [[pt:REGEXP:FOLDER]]"
(file-relative-name file dir))))
)
-(defun vde/org-mode-hook ()
- "Org-mode hook"
- (setq show-trailing-whitespace t)
- (when (not (eq major-mode 'org-agenda-mode))
- (setq fill-column 90)
- (auto-revert-mode)
- (auto-fill-mode)
- (flyspell-mode)
- (org-indent-mode)
- (smartparens-mode)))
-
-(use-package org-id
- :after org
- :custom
- (org-id-link-to-org-use-id 'create-if-interactive-and-no-custom-id)
- :config
- (defun eos/org-custom-id-get (&optional pom create prefix)
- "Get the CUSTOM_ID property of the entry at point-or-marker POM.
- If POM is nil, refer to the entry at point. If the entry does
- not have an CUSTOM_ID, the function returns nil. However, when
- CREATE is non nil, create a CUSTOM_ID if none is present
- already. PREFIX will be passed through to `org-id-new'. In any
- case, the CUSTOM_ID of the entry is returned."
- (interactive)
- (org-with-point-at pom
- (let ((id (org-entry-get nil "CUSTOM_ID")))
- (cond
- ((and id (stringp id) (string-match "\\S-" id))
- id)
- (create
- (setq id (org-id-new (concat prefix "h")))
- (org-entry-put pom "CUSTOM_ID" id)
- (org-id-add-location id (buffer-file-name (buffer-base-buffer)))
- id)))))
-
- (defun eos/org-add-ids-to-headlines-in-file ()
- "Add CUSTOM_ID properties to all headlines in the
- current file which do not already have one."
- (interactive)
- (org-map-entries (lambda ()
- (eos/org-custom-id-get (point) 'create)))))
-
-(use-package ob-go
- :after (org))
-(use-package ob-async
- :after (org))
-(use-package ob-http
- :after (org))
-
-(use-package org-crypt
- :after (org)
- :config
- (org-crypt-use-before-save-magic)
- (setq org-tags-exclude-from-inheritance (quote ("crypt"))))
-
(use-package smartparens-org
:after org-mode)
-(use-package ox-publish
- :config
- (setq org-html-coding-system 'utf-8-unix))
-(use-package ox-slack
- :after ox)
-(use-package ox-hugo
- :after ox
- :commands (org-hugo-slug)
- :bind (:map vde-mode-map
- ("C-c G" . org-hugo-export-wim-to-md))
- :config
- (use-package ox-hugo-auto-export))
-
-(use-package org-notify
- :after org
- :config
- (org-notify-start))
-
(use-package org-capture-pop-frame)
(use-package darkroom
data/17/a3ed73-aaca-4a18-8ed1-3efe7bac855a/2020-02-29-14-41-59.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f96bb89ef7260c82a6283061a8e467125b94eb4ecb7320526e27c1525163b87e
+size 63416
data/1f/74bbae-c4a1-4723-977e-e48900fcd1c7/2020-02-29-13-46-08.png
@@ -0,0 +1,3 @@
+version https://git-lfs.github.com/spec/v1
+oid sha256:f85767c14dd416690fd03ef84d921f4fd929a657475e4f54a89b872cb2efcabd
+size 97137
emacs.org
@@ -640,9 +640,11 @@
The /base/ user keybinding for =org-mode= (and related modes) is =C-c o= (e.g. showing
agenda is =C-c o a=, capture is =C-c o c=, …).
-*** TODO Base settings
+*** Base settings :ATTACH:
:PROPERTIES:
:CUSTOM_ID: h:9287c076-1944-4c13-b4e4-c7cbc6587358
+:ID: 1f74bbae-c4a1-4723-977e-e48900fcd1c7
+:Attachments: 2020-02-29-13-46-08.png
:END:
First, let's define some basic constants, mainly on how my main =org= folder is organized.
@@ -735,7 +737,32 @@
- Refile :: In the =org-mode= jargon, this means moving an entry from one heading (parent
entry) to another. This move can be done across files. =org-mode= displays a list of
choice, this list is controlled by the =org-refile-targets= variable.
+
+ The =org-refile-targets= is pretty powerful if you read the doc. You specify a list of
+ file and some /search/ options for org to build its list from. Those options can be the
+ level of the entry, some tag, regular expression, … In my case, I want this list to be
+ all the =org= file in the =project= folder and also the =inbox.org= file. For the inbox,
+ I want to look only at level 0 (aka root), for the other, I want to look at level 1 (aka
+ root and sub entries).
+
+ I also changed the default way to show the refile targets (=level1/level2/level3=) to
+ include the file name. When refiling, you can either do the completion hierarchically
+ (select the file, then the first level, …) or you can display all the choice at once. I
+ tend to prefer having all the choice at once and let my completion framework (=ivy= as
+ of now) to do the /fuzzy/ selection.
+
+ Finally, I want to be able to create new node if I want, while refiling, so I'm setting
+ =org-refile-allow-creating-parent-nodes= to =confirm=, to ask me if I am sure 👼.
- User Interface ::
+ + I want, by default, to display the effort and clock summary on org columns, so I am
+ setting the =org-columns-default-format= to do that.
+
+ [[att:2020-02-29-13-46-08.png]]
+
+ + I want to /fontify/ the whole header line (it tends to look better for some theme)
+ + I want things /pretty/, hence the =org-pretty-entities= 😹
+ + When a entry (or a drawer) is closed, I like having a visual cue that it is. I chose
+ the =…= character to show that. It can be set with =org-ellipsis=.
- Logging :: =org-mode= allows to write the time (or a note) on a entry state change, this
is achieved by the =org-log-*= variables. On marking entries as =DONE= or when
rescheduling them (or changing the deadline), I want to mark the time.
@@ -747,11 +774,20 @@
+ I am setting up =org-use-property-inheritance= to make children node inherit their
parent property. It has a cost on search but I feel, as for tag inheritance, it is
worth the cost.
+ + Still on properties, =org-global-properties= allows you to add values to properties
+ that will show in the completion when setting those. For example, setting =EFFORT_ALL=
+ to a list, will give you those options when you are trying to set the effort property.
+ + I am setting =org-enforce-todo-dependencies= to make sure a parent entry cannot be
+ mark as done if children are not in complete state (=DONE=, =CANCELLED=, …).
+ + I want to add a new blank line whenever I create a new entry *but* I don't want that
+ extra new blank line when adding a new list item. =org-blank-before-new-entry= allow
+ to customize that behavior.
/The =ensure org-plus-contrib= is there to make sure I am loading the =org= module from my
nix configuration and not the built-in =org= module (that might lag in terms of version)/
#+begin_src emacs-lisp
+(use-package s)
(use-package org
:ensure org-plus-contrib ;; load from the package instead of internal
:mode (("\\.org$" . org-mode))
@@ -782,23 +818,102 @@
(:startgroup . nil)
("@link" . ?i) ("@read" . ?r) ("@project" . ?p)
(:endgroup . nil))
- org-use-property-inheritance t
org-log-done 'time
org-log-redeadline 'time
org-log-reschedule 'time
- org-log-into-drawer t)
+ org-log-into-drawer t
+ org-enforce-todo-dependencies t
+ org-refile-targets (append '((org-default-inbox-file :level . 0))
+ (->>
+ (directory-files org-default-projects-dir nil ".org")
+ (--remove (s-starts-with? "." it))
+ (--map (format "%s/%s" org-default-projects-dir it))
+ (--map `(,it :level . 1))))
+ org-refile-use-outline-path 'file
+ org-refile-allow-creating-parent-nodes 'confirm
+ org-outline-path-complete-in-steps nil
+ org-columns-default-format "%80ITEM(Task) %TODO %3PRIORITY %10Effort(Effort){:} %10CLOCKSUM"
+ org-fontify-whole-heading-line t
+ org-pretty-entities t
+ org-ellipsis " …"
+ org-use-property-inheritance t
+ org-global-properties (quote (("EFFORT_ALL" . "0:15 0:30 0:45 1:00 2:00 3:00 4:00 5:00 6:00 0:00")
+ ("STYLE_ALL" . "habit")))
+ org-blank-before-new-entry '((heading . t)
+ (plain-list-item . nil))
+ org-insert-heading-respect-content t
+ org-yank-adjusted-subtrees t)
+ (setcar (nthcdr 4 org-emphasis-regexp-components) 10)
:bind (("C-c o l" . org-store-link)
- ("C-c o r r" . org-refile)))
+ ("C-c o r r" . org-refile))
+ :hook (org-mode . vde/org-mode-hook))
#+end_src
-*** TODO Habits
+I've set-up an =org-mode= hook to add few modes to the default setup.
+- I am really annoyed by trailing white-space so I want them to be shown
+- If the major mod is not =org-agenda-mode= (a sub-mode of =org-mode=)
+ + I set the =fill-column= to ~90~ (instead of the usual ~80~), and I enable =auto-fill= mode.
+ + I turn on =auto-revert-mode= so that the buffer is always up-to-date.
+ + I really like =smartparens= when programming, and I find it also really useful when
+ editing notes in =org-mode=.
+ + I like to have header indented, so I'm enabling =org-indent-mode=.
+ + And of course, I want =flyspell= to be enable so I quickly see my /writing/ mistakes.
#+begin_src emacs-lisp
-(use-package org-habit
+(defun vde/org-mode-hook ()
+ "Org-mode hook"
+ (setq show-trailing-whitespace t)
+ (when (not (eq major-mode 'org-agenda-mode))
+ (setq fill-column 90)
+ (auto-revert-mode)
+ (auto-fill-mode)
+ (flyspell-mode)
+ (org-indent-mode)
+ (smartparens-mode)))
+#+end_src
+
+Let's also use =org-id=…
+
+#+begin_src emacs-lisp
+(use-package org-id
:after (org)
:config
- (setq org-habit-show-habits-only-for-today nil
- org-habit-graph-column 80))
+ (setq org-id-link-to-org-use-id 'create-if-interactive-and-no-custom-id)
+ (defun eos/org-custom-id-get (&optional pom create prefix)
+ "Get the CUSTOM_ID property of the entry at point-or-marker POM.
+ If POM is nil, refer to the entry at point. If the entry does
+ not have an CUSTOM_ID, the function returns nil. However, when
+ CREATE is non nil, create a CUSTOM_ID if none is present
+ already. PREFIX will be passed through to `org-id-new'. In any
+ case, the CUSTOM_ID of the entry is returned."
+ (interactive)
+ (org-with-point-at pom
+ (let ((id (org-entry-get nil "CUSTOM_ID")))
+ (cond
+ ((and id (stringp id) (string-match "\\S-" id))
+ id)
+ (create
+ (setq id (org-id-new (concat prefix "h")))
+ (org-entry-put pom "CUSTOM_ID" id)
+ (org-id-add-location id (buffer-file-name (buffer-base-buffer)))
+ id)))))
+
+ (defun eos/org-add-ids-to-headlines-in-file ()
+ "Add CUSTOM_ID properties to all headlines in the
+ current file which do not already have one."
+ (interactive)
+ (org-map-entries (lambda ()
+ (eos/org-custom-id-get (point) 'create)))))
+#+end_src
+
+… and =org-crypt= (for encrypted =org-mode= files).
+
+#+begin_src emacs-lisp
+(use-package org-crypt
+ :after (org)
+ :config
+ (org-crypt-use-before-save-magic)
+ (setq org-tags-exclude-from-inheritance '("crypt")))
#+end_src
*** TODO Agenda
@@ -806,9 +921,21 @@
:CUSTOM_ID: h:ba2a773a-88d1-4df9-a98c-5e547ee50691
:END:
+The =org-mode= agenda is *the* source of my day-to-day organization. This is how I know
+what I have to do that, what I can do. This is also where I log my work (see /Clocking/
+below).
+
+#+begin_quote
+Due to the way Org works, TODO items, time-stamped items, and tagged headlines can be
+scattered throughout a file or even a number of files. To get an overview of open action
+items, or of events that are important for a particular date, this information must be
+collected, sorted and displayed in an organized way.
+#+end_quote
+
#+begin_src emacs-lisp
(use-package org-agenda
:after (org)
+ :commands (org-agenda)
:config
(setq org-agenda-span 'day
org-agenda-include-diary t
@@ -822,7 +949,49 @@
("C-c o r a" . org-agenda-refile)))
#+end_src
+*** Habits :ATTACH:
+:PROPERTIES:
+:CUSTOM_ID: h:291bae2c-f3eb-4c2a-9415-606afa28ac86
+:ID: 17a3ed73-aaca-4a18-8ed1-3efe7bac855a
+:Attachments: 2020-02-29-14-41-59.png
+:END:
+
+Org has the ability to track the consistency of a special category of
+TODO, called /habits/.
+
+#+begin_quote
+What’s really useful about habits is that they are displayed along
+with a consistency graph, to show how consistent you’ve been at getting
+that task done in the past. This graph shows every day that the task
+was done over the past three weeks, with colors for each day. The
+colors used are:
+
+Blue
+ If the task was not to be done yet on that day.
+Green
+ If the task could have been done on that day.
+Yellow
+ If the task was going to be overdue the next day.
+Red
+ If the task was overdue on that day.
+#+end_quote
+
+This look as followed in the agenda.
+
+[[att:2020-02-29-14-41-59.png]]
+
+#+begin_src emacs-lisp
+(use-package org-habit
+ :after (org)
+ :config
+ (setq org-habit-show-habits-only-for-today nil
+ org-habit-graph-column 80))
+#+end_src
+
*** TODO Sources
+:PROPERTIES:
+:CUSTOM_ID: h:82c3b800-9d80-408d-b3b6-54dc15b0590c
+:END:
#+begin_src emacs-lisp
(use-package org-src
@@ -834,7 +1003,6 @@
org-edit-src-content-indentation 0))
#+end_src
-
*** TODO Capture
:PROPERTIES:
:CUSTOM_ID: h:b29abe71-6e9a-4ddf-8519-453170212777
@@ -852,8 +1020,10 @@
:after org)
#+end_src
-
*** TODO Clocking
+:PROPERTIES:
+:CUSTOM_ID: h:264afe05-79e3-4bff-aafc-9fc726c4034b
+:END:
#+begin_src emacs-lisp
(use-package org-clock
@@ -862,12 +1032,18 @@
:bind (("<f11>" . org-clock-goto)))
#+end_src
-
*** TODO Links
:PROPERTIES:
:CUSTOM_ID: h:afc81fbb-f7a0-401c-8b56-19f51edebd88
:END:
+#+begin_src emacs-lisp
+(use-package org-attach
+ :config
+ (setq org-link-abbrev-alist '(("att" . org-attach-expand-link))))
+#+end_src
+
+
#+begin_src emacs-lisp
(use-package ol-eshell
:after (org))
@@ -903,12 +1079,32 @@
:after (org))
#+end_src
-
*** TODO Archiving
:PROPERTIES:
:CUSTOM_ID: h:fc91dae6-27dc-43de-98bb-09cfcd666ee3
:END:
+*** TODO Litterate programming
+:PROPERTIES:
+:CUSTOM_ID: h:b5f6beba-6195-4ff0-a194-502ac2a9e3da
+:END:
+
+#+begin_src emacs-lisp
+(use-package ob-async
+ :after (org))
+#+end_src
+
+#+begin_src emacs-lisp
+(use-package ob-go
+ :after (org))
+#+end_src
+
+#+begin_src emacs-lisp
+(use-package ob-http
+ :after (org))
+#+end_src
+
+
*** TODO Exporting
:PROPERTIES:
:CUSTOM_ID: h:afad00e0-367c-4c7b-b191-e3ed72be754b
@@ -919,6 +1115,22 @@
(defconst org-default-publish-technical (concat site-directory "sbr.pm/technical") "publish directory for the technical org-mode files.")
#+end_src
+#+begin_src emacs-lisp
+(use-package ox-publish
+ :after (org ox)
+ :config
+ (setq org-html-coding-system 'utf-8-unix))
+(use-package ox-slack
+ :after ox)
+(use-package ox-hugo
+ :after ox
+ :commands (org-hugo-slug)
+ :bind (:map vde-mode-map
+ ("C-c G" . org-hugo-export-wim-to-md))
+ :config
+ (use-package ox-hugo-auto-export))
+#+end_src
+
** TODO Email and newsgroup
:PROPERTIES:
@@ -2965,44 +3177,11 @@
#+begin_src emacs-lisp :tangle config/setup-org.el
;;; -*- lexical-binding: t; -*-
-(use-package s)
-
(use-package org
:defer t
- :mode (("\\.org$" . org-mode))
- :commands (org-capture org-agenda)
:ensure org-plus-contrib
- :hook (org-mode . vde/org-mode-hook)
:config
(use-package find-lisp)
- (setq org-modules '(org-crypt
- org-docview
- org-id
- org-protocol))
- (setq org-blank-before-new-entry '((heading . t)
- (plain-list-item . nil)))
- (setq org-enforce-todo-dependencies t)
-
- (setq org-refile-use-outline-path 'file
- org-outline-path-complete-in-steps nil
- org-refile-allow-creating-parent-nodes 'confirm)
-
- (setq org-refile-targets (append '((org-default-inbox-file :level . 0))
- (->>
- (directory-files org-default-projects-dir nil ".org")
- (--remove (s-starts-with? "." it))
- (--map (format "%s/%s" org-default-projects-dir it))
- (--map `(,it :level . 1)))))
-
- (setq org-fontify-whole-heading-line t)
-
- (setq org-pretty-entities t)
- (setq org-insert-heading-respect-content t)
- (setq org-ellipsis " …")
-
- (setq org-yank-adjusted-subtrees t)
-
- (setcar (nthcdr 4 org-emphasis-regexp-components) 10)
(use-package org-super-agenda
:config (org-super-agenda-mode))
@@ -3092,12 +3271,6 @@
(setq is-subproject t))))
(and is-a-task is-subproject)))
- ;; Set default column view headings: Task Effort Clock_Summary
- (setq org-columns-default-format "%80ITEM(Task) %TODO %3PRIORITY %10Effort(Effort){:} %10CLOCKSUM")
-
- (setq org-global-properties (quote (("Effort_ALL" . "0:15 0:30 0:45 1:00 2:00 3:00 4:00 5:00 6:00 0:00")
- ("STYLE_ALL" . "habit"))))
-
(org-clock-persistence-insinuate)
;; Show lot of clocking history so it's easy to pick items off the C-F11 list
(setq org-clock-history-length 23)
@@ -3304,82 +3477,9 @@
(file-relative-name file dir))))
)
-(defun vde/org-mode-hook ()
- "Org-mode hook"
- (setq show-trailing-whitespace t)
- (when (not (eq major-mode 'org-agenda-mode))
- (setq fill-column 90)
- (auto-revert-mode)
- (auto-fill-mode)
- (flyspell-mode)
- (org-indent-mode)
- (smartparens-mode)))
-
-(use-package org-id
- :after org
- :custom
- (org-id-link-to-org-use-id 'create-if-interactive-and-no-custom-id)
- :config
- (defun eos/org-custom-id-get (&optional pom create prefix)
- "Get the CUSTOM_ID property of the entry at point-or-marker POM.
- If POM is nil, refer to the entry at point. If the entry does
- not have an CUSTOM_ID, the function returns nil. However, when
- CREATE is non nil, create a CUSTOM_ID if none is present
- already. PREFIX will be passed through to `org-id-new'. In any
- case, the CUSTOM_ID of the entry is returned."
- (interactive)
- (org-with-point-at pom
- (let ((id (org-entry-get nil "CUSTOM_ID")))
- (cond
- ((and id (stringp id) (string-match "\\S-" id))
- id)
- (create
- (setq id (org-id-new (concat prefix "h")))
- (org-entry-put pom "CUSTOM_ID" id)
- (org-id-add-location id (buffer-file-name (buffer-base-buffer)))
- id)))))
-
- (defun eos/org-add-ids-to-headlines-in-file ()
- "Add CUSTOM_ID properties to all headlines in the
- current file which do not already have one."
- (interactive)
- (org-map-entries (lambda ()
- (eos/org-custom-id-get (point) 'create)))))
-
-(use-package ob-go
- :after (org))
-(use-package ob-async
- :after (org))
-(use-package ob-http
- :after (org))
-
-(use-package org-crypt
- :after (org)
- :config
- (org-crypt-use-before-save-magic)
- (setq org-tags-exclude-from-inheritance (quote ("crypt"))))
-
(use-package smartparens-org
:after org-mode)
-(use-package ox-publish
- :config
- (setq org-html-coding-system 'utf-8-unix))
-(use-package ox-slack
- :after ox)
-(use-package ox-hugo
- :after ox
- :commands (org-hugo-slug)
- :bind (:map vde-mode-map
- ("C-c G" . org-hugo-export-wim-to-md))
- :config
- (use-package ox-hugo-auto-export))
-
-(use-package org-notify
- :after org
- :config
- (org-notify-start))
-
(use-package org-capture-pop-frame)
(use-package darkroom