;;; $DOOMDIR/config.el -*- lexical-binding: t; -*-

(setq doom-theme 'modus-vivendi
      doom-font (font-spec :family "Aporetic Serif Mono" :size 19))

;; ----------- Org configuration
(after! org
  :config
  (setq org-archive-location "archive/%s_archive::" ; Avoid polluting with archive files
        org-agenda-files (list "inbox.org" "projects.org")
        ;; We use org-agenda for day view, org-ql for the rest
        org-log-done 'time ; Track done tasks
        org-todo-keywords
        '((sequence "TODO(t)" "NEXT(n)" "HOLD(h)" "STRT(s)" "|" "KILL(k)" "DONE(d)"))
        org-agenda-start-day "0d" ;  Day view by default
        org-agenda-span 1 ;  Day view by default
        org-agenda-skip-scheduled-if-done t
        org-agenda-skip-deadline-if-done t
        org-agenda-skip-scheduled-if-deadline-is-shown t
        org-capture-templates
        '(("t" "Todo" entry (file "inbox.org")
           "* TODO %?\n  /Entered on/  %U")
          ("r" "Réunion" entry (file "reunions.org")
           "* TODO %?\nEntered on %U\n  %i"))
        org-agenda-custom-commands
        '(("w" "Work" agenda "" ((org-agenda-tag-filter-preset '("+work"))))
          ("h" "Home" agenda "" ((org-agenda-tag-filter-preset '("-work")))))
        ;; Latex
        org-latex-pdf-process
        '("lualatex -shell-escape -interaction nonstopmode %f")))

;; List books to read or waiting
(defun org-books()
  (interactive)
  (org-ql-search "~/org/livres.org"
    '(todo "STRT" "TODO" "HOLD")
    :sort '(todo reverse)))

;; List books to read or waiting
(defun org-movies()
  (interactive)
  (org-ql-search "~/org/films.org" '(todo)))

(use-package! org-habit) ; Recurring tasks


(after! ox-latex; Add koma-script
  org-latex-classes
  '("scrartcl"
    "\\documentclass{scrartcl}"
    ("\\section{%s}" . "\\section*{%s}")
    ("\\subsection{%s}" . "\\subsection*{%s}")
    ("\\subsubsection{%s}" . "\\subsubsection*{%s}")
    ("\\paragraph{%s}" . "\\paragraph*{%s}")
    ("\\subparagraph{%s}" . "\\subparagraph*{%s}")))

;; Mail settings
(after! notmuch
  (setq +notmuch-sync-backend "notmuch new"
        +notmuch-delete-tags '("+deleted" "-inbox" "-new" "-unread")
        +notmuch-home-function (lambda () (notmuch-search "tag:new"))
        notmuch-archive-tags '("+archive" "-inbox" "-new" "-unread")))

(setq sendmail-program "/usr/bin/msmtp" )

;; Use denote insteal of org-roam
(after! denote
  :config
  (setq denote-directory "~/org/zk"
        ;; Avoid date in english
        denote-journal-extras-title-format '"%Y-%m-%d"))

;; Bibliography managed by denote in a subdirectory
(after! citar
  :config
  (setq! citar-bibliography '("~/org/biblio/main.bib")))

(use-package citar-denote
  :ensure t
  :after (:any citar denote)
  :custom
  ;; Package defaults
  (citar-denote-subdir "biblio") ; See packages.el
  (citar-denote-title-format "author-year")
  :config
  (citar-denote-mode)
  )

(after! deft
  :config
  (setq deft-directory "~/org/zk"))

;; Use denote insteal of org-roam
(map! :leader
      (:prefix-map ("n" . "notes")
       :desc "Find files in notes" "f" #'consult-denote-find
       :desc "Open/create note" "o" #'denote-open-or-create
       :desc "Insert link" "l" #'denote-link-or-create
       :desc "Insert link to heading" "h" #'denote-org-extras-link-to-heading
       :desc "Rename note" "r" #'denote-rename-file
       :desc "Rename note title" "t" #'denote-rename-file-title
       :desc "Rename note keywords" "k" #'denote-rename-file-keywords
       :desc "Journal-entry" "j" #'denote-journal-extras-new-or-existing-entry

       ;; custom function to open papers or biblio urlsnotes. Assume vertico
       (:when (modulep! :tools biblio)
         :desc "Bibliography papers" "p" #'citar-open-files
         :desc "Bibliography URLs" "u" #'citar-open-links)))