Sep 01

Configuración de org-mode: TODO + agenda + imágenes + notificaciones

Tag: advancedadmin @ 8:08 am

Con esta configuración de org-mode para emacs podremos movernos de manera más conveniente en org-mode. Definimos algunos keybidings típicos así como activamos el sistema de logs para guardar el accountability de las tareas así como su timestamp. Además guardaremos el estado de las mismas conectándolo con el fichero en tasks.org y activando un sistema de checklist de org-mode. Por último incluiremos los diccionarios de babel, que nos permitirán mostrar imágenes inline, y sintaxis para interpretar los múltiples lenguajes:

;; ---------------------------------------------------------------------------
;; Org-mode configuration
;; ---------------------------------------------------------------------------

(setq org-log-done 'time)
(define-key global-map "\C-cl" 'org-store-link)
(define-key global-map "\C-ca" 'org-agenda)
(setq org-log-done t)

;; Connect agenda with org files
(setq org-agenda-files (list "~/zsync/tasks.org"))

(add-to-list 'load-path (expand-file-name "~/.emacs.d/ch/"))
(require 'org-checklist)

;; Show images inline when opening an org file
(add-hook 'org-babel-after-execute-hook 'org-display-inline-images)
(add-hook 'org-mode-hook 'org-display-inline-images)

Keybindings para manejar tareas:

  • C-c C-c para finalizar una tarea simple
  • C-c C-t para finalizar un set complejo de tareas
  • C-c a t para marcar como tarea a realizar y marcarla como ‘TODO’

Keybindings para manejar prioridades en las tareas:

  • C-c , to set tasks priority (priority must be on the top of org file)
  • C-c , + para incrementar la prioridad de una tarea
  • C-c , – para decrementar la prioridad de una tarea

Keybindings clave para la agenda:

  • C-c C-d para insertar una fecha limite para un set de tareas (deadline)
  • C-c C-s para añadir al backlog o hacer schedule de un set de tareas (schedule)
  • Una vez haya sido seleccionado la tarea deseada, presiona enter acto seguido C-c a a para org-agenda Now pres ‘l‘ (lower case L) to set log mode on

Keybindings para tiempos sobre tareas:

  • C-c / d para comprobar tareas con una fecha limite (deadlines)
  • C-c / b para comprobar tareas pendientes y deadlines (backlog)
  • C-c / a para comprobar tareas pasadas deadlines (after)

Keybindings para cambiar formas de visualización en tareas:

  • C-c – Cambia la numeración (se debe evitar usarlo sobre los títulos, ya que aquí se ignoraría el TODO)

Después de esto podemos añadir más funcionalidades, como limpiar todos los reminders de la agenda para el día de hoy y volver a construirlos de cero y activar todas las notificaciones de nuevo. Además podemos hacer que esta tarea se ejecute automaticamente después de medianoche.

;; ---------------------------------------------------------------------------
;; Reminders
;; ---------------------------------------------------------------------------

; Erase all reminders and rebuilt reminders for today from the agenda
(defun bh/org-agenda-to-appt ()
(interactive)
(setq appt-time-msg-list nil)
(org-agenda-to-appt))

; Rebuild the reminders everytime the agenda is displayed
(add-hook 'org-finalize-agenda-hook 'bh/org-agenda-to-appt 'append)

; This is at the end of my .emacs - so appointments are set up when Emacs starts
; This line is currently failing, need more investigation
;(bh/org-agenda-to-appt)

; Activate appointments so we get notifications
(appt-activate t)

; If we leave Emacs running overnight - reset the appointments one minute after midnight
(run-at-time "24:01" nil 'bh/org-agenda-to-appt)

Por último podemos cambiar el ciclo de tareas por defecto para tener un TODO-INPROGRESS-WAITING(opcional)-DONE y poder emplear atajos o shortcuts de teclado para ello.

(setq org-todo-keywords
'((sequence "TODO(t!)" "INPROGRESS(i!)" "WAITING(w!/!)" "|" "DONE(d!)")
))

Leave a Reply

You must be logged in to post a comment.