Org-Mode: Vista de agenda personalizada

2019-03-19

Podemos personalizar la vista de la agenda para que se vea adapte a nuestro flujo de trabajo, yo la he personalizado para que muestre solamente dos días de la agenda, hoy y mañana, además he clasificado la vista por tareas, las que están iniciadas, siguientes, por hacer, canceladas, etc.

He configurado dos vistas, una para el trabajo y otra para mis asuntos personales, además que configurado la tecla F7 para ir de una manera rápida a estas agendas, F7 + p me lleva a la agenda personal, y F7 + o a la del trabajo.

Además los meses y días de la semana se mostraran en español y la agenda se mostrara en la ventana actual.

Configuración

Debemos de añadir en nuestro fichero de configuración de emacs, utilizo use-package,

 (use-package org-agenda
:ensure nil
:after org
:bind ([f7] . org-agenda)
:custom
  (org-agenda-dim-blocked-tasks t)
  (org-agenda-files '("~/.personal/agenda"))
  (org-agenda-include-diary nil)
  (org-agenda-diary-file "~/.personal/agenda/diario.org")
  (org-agenda-inhibit-startup t)
  (org-agenda-show-log t)
  (org-agenda-skip-deadline-if-done t)
  (org-agenda-skip-deadline-prewarning-if-scheduled 'pre-scheduled)
  (org-agenda-skip-scheduled-if-done t)
  (org-agenda-span 2)
  (org-agenda-start-on-weekday 1)
  (org-agenda-sticky nil)
  (org-agenda-window-setup 'current-window) ;Sobrescribe la ventana actual con la agenda
  (org-agenda-tags-column -100)
  (org-agenda-time-grid '((daily today require-timed)))
  (org-agenda-use-tag-inheritance t)
  (org-directory "~/.personal")
  (org-archive-location "~/.personal/archivo/%s_archivo.org::datetree/")
  (org-enforce-todo-dependencies t)
  (org-habit-show-habits-only-for-today nil)
  (org-track-ordered-property-with-tag t)
  (org-icalendar-timezone "Europe/Madrid")
  (calendar-day-name-array ["domingo" "lunes" "martes" "miórcoles"
			   "jueves" "viernes" "sábado"])
  (calendar-month-name-array ["enero" "febrero" "marzo" "abril" "mayo"
			     "junio" "julio" "agosto" "septiembre"
			     "octubre" "noviembre" "diciembre"])
(org-agenda-custom-commands
  '(("h" "Habitos" tags-todo "STYLE=\"habit\""
     ((org-agenda-overriding-header "Habitos")
      (org-agenda-sorting-strategy
       '(todo-state-down effort-up category-keep))))
    ("o" "Trabajo"
      ((agenda "" )
       (tags-todo "trabajo/INICIADA"
	     ((org-agenda-overriding-header "Tareas Iniciadas")
	      (org-tags-match-list-sublevels t)))
       (tags-todo "trabajo/SIGUIENTE"
	     ((org-agenda-overriding-header "Siguientes Tareas")
	      (org-tags-match-list-sublevels t)))
       (tags-todo "trabajo/TODO"
	     ((org-agenda-overriding-header "Tareas por Hacer")
	      (org-tags-match-list-sublevels t)))
       (tags "trabajo/CANCELADA"
	     ((org-agenda-overriding-header "Tareas Canceladas")
	      (org-tags-match-list-sublevels t)))
       (tags "trabajo/PUBLICADA"
	     ((org-agenda-overriding-header "Tareas terminadas sin Archivar")
	      (org-tags-match-list-sublevels t)))
       (tags "reubicar"
	     ((org-agenda-overriding-header "Reubicar")
	      (org-tags-match-list-sublevels t)))
       nil))
  ;; Reportes personales
  ("p"  "Personal"
      ((agenda "" )
       (tags-todo "personal/INICIADA"
	     ((org-agenda-overriding-header "Tareas Iniciadas")
	      (org-tags-match-list-sublevels t)))
       (tags-todo "personal/SIGUIENTE"
	     ((org-agenda-overriding-header "Siguientes Tareas")
	      (org-tags-match-list-sublevels t)))
       (tags-todo "personal/TODO"
	     ((org-agenda-overriding-header "Tareas por Hacer")
	      (org-agenda-todo-ignore-deadlines 'future)
	      (org-agenda-todo-ignore-scheduled 'future)
	      (org-agenda-tags-todo-honor-ignore-options t)
	      (org-tags-match-list-sublevels t)))
       (tags "personal/CANCELADA"
	     ((org-agenda-overriding-header "Tareas Canceladas")
	      (org-tags-match-list-sublevels t)))
       (tags "personal/PUBLICADA"
	     ((org-agenda-overriding-header "Tareas terminadas sin Archivar")
	      (org-tags-match-list-sublevels t)))
       (tags "reubicar"
	     ((org-agenda-overriding-header "Reubicar")
	      (org-tags-match-list-sublevels t)))
       nil))
)))

Explicación

  • :bind ([f7] . org-agenda) Configura F7 para llamar a la agenda

  • (org-agenda-files '("~/.personal/agenda")) donde están situados los ficheros que va a utilizar a la agenda

  • (org-agenda-include-diary nil) y (org-agenda-diary-file "~/.personal/agenda/diario.org") no voy utilizar el diario de emacs e indico cual va a ser el diario a utilizar por org.

  • (org-agenda-span 2) solo muestra dos días.

  • (org-agenda-start-on-weekday 1) el primer día es el lunes

  • (org-agenda-window-setup 'current-window) sobrescribe la ventana actual con la agenda

tags

Busca entre los ficheros de la agenda (org-agenda-files) aquellas tareas que tengan una etiqueta dada

tags-todo

Al igual que la anterior pero además la tarea debe de tener el estado que se indica

Habrás notado que hay mas opciones, como por ejemplo la ubicación del archivo de tareas finalizadas, pero estas la veremos en próximos artículos

Espero que te haya gustado, pasa un buen día. 🐧

Ingrese la dirección de su instancia


Más publicaciones como esta

Org-Mode: Notificaciones nativas de escritorio

2021-03-15 | #org-mode

Llevaba tiempo detrás de configurar emacs para que me mostrara las nóstico nativas del escritorio para los recordatorio en org-mode. He probado “org-alert” y “alert” pero no parecen funcionar. Finalmente encontró la forma de hacerlo con appt en e ste articulo explicaró cómo configurar las notificaciones de escritorio nativas en gnu/linux. El código utilizado es el siguiente y las opciones creo que se explican por si solas (require 'appt) (appt-activate 1) (use-package notifications :demand t) (setq appt-display-format 'window appt-message-warning-time '15) (setq appt-disp-window-function (lambda (nmins curtime msg) (notifications-notify :title "Recordatorio!

Continuar leyendo 


Emacs como editor por defecto

2019-10-03 | #emacs #linux

Si utilizas Emacs como tu editor de textos favorito quizás te interese hacer que Emacs se ejecute de forma predeterminada cada vez que abras un archivo desde el gestor de ficheros. Además, haciendo uso de la versión servidor de Emacs, podemos conectarnos rápidamente mediante emacsclient al servidor, ya que el archivo de configuración y los paquetes para cada nuevo archivo que se abra, solo se cargarán una primera vez cuando ejecutemos el servidor Emacs

Continuar leyendo 