Reorganizar las capturas de la agenda con plantillas
Llevo tiempo oyendo hablar de GTD1 como una forma de organizarse las tareas y flujo de trabajo que consigue aumentar la productividad y reducir el estrés. Sin embargo, no ha sido hasta hace unas semanas que me he propuesto empezar a aplicarlo a mi caso. Mi vida se ha ido complicando ─complicándomela yo sólo, se entiende─ y necesito un mejor control de las cosas que debo hacer. Entiendo que GTD me servirá para eso ─y algunos ya me han dicho que o me sirve o no habrá nada que me sirva─. Llevo muy poco estudiado sobre el tema de cómo funciona el sistema, pero lo poco que llevo hace énfasis en la captura de tareas.
Tengo que anotar tareas para varios aspectos de mi vida: las cosas del trabajo, las cosas de la asociación con la que colaboro, otras cosas que son personales y otras relacionadas con la Frateco de esperanto. Las tareas por tanto, llevarán las etiquetas correspondientes a esos aspectos y se anotarán todas en la agenda, para que estén juntas, pero no revueltas.
Ayer mismo, el amigo Rui Figueiredo me enlazaba un fichero de captura bastante interesante y completo que me ha hecho replantearme lo que tenía ya hecho, añadiendo algunas cosas y cambiando el cómo lo hacía también. El resultado completo, de cómo han quedado mis plantillas para hacer la captura, lo pongo al final del artículo.
La primera decisión ha sido sacar las plantillas de captura del
init.el
y las he puesto en un fichero, dentro del mismo directorio
donde tengo la agenda. ¿Por qué? Pues básicamente porque de momento lo
quiero compartir entre dispositivos, igual que comparto la agenda,
para ir haciendo modificaciones según vaya aprendiendo cómo funciona
el GTD. Además, ha quedado un listado bastante largo y hace más
confuso el fichero de configuración de Emacs así que la decisión
redunda también en mayor claridad del código.
Básicamente, las plantillas están divididas en tres grupos principales:
- Tareas pendientes. Son las tareas que hay que hacer pero no tienen una fecha determinada para hacerlas. Son ese tipo de cosas que me he responsabilizado a hacer (no hace falta que me lo recuerdes cada seis meses).
- Tareas a la espera. Son las tareas que hay que hacer pero no dependen de uno mismo, bien porque están delegadas en otras personas, bien porque dependen de otra tarea anterior, o por cualquier otro motivo, están esperando que se las complete.
- Tareas con fecha límite. Algunas de las tareas tienen una fecha concreta en las que tienen que estar realizadas, o bien un momento concreto en las que hacerlas. Por ejemplo, las reuniones, las conferencias y algunas otras cosas que hago, como charlas en colegios o sesiones clínicas, son las típicas que se encontrarán aquí.
Además, como he dicho antes, necesito saber cuándo una tarea pertenece a qué aspecto de mi vida. Y tengo varios:
- Trabajo. Todas las acciones y tareas destinadas a ingresar dinero en mi cuenta corriente.
- Asociación. Colaboro con una asociación que se llama Protección a la Infancia Contra el Abuso. Les echo una mano como psicólogo, aunque también con otras tareas.
- Personal. Todas las demás acciones, que no son del trabajo ni de la asociación. Por ejemplo, todas las cosas que hago relacionadas con el Esperanto.
Capturas que no son para la agenda
Teniendo ya la inercia de capturar cosas y copiándome un poco de los
sistemas de captura que he encontrado por ahí, decidí tener también la
posibilidad de capturar información que no tiene que ver con la
agenda, o con las tareas. También puedo capturar anotaciones en un
fichero especial que he llamado bitacora.org
. En él tengo dos tipos
de anotaciones:
Notas. En el diario se pueden hacer anotaciones que me gusta ordenar por fechas y por eso, lo he metido de la siguiente forma:
("nd" "Anotar (d) diario" entry (file+headline "~/agenda/bitacora.org" "Diario") "** %U %?" :empty-lines 1)
Ideas. Hay veces que se me ocurre alguna idea que no puedo desarrollar en ese momento. Ideas, por ejemplo, para artículos del blog, o para los sienes y sienes de proyectos, aventuras conversacionales y otras historias que tengo.
("ni" "Anotar (i) idea" entry (file+headline "~/agenda/bitacora.org" "Ideas") "** Idea para %^{Tema} :PROPERTIES: :Tema: %\\1 :fecha: %U :END: %?" :empty-lines 1)
Al utilizar esta última plantilla, el sistema de captura me preguntará por el Tema y luego me dejará escribir lo que sea, marcándolo con la fecha correspondiente.
Sin embargo, el gran avance de lo que he copiado (adaptado) de otros
sistemas de captura es la posibilidad de tomar datos personales.
Aunque utilizo como base de datos el BBDB
. Porque funciona, porque
está completo, me permite importar y exportar a vcard
, mientras que
otros sistemas en org-mode
sólo me permiten importar. Normalmente,
cuando tomo notas de datos personales lo hago directamente a la base
de datos, pero en ocasiones no la tengo a mano, porque está guardada
en un disco externo encriptado y a veces no lo tengo montado. Así que
he planteado la siguiente solución con las plantillas de captura:
("nc" "Anotar (c) contacto" entry (file "~/agenda/especiales/personal.org.gpg") "* %^{Nombre} %^{Apellidos}%? :PROPERTIES: :Nombre: %\\1 :Apellidos: %\\2 :F-nacim: %^{F-nacim}u :Móvil: %^{Móvil} :Email: %^{Email} :Web: :Dirección: %^{Dirección} :Ciudad: %^{Ciudad} :Provincia: %^{Provincia} :Cód.Pos: %^{Código Postal} :Compañía: :Trab-Grupo: :Trab-puesto: :Trab-Tel.: :Trab-Email: :Trab-Web: :Trab-Dirección: :Trab-Oficina: :Trab-ciudad: :Trab-Provincia: :Trab-CP: :Notas: :END:" :empty-lines 1)
Como se puede ver, la captura va a un fichero especial que he llamado
personal.org.gpg
porque se encuentra cifrado con GPG
. Los datos
se guardan, por tanto a buen recaudo hasta que los pueda pasar a la
base de datos junto con todos los demás.
Los códigos del estilo %^{Nombre}
lo que hacen es decirle a
org-capture
que debe preguntar por un dato Nombre
que el usuario
debe introducir en el buffer. Los códigos del estilo %\\1
lo que
hace es sustituir ese código por el parámetro 1
, en nuestro caso el
nombre, que introduzca el usuario.
Y por último, el cursor se quedará, una vez introducidos todos los
campos que se han marcado interactivamente, en la posición indicada
por los caracteres %?
.
El fichero de plantillas completo
Este es el resultado:
;; Capturar cualquier cosa a formato org-mode (setq org-capture-templates ; Es una lista de listas así que vamos por partes '(("t" "Tarea Pendiente") ("tt" "Tarea Simple (t) trabajo" entry (file "~/agenda/agenda.org") "* PENDIENTE %? \t :trabajo: :PROPERTIES: :CREATE: %U :END: :LOGBOOK: - State \"PENDIENTE\" from \"\" %U :END:" :empty-lines 1) ("ta" "Tarea Simple (a) asociación" entry (file+headline "~/agenda/agenda.org" "Asociación") "* PENDIENTE %? \t :asociación: :PROPERTIES: :CREATE: %U :END: :LOGBOOK: - State \"PENDIENTE\" from \"\" %U :END:" :empty-lines 1) ("tp" "Tarea Simple (a) personal" entry (file+headline "~/agenda/agenda.org" "Personal") "* PENDIENTE %? \t :personal: :PROPERTIES: :CREATE: %U :END: :LOGBOOK: - State \"PENDIENTE\" from \"\" %U :END:" :empty-lines 1) ;;; Capturar tareas que pasan a estar a la espera ("e" "Tarea a la espera") ("et" "Tarea Simple (t) trabajo" entry (file "~/agenda/agenda.org") "* ESPERANDO %? \t :trabajo: :PROPERTIES: :CREATE: %U :END: :LOGBOOK: - State \"ESPERANDO\" from \"\" %U :END:" :empty-lines 1) ("ea" "Tarea Simple (a) asociación" entry (file+headline "~/agenda/agenda.org" "Asociación") "* ESPERANDO %? \t :asociación: :PROPERTIES: :CREATE: %U :END: :LOGBOOK: - State \"ESPERANDO\" from \"\" %U :END:" :empty-lines 1) ("ep" "Tarea Simple (p) personal" entry (file+headline "~/agenda/agenda.org" "Personal") "* ESPERANDO %? \t :personal: :PROPERTIES: :CREATE: %U :END: :LOGBOOK: - State \"ESPERANDO\" from \"\" %U :END:" :empty-lines 1) ;;; Capturas que tienen «deadline» asociada ("l" "Tarea con fecha límite") ("lt" "Tarea (t) trabajo" entry (file "~/agenda/agenda.org") "* PENDIENTE %? \t :trabajo: DEADLINE: %(substring (call-interactively 'org-deadline) 12) :PROPERTIES: :CREATE: %U :END: :LOGBOOK: - State \"PENDIENTE\" from \"\" %U :END:" :empty-lines 1) ("la" "Tarea (a) asociación" entry (file+headline "~/agenda/agenda.org" "Asociación") "* PENDIENTE %? \t :asociación: DEADLINE: %(substring (call-interactively 'org-deadline) 12) :PROPERTIES: :CREATE: %U :END: :LOGBOOK: - State \"PENDIENTE\" from \"\" %U :END:" :empty-lines 1) ("lp" "Tarea (p) personal" entry (file+headline "~/agenda/agenda.org" "Personal") "* PENDIENTE %? \t :personal: DEADLINE: %(substring (call-interactively 'org-deadline) 12) :PROPERTIES: :CREATE: %U :END: :LOGBOOK: - State \"PENDIENTE\" from \"\" %U :END:" :empty-lines 1) ;;; Templates de captura para cosas que no son para la agenda ("n" "Capturas no para agenda") ("nc" "Anotar (c) contacto" entry (file "~/agenda/especiales/personal.org.gpg") "* %^{Nombre} %^{Apellidos}%? :PROPERTIES: :Nombre: %\\1 :Apellidos: %\\2 :F-nacim: %^{F-nacim}u :Móvil: %^{Móvil} :Email: %^{Email} :Web: :Dirección: %^{Dirección} :Ciudad: %^{Ciudad} :Provincia: %^{Provincia} :Cód.Pos: %^{Código Postal} :Compañía: :Trab-Grupo: :Trab-puesto: :Trab-Tel.: :Trab-Email: :Trab-Web: :Trab-Dirección: :Trab-Oficina: :Trab-ciudad: :Trab-Provincia: :Trab-CP: :Notas: :END:" :empty-lines 1) ("nd" "Anotar (d) diario" entry (file+headline "~/agenda/bitacora.org" "Diario") "** %U %?" :empty-lines 1) ("ni" "Anotar (i) idea" entry (file+headline "~/agenda/bitacora.org" "Ideas") "** Idea para %^{Tema} :PROPERTIES: :Tema: %\\1 :fecha: %U :END: %?" :empty-lines 1) ;;; Lista de templates de captura para Frateco ("f" "Tareas para Frateco Esperanto") ("ff" "Tarea (f) Frateco" entry (file+headline "~/agenda/agenda.org" "Esperanto") "* PENDIENTE %? \t :personal: DEADLINE: %(substring (call-interactively 'org-deadline) 12) :PROPERTIES: :CREATE: %U :END: :LOGBOOK: - State \"PENDIENTE\" from \"\" %U :END:" :empty-lines 1) ))
Footnotes:
Acrónimo de Getting Things Done.
Comentarios