{"id":901,"date":"2024-09-01T08:08:36","date_gmt":"2024-09-01T06:08:36","guid":{"rendered":"https:\/\/www.blackhats.es\/wordpress\/?p=901"},"modified":"2024-09-01T08:08:36","modified_gmt":"2024-09-01T06:08:36","slug":"configuracion-de-org-mode-todo-agenda-imagenes-notificaciones","status":"publish","type":"post","link":"https:\/\/www.blackhats.es\/wordpress\/?p=901","title":{"rendered":"Configuraci\u00f3n de org-mode: TODO + agenda + im\u00e1genes + notificaciones"},"content":{"rendered":"<p>Con esta configuraci\u00f3n de org-mode para emacs podremos movernos de manera m\u00e1s conveniente en org-mode. Definimos algunos keybidings t\u00edpicos as\u00ed como activamos el sistema de logs para guardar el accountability de las tareas as\u00ed como su timestamp. Adem\u00e1s guardaremos el estado de las mismas conect\u00e1ndolo con el fichero en tasks.org y activando un sistema de checklist de org-mode. Por \u00faltimo incluiremos los diccionarios de babel, que nos permitir\u00e1n mostrar im\u00e1genes inline, y sintaxis para interpretar los m\u00faltiples lenguajes:<\/p>\n<pre style=\"padding-left: 40px;\">;; ---------------------------------------------------------------------------\r\n;; Org-mode configuration\r\n;; ---------------------------------------------------------------------------\r\n\r\n(setq org-log-done 'time)\r\n(define-key global-map \"\\C-cl\" 'org-store-link)\r\n(define-key global-map \"\\C-ca\" 'org-agenda)\r\n(setq org-log-done t)\r\n\r\n;; Connect agenda with org files\r\n(setq org-agenda-files (list \"~\/zsync\/tasks.org\"))\r\n\r\n(add-to-list 'load-path (expand-file-name \"~\/.emacs.d\/ch\/\"))\r\n(require 'org-checklist)\r\n\r\n;; Show images inline when opening an org file\r\n(add-hook 'org-babel-after-execute-hook 'org-display-inline-images)\r\n(add-hook 'org-mode-hook 'org-display-inline-images)<\/pre>\n<p>Keybindings para manejar tareas:<\/p>\n<ul>\n<li><strong>C-c C-c<\/strong> para finalizar una tarea simple<\/li>\n<li><strong>C-c C-t<\/strong> para finalizar un set complejo de tareas<\/li>\n<li><strong>C-c a t<\/strong> para marcar como tarea a realizar y marcarla como &#8216;TODO&#8217;<\/li>\n<\/ul>\n<p>Keybindings para manejar prioridades en las tareas:<\/p>\n<ul>\n<li><strong>C-c ,<\/strong> to set tasks priority (priority must be on the top of org file)<\/li>\n<li><strong>C-c , +<\/strong> para incrementar la prioridad de una tarea<\/li>\n<li><strong>C-c , &#8211;<\/strong> para decrementar la prioridad de una tarea<\/li>\n<\/ul>\n<p>Keybindings clave para la agenda:<\/p>\n<ul>\n<li><strong>C-c C-d<\/strong> para insertar una fecha limite para un set de tareas (deadline)<\/li>\n<li><strong>C-c C-s<\/strong> para a\u00f1adir al backlog o hacer schedule de un set de tareas (schedule)<\/li>\n<li>Una vez haya sido seleccionado la tarea deseada, presiona <strong>enter<\/strong> acto seguido <strong>C-c a a<\/strong> para org-agenda Now pres &#8216;<strong>l<\/strong>&#8216; (lower case L) to set log mode on<\/li>\n<\/ul>\n<p>Keybindings para tiempos sobre tareas:<\/p>\n<ul>\n<li><strong>C-c \/ d<\/strong> para comprobar tareas con una fecha limite (deadlines)<\/li>\n<li><strong>C-c \/ b<\/strong> para comprobar tareas pendientes y deadlines (backlog)<\/li>\n<li><strong>C-c \/ a<\/strong> para comprobar tareas pasadas deadlines (after)<\/li>\n<\/ul>\n<p>Keybindings para cambiar formas de visualizaci\u00f3n en tareas:<\/p>\n<ul>\n<li><strong>C-c &#8211;<\/strong> Cambia la numeraci\u00f3n (se debe evitar usarlo sobre los t\u00edtulos, ya que aqu\u00ed se ignorar\u00eda el TODO)<\/li>\n<\/ul>\n<p>Despu\u00e9s de esto podemos a\u00f1adir m\u00e1s funcionalidades, como limpiar todos los reminders de la agenda para el d\u00eda de hoy y volver a construirlos de cero y activar todas las notificaciones de nuevo. Adem\u00e1s podemos hacer que esta tarea se ejecute automaticamente despu\u00e9s de medianoche.<\/p>\n<pre style=\"padding-left: 40px;\">;; ---------------------------------------------------------------------------\r\n;; Reminders\r\n;; ---------------------------------------------------------------------------\r\n\r\n; Erase all reminders and rebuilt reminders for today from the agenda\r\n(defun bh\/org-agenda-to-appt ()\r\n(interactive)\r\n(setq appt-time-msg-list nil)\r\n(org-agenda-to-appt))\r\n\r\n; Rebuild the reminders everytime the agenda is displayed\r\n(add-hook 'org-finalize-agenda-hook 'bh\/org-agenda-to-appt 'append)\r\n\r\n; This is at the end of my .emacs - so appointments are set up when Emacs starts\r\n; This line is currently failing, need more investigation\r\n;(bh\/org-agenda-to-appt)\r\n\r\n; Activate appointments so we get notifications\r\n(appt-activate t)\r\n\r\n; If we leave Emacs running overnight - reset the appointments one minute after midnight\r\n(run-at-time \"24:01\" nil 'bh\/org-agenda-to-appt)<\/pre>\n<p>Por \u00faltimo 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.<\/p>\n<pre style=\"padding-left: 40px;\">(setq org-todo-keywords\r\n'((sequence \"TODO(t!)\" \"INPROGRESS(i!)\" \"WAITING(w!\/!)\" \"|\" \"DONE(d!)\")\r\n))<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>Con esta configuraci\u00f3n de org-mode para emacs podremos movernos de manera m\u00e1s conveniente en org-mode. Definimos algunos keybidings t\u00edpicos as\u00ed como activamos el sistema de logs para guardar el accountability de las tareas as\u00ed como su timestamp. Adem\u00e1s guardaremos el estado de las mismas conect\u00e1ndolo con el fichero en tasks.org y activando un sistema de [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[297],"tags":[371,8,145,146,372,373,374,370],"class_list":["post-901","post","type-post","status-publish","format-standard","hentry","category-advanced","tag-agenda-emacs","tag-emacs","tag-org-mode","tag-orgmode","tag-orgmode-emacs","tag-reminders-agenda","tag-reminders-orgmode","tag-todo-orgmode"],"_links":{"self":[{"href":"https:\/\/www.blackhats.es\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/901"}],"collection":[{"href":"https:\/\/www.blackhats.es\/wordpress\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.blackhats.es\/wordpress\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.blackhats.es\/wordpress\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.blackhats.es\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=901"}],"version-history":[{"count":5,"href":"https:\/\/www.blackhats.es\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/901\/revisions"}],"predecessor-version":[{"id":906,"href":"https:\/\/www.blackhats.es\/wordpress\/index.php?rest_route=\/wp\/v2\/posts\/901\/revisions\/906"}],"wp:attachment":[{"href":"https:\/\/www.blackhats.es\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=901"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.blackhats.es\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=901"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.blackhats.es\/wordpress\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=901"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}