;;; my-settings.el --- Summary -*- lexical-binding: t -*- ;;; Commentary: ;;; Code: (use-package my :config (with-eval-after-load 'org (add-hook 'org-mode-hook 'my-org-link-color-hook) (add-hook 'org-ctrl-c-ctrl-c-hook 'my-org-table-cell-color-attr))) (use-package my-org-article :after (org) :config ;; HTML (defun my-org-article-html-export-to-html-notify (&optional async subtreep visible-only body-only ext-plist) "HTML article export. Extended `my-org-article-html-export-to-html' with an additional notification." (interactive) (let* ((extension (concat (when (> (length org-html-extension) 0) ".") (or (plist-get ext-plist :html-extension) org-html-extension "html"))) (file (org-export-output-file-name extension subtreep)) ;; need to bind this because tufte treats footnotes specially, so we ;; don't want to display them at the bottom (org-html-footnotes-section (if org-tufte-include-footnotes-at-bottom org-html-footnotes-section ""))) (org-export-to-file 'article-html file async subtreep visible-only body-only ext-plist (lambda (file) ;; is called with FILE and has to return a file name. (progn (when my-dbusp (use-package notifications) (notifications-notify :title "Emacs Org Article HTML Export" :body "Export done." :timeout 60000 :urgency 'normal :category "transfer")) file))))) ;; is needed for the asynchronous task (defun my-org-article-html-export-to-html-notify-async () "HTML article async export. Run `my-org-article-html-export-to-html' async and kill gnuplot buffer. See also async init file `org-export-async-init-file'." (interactive) (save-buffer) (when (get-buffer "*gnuplot*") (kill-buffer "*gnuplot*")) ;; to get a new session (my-org-article-html-export-to-html-notify t)) (org-defkey org-mode-map [f5] 'my-org-article-html-export-to-html-notify-async) ;; LaTeX (defun my-org-article-latex-export-to-pdf-notify (&optional async subtreep visible-only body-only ext-plist) "LaTeX article export. Extended `my-org-article-latex-export-to-pdf' with an additional notification." (interactive) (let ((outfile (org-export-output-file-name ".tex" subtreep))) (org-export-to-file 'article-latex outfile async subtreep visible-only body-only ext-plist (lambda (file) ;; is called with FILE and has to return a file name. (let ((output (org-latex-compile file))) (when my-dbusp (use-package notifications) (notifications-notify :title "Emacs Org Article Latex Export to PDF" :body "Export done." :timeout 60000 :urgency 'normal :category "transfer")) output))))) ;; is needed for the asynchronous task (defun my-org-article-latex-export-to-pdf-notify-async () "LaTeX article async export. Run `my-org-article-latex-export-to-pdf-notify' async and kill gnuplot buffer. See also async init file `org-export-async-init-file'." (interactive) (save-buffer) (when (get-buffer "*gnuplot*") (kill-buffer "*gnuplot*")) ;; to get a new session (my-org-article-latex-export-to-pdf-notify t)) (org-defkey org-mode-map [f6] 'my-org-article-latex-export-to-pdf-notify-async) ) (use-package my-org-letter :after (org)) (provide 'my-settings) ;;; my-settings.el ends here