zkk / My GTD workflow - 1.0 - obsoleto



considerazioni iniziali

Ho fatto molta fatica a capire perché ci siano un sacco di persone che cercano di trovare questo metodo che (miracolosamente) dovrebbe riuscire a farci raggiungere i nostri obiettivi quando alla fine occorre essenzialmente mettersi di buzzo buono ed iniziare (o continuare) a lavorare.

L’essenza di tutto credo sia trovare un metodo che, in modo semplice e con poco impegno giornaliero/settimanale, ci metta quotidianamente davanti una lista di cose da fare e ci ingaggi nel portare a termine la lista per fine giornata.

Mi è stato di aiuto il corso di Rainer Konig a riguardo, mi ha portato in poco tempo a completarlo in quanto spiegato bene e di facile comprensione.

Purtroppo per colpa mia e del fatto che il mondo Emacs non sia proprio agevole, ho accantonato tutto per un po’ di tempo, tanto che mi ero quasi dimenticato tutto.

Preciso che l’inizio del mio utilizzo di Emacs è stato tramite il sistema Doom (infatti provengo da vim), ma l’ecosistema Doom era troppo complesso da capire, lo si deve usare e basta.

Dopo qualche tempo ho cancellato tutto ed iniziato ad usare Emacs da zero leggendo (sempre da zero) il tutorial ed il manuale formato Info (fino al cap. 15 circa) compresi nel pacchetto.

Ho provato anche il pacchetto org-gtd che è semplice e con pochi fronzoli, giusto quello che serve a me, ma purtroppo non sono riuscito a farlo funzionare a dovere, non riuscivo ad azionare tutte le funzioni che il manuale mi elencava (soprattutto i comandi da utilizzare in visualizzazione dell’agenda), probabilmente è colpa mia.

Ma a questo punto mi sono detto: e se mi facessi un mio workflow semplice semplice mettendo 4 cose di tutte quelle che ha spiegato Rainer nel suo corso? In fondo a me serve qualche categoria (magari nessuna), una =headline= per la cattura dei topic poi faccio io manualmente il refile.

Così ho iniziato e quello che segue è il processo che mi ha portato a realizzarlo descrivendo l’estratto del corso di Rainer nei soli argomenti che ho utilizzato con l’aggiunta di qualche personalizzazione nei file di configurazione. Naturalmente do per scontato alcune conoscenze di base di Emacs e Orgmode.

organizzazione dei task

stati dei task

Dopo profonda riflessione, qualsiasi task inserito potrà avere i seguenti stati ed avrà le visibilità in agenda descritte:

Tutte le singole azioni/task devono poi passare, prima dell’archiviazione, in uno dei seguenti 2 stati:

Vi sono poi particolari obiettivi, magari generici tipo “quest’anno voglio leggere almeno un libro al mese” che sono inseriti in agenda alla scadenza dell’obiettivo e sono monitorati all’interno della revisione periodica della lista, come peraltro le altre cose. Questi possono avere i seguenti stati:

TAGS

Agli stati che posso attribuire si aggiungono i TAG per identificare l’ambito (o il contesto) del task, come ad esempio cose che si fanno con il telefono avranno il tag PHONE oppure CALL, cose che si fanno all’aperto OUTSIDE, che si fanno al lavoro WORK, e così via.

Tenuto conto che non metterò (forse) un task che mi ricorda di chiamare mia zia per farle gli auguri ho deciso di usare i TAG in modo leggermente differente identificando gli ambiti o gli argomenti a cui si riferiscono e precisamente:

file ‘gtd.org’

Tutto quanto si realizza creando gli headline nel file gtd.org e configurandolo all’inizio con le righe seguenti:

#+SEQ_TODO: REPEAT(r) NEXT(n@/!) TODO(t@/!) WAITING(w@/!) SOMEDAY(s@/!) PROJ(p) | DONE(d@) CANCELLED(c@)
#+SEQ_TODO: GOAL(g) | ACHIEVED(a@) MISSED(m@)
#+TAGS: NEW(n) STUDIO(s) LIBRI(l) BENESSERE(b) CASA(c) VARIE(v) APPUNTI(A) ARCHIVE(a)

Ecco come si presentano gli headline (o categorie):

* Capture                        :NEW:
* Studio                         :STUDIO:
* Libri                          :LIBRI:
* Benessere                      :BENESSERE:
* Casa                           :CASA:
* Varie                          :VARIE:
* Appunti                        :APPUNTI:

cartella emacs/TODO

Ho poi deciso di predisporre una cartella TODO che viene visualizzata all’avvio di emacs dove eventualmente inserire i file che sono ‘in lavorazione’.

Questa cartella può essere sincronizzata tramite git/magit in modo da poter recuperare anche tutto il pregresso all’occorrenza.

Vi sono invece compiti/task che vanno inseriti nell’apposito file gtd.org.

configurazione

overview

Ho creato in proposito all’interno della cartella ~/.emacs.d/ il file di configurazione che ho chiamato gtd-selfmade.el caricato da init.el con il seguente codice:

(load-file "~/.emacs.d/gtd-selfmade.el")

general org settings

(setq org-agenda-files (quote ("~/emacs/gtd/gtd.org")))
(setq org-refile-targets nil)
(setq org-refile-use-outline-path nil)
(setq org-refile-allow-creating-parent-nodes (quote confirm))
(setq org-deadline-warning-days 3)
(setq org-log-into-drawer t)
(setq org-log-reschedule 'note)
(setq org-tags-column 62)
(setq org-agenda-start-with-follow-mode t)

Projects settings

(setq org-enforce-todo-dependencies t)
(setq org-track-ordered-property-with-tag t)
(setq org-agenda-dim-blocked-tasks t)
(setq org-enforce-todo-checkbox-dependencies t)

org capture settings and template

;;Full window for org-capture
(add-hook 'org-capture-mode-hook 'delete-other-windows)
;;Custom Capture Templates
(setq org-capture-templates
			'(
				("a" "Appunti" entry
				 (file+headline "~/emacs/gtd/gtd.org" "Appunti")
				 (file "~/emacs/gtd/tpl/tpl-appunti.txt"))
				("i" "ToDo" entry
				 (file+headline "~/emacs/gtd/gtd.org" "Capture")
				 (file "~/emacs/gtd/tpl/tpl-todo.txt"))
				("j" "Journal" entry
				 (file+olp+datetree "~/emacs/gtd/journal.org")
				 "* %<%H:%M> - %^{Titolo}")
				)
			)

org agenda view settings

(setq org-agenda-custom-commands
			(quote
			 (("A" "Agenda and all NEXT tasks"
				 ((agenda ""
									((org-agenda-overriding-header "Agenda")
									 (org-agenda-span
										(quote day))))
					(tags-todo "TODO="NEXT""
										 ((org-agenda-overriding-header "NEXT Tasks")))
					)
				 nil
				 ("~/emacs/gtd/export/agenda-deb.html"
					"~/emacs/gtd/export/agenda-deb.txt"
					"~/emacs/gtd/export/agenda-deb.pdf"
					"~/emacs/gtd/export/agenda-deb.ps")
				 )
				)
			 )
			)

descrizione files

workflow

inserimento

L’inserimento di un nuovo impegno/task/appunto parte con la funzione org-capture abbinata al tasto F5. Ci viene proposta la scelta tra:

Le prime due voci salvano nel file gtd.org con la sola differenza che il primo (a) salva l’appunto nella relativa headline (Appunti) e con la categoria APPUNTI, mentre il secondo (i) ‘cattura’ l’idea e la salva nella sezione Capture (tag NEW).

La voce j (Journal) salva la nota nel file journal.org.

visualizzazione/revisione

visualizzazione journal

Questo è un normalissimo file Org in cui i dati vengono inseriti/salvati seguendo lo schema della data di inserimento anno/mese/giorno che possono essere esplosi e ricompattati tramite =TAB=.

visualizzazione agenda

La combinazione di tasti M-F5 e la successiva pressione del tasto A visualizza l’agenda del giorno corrente e, nella parte sotto, tutti i task marcati con NEXT.

Posizionandosi accanto al task/compito con il mouse posso vedere lo stesso nel file gtd.org nella parte sopra del frame e, a questo punto, posso premere le seguenti (solite) combinazioni di tasti:

Per uscire dall’agenda premo q.

revisione task/compiti

Alla combinazione tasti C-F5 è invece collegata la visualizzazione degli impegni/appunti che non hanno assegnata una scadenza o uno stato (TODO, NEXT, ecc…) e serve quindi ad assegnare quelle voci che ho inserito oppure a vedere se per caso qualche voce non ha assegnato scadenza o marcature (utile anche in fase di revisione).

Per uscire dalla visualizzazione si preme sempre =q=.

archiviazione

Come accennato il file gtd.org= archivia gli elementi per argomento. All’interno di ogni voce/headline dobbiamo impostare le proprietà conseguentemente, facciamo solo 2 esempi.

categoria/headline/TAG =STUDIO=

:PROPERTIES:
:ARCHIVE: archivio-gtd.org::* Studio
:END:

categoria/headline/TAG =LIBRI=

:PROPERTIES:
:ARCHIVE: archivio-gtd.org::* Libri
:END: