Add orgmode configuration

- Main org-mode functions works fine now
main
Sergio Alvariño 2 years ago
parent 34148baa79
commit eb7bf78ec4

@ -408,13 +408,13 @@ Some notes about [[https://github.com/jwiegley/use-package][use-package]]
#+begin_src emacs-lisp
(use-package bufler
)
(defun sap/bufler-one-window (&optional force-refresh)
(defun slv/bufler-one-window (&optional force-refresh)
(interactive "P")
(bufler-list)
(delete-other-windows)
)
(global-set-key (kbd "C-x C-b") 'sap/bufler-one-window)
(global-set-key (kbd "C-x C-b") 'slv/bufler-one-window)
#+end_src
** Hydra
@ -672,6 +672,242 @@ This is only a defun for settings additional details in =org-mode=
)
#+end_src
** org-mode (configuración)
References:
- [[https://orgmode.org/worg/org-tutorials/org-custom-agenda-commands.html][org-agenda custom commands]]
- [[https://orgmode.org/worg/org-tutorials/org-custom-agenda-commands.html][org-custom-agenda commands]]
Configuring:
- =:hook= section:
- Sets =variable-pitch-mode= on
- Sets =visual-line-mode= on, when using this mode you should avoid using =M-q= (=org-fill-paragraph=). Just use =enter= to finish a paragraph.
- Call =slv/org-font-setup= function, this function, defined in the section above, sets the fonts for =org-mode=.
- =:custom= section:
- Sets a new =org-elipsis= symbol. This is the symbol to be used instead of =...= for folded sections
- Sets the org files directory (Dropbox for me)
- Sets a sound for =org-clock-sound=
- Sets the default notes file: =i.org=
- Disables =html postamble=
- Disables block execution confirmation for =org-babel=
- Enables default fontification, indenting and folding
- Sets the refile target file =refile=, so far only =Archive.org=, for finished tasks; but we could add more in the future.
- Sets apps for =.html= and =.pdf= (for =org-mode= exported files)
- Sets the **agenda** options
- Definimos los ficheros de entrada para la agenda
- Definimos vistas /custom/ para la agenda **en Revisión**
- =c= Vista simple de agenda (Próximos dias y vista de todas las taras =TODO=)
- Definimos /capture templates/ para la captura de entradas en los ficheros =.org=
- Fichero =i.org= o lo que es lo mismo: =org-default-notes-file=
- =p= captura de nuevo proyecto (básicamente una forma de agrupar tareas)
- =t= captura de tarea
- =m= tarea /enviar correo/ va a una sección especial
- =c= tarea compra, va a la sección de compras
- =l= enlace, si no hay tiempo se puede capturar aquí pero *tiene que ir a los blogs*
- =r= referencia, si no hay tiempo se puede capturar aquí pero *tiene que ir a los blogs*
- Fichero =notes.org=
- =n= añadir nota al fichero
- Fichero =b.org= , se supone que captura ideas para el blog público
- =b= añadir entrada al fichero
- Fichero =blog_privado.org=, captura de ideas para el blog privado
- Fichero =events.org=
- Fichero =historiales.org=
- Seccion =:config=
- Añadimos el módulo =org-habit= a la lista =org-modules=, este módulo habilita la visualización especial de los hábitos en las vistas de agenda
- Definimos un /advice/ para garantizar que se salvan todos los ficheros =.org= cada vez que hacemos una operación de /refile/
- Definimos la función =make-capture-frame= y una serie de advices para modificarla. Esta función se define para poder asociar un atajo de teclado del sistema a la captura de tareas de Emacs, funciona pero **pendiente de revisión**
- Establecemos un factor de escala para la imágenes renderizadas a partir de código LaTeX en el org-mode. Por defecto son demasiado pequeñas
#+begin_src emacs-lisp
(use-package org
:hook
(org-mode . variable-pitch-mode)
(org-mode . visual-line-mode)
(org-mode . slv/org-font-setup)
:custom
(org-ellipsis " ▾")
(org-directory "~/Dropbox/orgfiles") ;; De momento ficheros en Dropbox
(org-clock-sound (concat org-directory "/sound/news-ting.wav"))
(org-default-notes-file (concat org-directory "/i.org")) ;; Fichero de notas por defecto 'I'
(org-export-html-postamble nil) ;; No queremos volcar información en el postamble al exportar html
(org-confirm-babel-evaluate nil)
(org-src-fontify-natively t)
(org-indent-mode t)
(org-startup-indented t)
(org-startup-folded (quote overview))
(org-refile-targets (quote(("~/Dropbox/orgfiles/Archive.org" :maxlevel . 1)
)))
;; org applications for html and pdf files
(org-file-apps
(append '(
("\\.pdf\\'" . "evince %s")
("\\.x?html?\\'" . "/usr/bin/firefox %s")
) org-file-apps )
)
;; Configurando org-agenda
(org-agenda-start-on-weekday nil) ;; La vista de agenda empieza en el dia de hoy
(org-agenda-files (list "~/Dropbox/orgfiles/i.org" ;; Los ficheros con entradas para la agenda
"~/Dropbox/orgfiles/b.org"
"~/Dropbox/orgfiles/notes.org"
"~/Dropbox/orgfiles/historiales.org"
"~/Dropbox/orgfiles/habits.org"
"~/work/repos/Personal/blog/comacero_priv/content-org/blog_privado.org"
;; "~/share/Mob_orgzly/phone.org"
))
;;--------------------------------------------------
;; Vistas de la agenda
(org-agenda-custom-commands
'(
("c" "Simple agenda view"
((agenda "")
(alltodo "")))
("d" "Dashboard"
((agenda "" ((org-deadline-warning-days 7)))
(todo "NEXT"
((org-agenda-overriding-header "Next Tasks")))
(todo "PROJ" ((org-agenda-overriding-header "Active Projects")))))
("n" "Next Tasks"
((todo "NEXT"
((org-agenda-overriding-header "Next Tasks"))))
)
("r" "Test queries" tags "errand"
((org-agenda-files '("~/Dropbox/orgfiles/i.org"))
(org-agenda-sorting-strategy '(priority-up effort-down))
)
)
("w" "Workflow Status"
((todo "WAIT"
((org-agenda-overriding-header "Waiting on External")
(org-agenda-files org-agenda-files)))
(todo "REVIEW"
((org-agenda-overriding-header "In Review")
(org-agenda-files org-agenda-files)))
(todo "PLAN"
((org-agenda-overriding-header "In Planning")
(org-agenda-todo-list-sublevels nil)
(org-agenda-files org-agenda-files)))
(todo "BACKLOG"
((org-agenda-overriding-header "Project Backlog")
(org-agenda-todo-list-sublevels nil)
(org-agenda-files org-agenda-files)))
(todo "READY"
((org-agenda-overriding-header "Ready for Work")
(org-agenda-files org-agenda-files)))
(todo "ACTIVE"
((org-agenda-overriding-header "Active Projects")
(org-agenda-files org-agenda-files)))
(todo "COMPLETED"
((org-agenda-overriding-header "Completed Projects")
(org-agenda-files org-agenda-files))))
)
)
)
;;--------------------------------------------------
;; org-capture-templates definitions
(org-capture-templates
'(
;;--------------------
("p" "Proyecto" entry (file+headline org-default-notes-file "Proyectos")
"* %^{Descripcion} %^g\n%?"
:prepend t
:empty-lines 1)
;;--------------------
("t" "Tarea" entry (file+headline org-default-notes-file "Tareas")
"* TODO %^u %^{Descripcion} %^g
:PROPERTIES:
:Effort: %^{effort|1:00|0:05|0:15|0:30|2:00|4:00}
:Beat: %^{beat|Now|ASAP|SDM}
:END:\n %?"
:prepend t)
;;--------------------
("m" "Tarea Mail" entry (file+olp org-default-notes-file "Tareas" "Correos")
"* TODO %^{Descripcion}\n:PROPERTIES:\n:Plat: %^{plat|gmail|proton|tuta}\n:Effort: %^{effort|1:00|0:05|0:15|0:30|2:00|4:00}\n:END:\nCapturado %<%Y-%m-%d %H:%M>"
:prepend t)
;;--------------------
("c" "Compra" entry (file+headline org-default-notes-file "Compras")
"* TODO %^{Descripcion} %?\n:PROPERTIES:\n:Plat: %^{plat|unk|aliexpress|amazon|ebay}\n:Precio: %^{precio|20|50|100|200|500}\n:END:\n%<%Y-%m-%d>"
:prepend t
:empty-lines 1)
;;--------------------
("r" "Referencia" entry (file+headline org-default-notes-file "Referencias")
"* %^{Descripcion} %^g\n%?"
:prepend t
:empty-lines 1)
;;--------------------
("l" "Enlace" entry (file+headline org-default-notes-file "Enlaces")
"* [[%^{link}][%^{Descripcion}]]"
:prepend t)
;;-------------------- org-default-notes-file
("n" "Nota" entry (file+headline "~/Dropbox/orgfiles/notes.org" "Notas")
"* %^{Descripcion} %u %^g\n%? "
:prepend t
:empty-lines 1)
;;--------------------
("b" "Blog Publico" entry (file+headline "~/Dropbox/orgfiles/b.org" "Pendiente")
"* TODO %^{Tareas} %^g
:PROPERTIES:
:EXPORT_FILE_NAME: %^{mdFilename}
:EXPORT_HUGO_CUSTOM_FRONT_MATTER: :summary %^{summary}
:END:
Capturado %<%Y-%m-%d %H:%M>\n%^{cuerpo}"
:empty-lines 1)
;;--------------------
("s" "Blog Privado" entry (file+headline "~/work/repos/Personal/blog/comacero_priv/content-org/blog_privado.org" "Pendiente")
"* TODO %^{Tareas} %^g
:PROPERTIES:
:EXPORT_FILE_NAME: %^{mdFilename}
:EXPORT_HUGO_CUSTOM_FRONT_MATTER: :summary %^{summary}
:END:
Capturado %<%Y-%m-%d %H:%M>\n%^{cuerpo}"
:empty-lines 1)
))
:config
;; add modules to org-modules
(add-to-list 'org-modules 'org-habit t) ;; Add org-habit for habit visualization in agenda views
(advice-add 'org-refile :after 'org-save-all-org-buffers) ;; save all org buffers after every refile operation
;;------------------------------------------
;; No tengo claro como funcionan exactamente los siguientes advices
;; Creo que se añaden para redefinir el comportamiento de la
;; captura de tareas definida en 'make-capture-frame'
(defadvice org-capture-finalize
(after delete-capture-frame activate)
"Advise capture-finalize to close the frame"
(if (equal "capture" (frame-parameter nil 'name))
(delete-frame))
)
(defadvice org-capture-destroy
(after delete-capture-frame activate)
"Advise capture-destroy to close the frame"
(if (equal "capture" (frame-parameter nil 'name))
(delete-frame))
)
(use-package noflet
:ensure t )
;;------------------------------
;; Define a global key on your system to emacsclient -ne "(make-capture-frame)"
(defun make-capture-frame ()
"Create a new frame and run org-capture."
(interactive)
(make-frame '((name . "capture")))
(select-frame-by-name "capture")
(delete-other-windows)
(noflet ((switch-to-buffer-other-window (buf) (switch-to-buffer buf)))
(org-capture))
)
;;-----------------------------
;; Scale up LaTeX rendered images
(plist-put org-format-latex-options :scale 4)
:bind
("\C-ca" . 'org-agenda)
("\C-cc" . 'org-capture)
)
#+end_src
* flycheck
Syntax checking for programming languages

Loading…
Cancel
Save