From 8ad42f6283470fb459c2a23cb96b2e505204d834 Mon Sep 17 00:00:00 2001 From: BirDt_ Date: Wed, 20 Aug 2025 18:11:00 +0800 Subject: [PATCH] Exclude flycheck stuff from the tree --- .gitignore | 5 +- workflows/flycheck_org-custom.el | 698 ------------------------------- 2 files changed, 4 insertions(+), 699 deletions(-) delete mode 100644 workflows/flycheck_org-custom.el diff --git a/.gitignore b/.gitignore index 0c131b8..d4470f3 100644 --- a/.gitignore +++ b/.gitignore @@ -21,4 +21,7 @@ url/ bookmarks # Custom file -custom.el \ No newline at end of file +custom.el + +# Flycheck +flycheck_* \ No newline at end of file diff --git a/workflows/flycheck_org-custom.el b/workflows/flycheck_org-custom.el deleted file mode 100644 index c4d5434..0000000 --- a/workflows/flycheck_org-custom.el +++ /dev/null @@ -1,698 +0,0 @@ -;;; org-custom.el --- Org-mode configuration -*- lexical-binding: t -*- - -;; This file is not part of GNU Emacs - -;; This program is free software: you can redistribute it and/or modify -;; it under the terms of the GNU General Public License as published by -;; the Free Software Foundation, either version 3 of the License, or -;; (at your option) any later version. - -;; This program is distributed in the hope that it will be useful, -;; but WITHOUT ANY WARRANTY; without even the implied warranty of -;; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -;; GNU General Public License for more details. - -;; You should have received a copy of the GNU General Public License -;; along with this program. If not, see . - - -;;; Commentary: - -;; commentary - -;;; Code: - -(require 'org) -(require 'org-agenda) -(require 'org-attach) -(require 'transient) -(require 'subr-x) - -(defun org-mode-init () - "This is called through `org-mode-hook', so that I don't need to `add-hook' 20 million times." - ;; I want org to display pictures inline. - (org-display-inline-images) - ;; I don't want monospace text by default. - (variable-pitch-mode) - ) - -(add-hook 'org-mode-hook #'org-mode-init) - -(defcustom theurgy-org-directory "~/.org/" - "The directory for all theurgy org-mode files." - :type 'string - :group 'theurgy - :group 'theurgy-org) - -;; Change a bunch of default org-mode variables. -(setq org-log-done nil ;; I want to keep track of the time tasks are completed. - org-return-follows-link t ;; I want to be able to follow links easily. - org-hide-emphasis-markers t ;; This is a big one: hide markup syntax like ** and //. - org-pretty-entities t ;; These two variables together render latex entities as UTF8, which means that Greek letters, subscript, and superscript are all rendered correctly. - org-pretty-entities-include-sub-superscripts t - org-enforce-todo-dependencies t ;; Prevent changing a parent to DONE if the children aren't - org-enforce-todo-checkbox-dependencies t - org-agenda-skip-scheduled-if-done t ;; Don't show done stuff in the agenda view - org-agenda-skip-deadline-if-done t - org-agenda-skip-timestamp-if-done t - - org-todo-keywords '((sequence "TODO(t)" "WIP(w)" "DELEGATED(p)" "WAITING(?)" "|" "CANCELLED(x)" "DONE(d)")) ;; Some extra keywords in addition to TODO and DONE - org-use-fast-todo-selection t ;; Always use fast selection - org-refile-targets '((org-agenda-files :maxlevel . 2)) ;; Allow any agenda files to be refile targets. - - org-agenda-files (append (apply 'append (mapcar - (lambda (dir) - (directory-files-recursively dir org-agenda-file-regexp)) - `(,(concat theurgy-org-directory "tasks")))) - `(,(concat theurgy-org-directory "inbox.org"))) ;; Agenda files location - gathered recursively - org-cite-global-bibliography `(,(concat theurgy-org-directory "global.bib")) ;; Global bibliography location - - org-startup-indented t ;; Start indented - this fixed org-indent mode - - org-attach-id-dir (concat theurgy-org-directory "lore/assets") - - org-M-RET-may-split-line '((item . nil)) ;; https://irreal.org/blog/?p=6297 - ) - -;; Org modern and other interface enhancements -(use-package org-modern - :hook ((org-mode . org-modern-mode) - (org-agenda-finalize . org-modern-agenda))) - -(use-package org-modern-indent - :straight (org-modern-indent :type git :host github :repo "jdtsmith/org-modern-indent") - :hook ((org-mode . org-modern-indent-mode))) - -(use-package wc-mode - :hook ((org-mode . wc-mode)) - :config (setq wc-modeline-format "WC[%tw]")) - -(use-package org-appear :ensure t - :init - (setq org-appear-delay 0.2) - :hook - org-mode) - -;; Side tree -(use-package org-side-tree - :hook ((org-modern-mode . org-side-tree))) - -;; Advice to display org-side-tree where we want it -(defun theurgy-org-side-tree () - "Create or pop to Org-Side-Tree buffer." - (interactive) - (when (org-side-tree-buffer-p) - (error "Don't tree a tree")) - (unless (or (derived-mode-p 'org-mode) - (derived-mode-p 'outline-mode) - outline-minor-mode) - (error "Not an outline buffer")) - (let* ((tree-name (if (default-value 'org-side-tree-persistent) - "*Org-Side-Tree*" - (format "%s" (buffer-name)))) - (tree-buffer (get-buffer tree-name)) - (heading (org-side-tree-heading-number)) - (dd default-directory) - (inv-spec buffer-invisibility-spec)) - (unless (buffer-live-p tree-buffer) - (save-restriction - (widen) - (jit-lock-mode 1) - (jit-lock-fontify-now)) - (setq tree-buffer (generate-new-buffer tree-name)) - (add-hook 'kill-buffer-hook #'org-side-tree-cleanup nil t) - (let* ((headings (org-side-tree-get-headings)) - (tree-head-line (or (cadar (org-collect-keywords - '("title"))) - "Org-Side-Tree")) - (tree-mode-line (format "Org-Side-Tree - %s" - (buffer-name)))) - (when (default-value 'org-side-tree-enable-folding) - (setq-local org-side-tree-enable-folding t)) - (with-current-buffer tree-buffer - (setq-local default-directory dd) - (org-side-tree-mode) - (setq tabulated-list-entries headings) - (tabulated-list-print t t) - (when (default-value 'org-side-tree-enable-folding) - (setq-local org-side-tree-enable-folding t) - ;; preserve org font-locking - (setq-local outline-minor-mode-highlight nil) - (outline-minor-mode 1)) - (setq buffer-invisibility-spec inv-spec) - (setq header-line-format tree-head-line) - (setq mode-line-format tree-mode-line)))) - (org-side-tree-set-timer) - (switch-to-buffer (buffer-name)) - (display-buffer-in-side-window - tree-buffer - `((side . ,org-side-tree-display-side) - (slot . 1) - (window-width . ,org-side-tree-width))) - (when (default-value 'org-side-tree-persistent) - (setq-local org-side-tree-persistent - (buffer-name)) - (org-side-tree-update)) - (when org-side-tree-select - (pop-to-buffer tree-buffer)) - (setq window-size-fixed (when org-side-tree-width 'width)) - (pulse-momentary-highlight-one-line) - (org-side-tree-go-to-heading heading))) - -(advice-add 'org-side-tree :override #'theur) - -;; Helper functions for the side tree -(defun theurgy-toggle-org-side-tree () - (interactive) - (if (get-buffer-window (concat "" (file-name-nondirectory (buffer-file-name)))) - (delete-window (get-buffer-window (concat "" (file-name-nondirectory (buffer-file-name))))) - (org-side-tree))) - -(add-to-list 'display-buffer-alist - '(".+\.org" - (display-buffer-in-side-window) - (side . left) - (slot . 1) - (window-height . 0.2))) - -(define-key org-mode-map (kbd "C-") #'theurgy-toggle-org-side-tree) - -;; https://chrismaiorana.com/summer-productivity-reset-emacs-functions/ -(defun csm/replace-punctuation-at-point () - "Replace punctuation at point (., !, ?) with the character typed by the user." - (interactive) - (let ((char (this-command-keys))) ;; Get the key pressed by the user - (if (and (member (char-after) '(?. ?! ?? ?,)) ;; Check if current char is ., !, or ? - (member (string-to-char char) '(?. ?! ??))) ;; Check if typed char is ., !, or ? - (progn - (delete-char 1) ;; Delete existing punctuation - (insert char)) ;; Insert new punctuation - (self-insert-command 1)))) ;; Default behavior: insert character - -;; Bind this function to punctuation keys -(define-key global-map "." 'csm/replace-punctuation-at-point) -(define-key global-map "," 'csm/replace-punctuation-at-point) -(define-key global-map "!" 'csm/replace-punctuation-at-point) -(define-key global-map "?" 'csm/replace-punctuation-at-point) - -;; Windmove bindings since org overwrites them otherwise -(define-key org-mode-map (kbd "C-c ") 'windmove-left) -(define-key org-mode-map (kbd "C-c ") 'windmove-right) -(define-key org-mode-map (kbd "C-c ") 'windmove-up) -(define-key org-mode-map (kbd "C-c ") 'windmove-down) - -;; Same with scrolling -(define-key org-mode-map (kbd "C-S-") '(lambda () (interactive) (scroll-up-line 10))) -(define-key org-mode-map (kbd "C-S-") '(lambda () (interactive) (scroll-down-line 10))) - -;; Sentence and word navigation and marking -(setq sentence-end-double-space nil) ;; Otherwise, M-e is broken in normal writing. - -;;; Generally useful things -;; Mark word and sentence -(defun mark-whole-word () - "Mark the whole word underneath the cursor." - (interactive) - (forward-word) - (set-mark-command nil) - (backward-word)) - -(defun mark-sentence () - "Mark the entire sentence underneath the cursor." - (interactive) - (forward-sentence) - (set-mark-command nil) - (backward-sentence)) - -(define-key org-mode-map (kbd "C-@") #'mark-whole-word) -(define-key org-mode-map (kbd "M-@") #'mark-sentence) - -(transient-define-prefix mark-menu-transient () - "Transient menu for marking units of text." - ["Mark" ("w" "Word" mark-whole-word) - ("s" "Sentence" mark-sentence) - ("p" "Paragraph" mark-paragraph) - ("b" "Buffer" mark-whole-buffer)]) - -(define-key org-mode-map (kbd "C-c o SPC") #'mark-menu-transient) - -;; Section navigation and reordering -(defun move-sentence-right (&optional arg) - "Move the whole sentence to the right of the next sentence, `ARG' times." - (interactive "^p") - (or arg (setq arg 1)) - (while (> arg 0) - (forward-sentence) - (backward-sentence) - (left-char) ;; Capture previous space - (kill-sentence) - (forward-sentence) - (yank) - (backward-sentence) - (setq arg (1- arg)))) - -(defun move-sentence-left (&optional arg) - "Move the whole sentence to the left of the previous sentence, `ARG' times." - (interactive "^p") - (or arg (setq arg 1)) - (while (> arg 0) - (forward-sentence) - (backward-sentence) - (left-char) ;; Capture previous space - (kill-sentence) - (backward-sentence) - (left-char) ;; Capture previous space - (yank) - (backward-sentence) - (setq arg (1- arg)))) - -(defun move-paragraph-up (&optional arg) - "Move the whole paragraph above the previous paragraph, `ARG' times." - (interactive "^p") - (or arg (setq arg 1)) - (while (> arg 0) - (forward-paragraph) - (backward-paragraph) - (kill-paragraph nil) - (backward-paragraph) - (yank) - (backward-paragraph) - (setq arg (1- arg)))) - -(defun move-paragraph-down (&optional arg) - "Move the whole paragraph above the previous paragraph, `ARG' times." - (interactive "^p") - (or arg (setq arg 1)) - (while (> arg 0) - (forward-paragraph) - (backward-paragraph) - (kill-paragraph nil) - (forward-paragraph) - (yank) - (backward-paragraph) - (setq arg (1- arg)))) - -(define-key org-mode-map (kbd "C-M-") #'move-sentence-left) -(define-key org-mode-map (kbd "C-M-") #'move-sentence-right) -(define-key org-mode-map (kbd "C-M-") #'move-paragraph-up) -(define-key org-mode-map (kbd "C-M-") #'move-paragraph-down) - -(transient-define-prefix reorder-transient () - "Transient menu for text re-ordering commands." - ["Move sentence..." ("l" "Left" move-sentence-left) - ("r" "Right" move-sentence-right)] - ["Move paragraph..." ("u" "Up" move-paragraph-up) - ("d" "Down" move-paragraph-down)]) - -(define-key org-mode-map (kbd "C-c o r") #'reorder-transient) - -;; Focused rewriting -(defun break-out-sentence () - "Breaks a sentence out into it's own buffer for editing." - (interactive) - (backward-sentence) - (kill-sentence) - (switch-to-buffer-other-window "*break-out*") - (erase-buffer) - (yank)) - -(defun break-out-choose-sentence () - "Chooses a sentence from the break-out buffer." - (interactive) - (backward-sentence) - (kill-sentence) - (other-window -1) - (kill-buffer "*break-out*") - (yank)) - -(defun break-out-dwim () - "Either break-out or choose sentency depending on buffer name." - (interactive) - (if (equal (buffer-name) "*break-out*") - (break-out-choose-sentence) - (break-out-sentence))) - -(define-key org-mode-map (kbd "C-c o b") #'break-out-dwim) - -;; Powerthesaurus -(use-package powerthesaurus - :bind ("C-x t" . powerthesaurus-transient)) - -;; Harper -(when (and (not (equal system-type 'windows-nt)) (locate-file "harper-ls" exec-path)) - (with-eval-after-load 'eglot - (add-to-list 'eglot-server-programs - '(org-mode . ("harper-ls" "--stdio")))) - - (setq-default eglot-workspace-configuration - '(:harper-ls (:dialect "Australian"))) - - (add-hook 'org-mode-hook 'eglot-ensure)) - -;;; Exobrain -;;; Task management -;; Maintenance and project file creation shortcuts -(defun new-maintenance-file (maintenance-area) - "Create a new maintenance file for a given `MAINTENANCE-AREA'." - (interactive "sMaintenance area is: ") - (find-file (concat "~/.org/tasks/maintenance/" maintenance-area ".org")) - (insert "\n\n* Calendar\n\n* TO-DO\n\n* Routines\n\n* Archive\n") - (goto-char (point-min))) - -(defun new-project-file (project-name acceptance-criteria) - "Create a new project file for a given `PROJECT-NAME', with some `ACCEPTANCE-CRITERIA'." - (find-file (concat "~/.org/tasks/projects/" project-name ".org")) - (insert (concat "\n\n* Acceptance Criteria\n\n" acceptance-criteria "\n\n* Ideas\n\n* TODO Work\n\n** Calendar\n\n** TO-DO\n\n** Routines\n\n** Archive\n")) - (goto-char (point-min))) - -(defun new-generic-project (project-name acceptance-criteria) - "Interactive wrapper for `new-project-file', for generic projects." - (interactive "sProject name is: \nsAcceptance criteria is: ") - (new-project-file project-name acceptance-criteria)) - -(defun new-career-project (project-name acceptance-criteria) - "Interactive wrapper for `new-project-file', for career projects." - (interactive "sProject name is: \nsAcceptance criteria is: ") - (new-project-file (concat "career/" project-name) acceptance-criteria)) - -;; Captures -(defun select-task-area (location headline) - "Prompt for a file in ~/.org/tasks/maintenance/ to insert the capture." - (let* ((files (directory-files (concat "~/.org/tasks/" location) t "\\.org$")) - (choices (mapcar - (lambda (x) (string-remove-suffix ".org" x)) - (mapcar #'file-name-nondirectory files))) - (selected (completing-read "Choose a file: " choices nil t))) - (set-buffer (org-capture-target-buffer (concat "~/.org/tasks/" location selected ".org"))) - (org-capture-put-target-region-and-position) - (widen) - (goto-char (point-min)) - (setq headline (org-capture-expand-headline headline)) - (re-search-forward (format org-complex-heading-regexp-format - (regexp-quote headline)) - nil t) - (forward-line 0))) - -(defun select-maintenance-area (headline) - (select-task-area "maintenance/" headline)) - -(defun select-project (headline) - (select-task-area "projects/" headline)) - -(defun select-career-project (headline) - (select-task-area "projects/career/" headline)) - -(setq org-capture-templates - '(("i" "Idea") - ("ii" "Generic" entry - (file "~/.org/inbox.org") - "* %^{TITLE} :idea: \n\n%?" - :empty-lines 1) - ("ip" "Project" entry - (function (lambda () (select-project "Ideas"))) - "* %^{TITLE} \n\n%?" - :empty-lines 1) - ("ic" "Career" entry - (function (lambda () (select-career-project "Ideas"))) - "* %^{TITLE} \n\n%?" - :empty-lines 1) - - ("t" "Task") - ("tt" "Generic") - ("ttt" "Raw" entry - (file "~/.org/inbox.org") - "* TODO [%^{priority|#A|#B|#C|#D}] %^{TITLE} :task:\n\n%?" - :empty-lines 1) - ("ttm" "Maintenance" entry - (function (lambda () (select-maintenance-area "TO-DO"))) - "* TODO [%^{priority|#A|#B|#C|#D}] %^{TITLE}\n\n%?" - :empty-lines 1) - ("ttp" "Project" entry - (function (lambda () (select-project "TO-DO"))) - "* TODO [%^{priority|#A|#B|#C|#D}] %^{TITLE}\n\n%?" - :empty-lines 1) - ("ttc" "Career" entry - (function (lambda () (select-career-project "TO-DO"))) - "* TODO [%^{priority|#A|#B|#C|#D}] %^{TITLE}\n\n%?" - :empty-lines 1) - ("ts" "Scheduled") - ("tss" "Raw" entry - (file "~/.org/inbox.org") - "* TODO [%^{priority|#A|#B|#C|#D}] %^{TITLE} :scheduled:\n:SCHEDULED: %^T\n%?" - :empty-lines 1 - :time-prompt t) - ("tsm" "Maintenance" entry - (function (lambda () (select-maintenance-area "Calendar"))) - "* TODO [%^{priority|#A|#B|#C|#D}] %^{TITLE} \n:SCHEDULED: %^T\n%?" - :empty-lines 1 - :time-prompt t) - ("tsp" "Project" entry - (function (lambda () (select-project "Calendar"))) - "* TODO [%^{priority|#A|#B|#C|#D}] %^{TITLE} \n:SCHEDULED: %^T\n%?" - :empty-lines 1 - :time-prompt t) - ("tsc" "Career" entry - (function (lambda () (select-career-project "Calendar"))) - "* TODO [%^{priority|#A|#B|#C|#D}] %^{TITLE} \n:SCHEDULED: %^T\n%?" - :empty-lines 1 - :time-prompt t) - - ("n" "Note") - ("nn" "Raw" entry - (file "~/.org/inbox.org") - "* %^{TITLE} :note: \n\n%?" - :empty-lines 1) - ("nm" "Meeting") - ("nmm" "Raw" entry - (file "~/.org/inbox.org") - "* %^{TITLE} :meeting: \n\n%?" - :clock-in t - :clock-resume t) - ("nmc" "Career" entry - (function (lambda () (select-career-project "Calendar"))) - "* %^{TITLE} \n\n%?" - :empty-lines 1 - :clock-in t - :clock-resume t))) - -(defun open-inbox () - "Opens `~/.org/inbox.org'" - (interactive) - (find-file "~/.org/inbox.org")) - -(defun open-maintenance () - "Opens `~/.org/tasks/maintenance/'" - (interactive) - (find-file "~/.org/tasks/maintenance/")) - -(defun open-projects () - "Opens `~/.org/tasks/projects/'" - (interactive) - (find-file "~/.org/tasks/projects/")) - -(defun open-career () - "Opens `~/.org/tasks/projects/career/'" - (interactive) - (find-file "~/.org/tasks/projects/career/")) - -(transient-define-prefix task-management-menu () - "Transient menu for task management shortcuts." - ["Go To" ("i" "Inbox" open-inbox) - ("m" "Maintenance Directory" open-maintenance) - ("p" "Projects Directory" open-projects) - ("c" "Career Directory" open-career)] - ["Create New" ("M" "Maintenance File" new-maintenance-file) - ("P" "Project" new-generic-project) - ("C" "Career Project" new-career-project)]) - -(define-key global-map (kbd "C-c o t") #'task-management-menu) -(define-key global-map (kbd "C-c a") #'org-agenda) -(define-key global-map (kbd "C-c c") #'org-capture) - -(add-to-list 'display-buffer-alist - '("\\*Org Agenda\\*" - (display-buffer-in-side-window) - (side . right) - (slot . 3) - (window-width . 0.2))) - -(add-to-list 'display-buffer-alist - '("\\*capture\\*\\|CAPTURE-" - (display-buffer-in-side-window) - (side . right) - (slot . 2) - (window-width . 0.2))) - -;; Org roam -(use-package org-roam - :straight nil - :ensure t - :init - (setq org-roam-v2-ack t) - :custom - (org-roam-directory (file-truename "~/.org/lore/")) - (org-roam-dailies-directory (file-truename "~/.org/lore/refined/journal/")) - (org-roam-file-exclude-regexp "\\.git/.*\\|logseq/.*$") - (org-roam-completion-everywhere) - (org-roam-capture-templates - '(("r" "Raw") - ("rr" "Note" plain - "%?" - :target (file+head "raw/${slug}.org" "#+title: ${title}\n") - :unnarrowed t) - ("rq" "Question" plain - "%?" - :target (file+head "raw/${slug}.org" "#+title: ${title}\n#+filetags: :question:") - :unnarrowed t) - ("i" "Index" plain - "%?" - :target (file+head "raw/${slug}.org" "#+title: ${title} - Index\n#+filetags: :index:") - :unnarrowed t) - ("R" "Refined") - ("Rm" "Mini-essay" plain - "%?" - :target (file+head "refined/wiki/${slug}.org" "#+title: ${title}\n#+author: Jakub Nowak\n#+filetags: :mini-essay:") - :unnarrowed t) - ("Re" "Essay" plain - "%?" - :target (file+head "refined/wiki/${slug}.org" "#+title: ${title}\n#+author: Jakub Nowak\n#+filetags: :essay:") - :unnarrowed t))) - (org-roam-dailies-capture-templates - '(("d" "default" entry - "* %?" - :target (file+head "%<%Y-%m-%d>.org" ;; format matches Logseq - "#+title: %<%Y-%m-%d>\n")))) - :bind (("C-c n l" . org-roam-buffer-toggle) - ("C-c n f" . org-roam-node-find) - ("C-c n g" . org-roam-graph) - ("C-c n i" . org-roam-node-insert) - ("C-c n c" . org-roam-capture) - :map org-roam-dailies-map - ("Y" . org-roam-dailies-capture-yesterday) - ("T" . org-roam-dailies-capture-tomorrow)) - :bind-keymap ("C-c n d" . org-roam-dailies-map) - :config - (require 'org-roam-dailies) ;; Ensure the keymap is available - (org-roam-db-autosync-mode)) - -(defun org-roam-create-node-from-headline () - "Create an Org-roam note from the current headline and jump to it. - - Normally, insert the headline’s title using the ’#title:’ file-level property - and delete the Org-mode headline. However, if the current headline has a - Org-mode properties drawer already, keep the headline and don’t insert - ‘#+title:'. Org-roam can extract the title from both kinds of notes, but using - ‘#+title:’ is a bit cleaner for a short note, which Org-roam encourages." - (interactive) - (let ((title (nth 4 (org-heading-components))) - (has-properties (org-get-property-block))) - (org-cut-subtree) - (org-roam-find-file title nil nil 'no-confirm) - (org-paste-subtree) - (unless has-properties - (kill-line) - (while (outline-next-heading) - (org-promote))) - (goto-char (point-min)) - (when has-properties - (kill-line) - (kill-line)))) - -(use-package logseq-org-roam - :straight (:host github - :repo "sbougerel/logseq-org-roam" - :files ("*.el"))) - -(transient-define-prefix org-roam-menu () - "Transient menu for task management shortcuts." - ["Node" ("c" "Capture" org-roam-node-find) - ("i" "Insert" org-roam-node-insert) - ("r" "Refile" org-roam-create-node-from-headline) - ("f" "Find" org-roam-node-find) ] - ["Dailies" ("t" "Today" org-roam-dailies-capture-today) - ("y" "Yesterday" org-roam-dailies-capture-yesterday) - ("n" "Tomorrow" org-roam-dailies-capture-tomorrow)] - ["Logseq" ("R" "Fix links" logseq-org-roam)] - ["Org Roam UI" ("U" "Enable org-roam-ui-mode" org-roam-ui-mode)]) - -(define-key global-map (kbd "C-c o n") #'org-roam-menu) - -(use-package org-roam-ui - :straight - (:host github :repo "org-roam/org-roam-ui" :branch "main" :files ("*.el" "out")) - :after org-roam - ;; normally we'd recommend hooking orui after org-roam, but since org-roam does not have - ;; a hookable mode anymore, you're advised to pick something yourself - ;; if you don't care about startup time, use - :hook (after-init . org-roam-ui-mode) - :config - (setq org-roam-ui-sync-theme t - org-roam-ui-follow t - org-roam-ui-update-on-save t - org-roam-ui-open-on-start t)) - -;; Bibliography stuff -(setq bibtex-dialect 'biblatex) ;; Use biblatex instead of bibtex. - -(use-package biblio) - -(defun bibtex-online-entry () - (interactive) - (bibtex-entry "Online")) - -(defun bibtex-misc-entry () - (interactive) - (bibtex-entry "Misc")) - -(defun bibtex-software-entry () - (interactive) - (bibtex-entry "Software")) - -(transient-define-prefix bibtex-transient-menu () - "Transient menu for task management shortcuts." - ["Biblio" ("d" "doi.org" doi-insert-bibtex) - ("x" "arXiv" arxiv-lookup)] - ["Templates" ("o" "Online Resource" bibtex-online-entry) - ("m" "Misc" bibtex-misc-entry) - ("s" "Software" bibtex-software-entry)]) - -(define-key bibtex-mode-map (kbd "C-c r") #'bibtex-transient-menu) - -;;; Literate Programming -;; Racket -(use-package ob-racket - :after org - :config - (add-hook 'ob-racket-pre-runtime-library-load-hook - #'ob-racket-raco-make-runtime-library) - :straight (ob-racket - :type git :host github :repo "hasu/emacs-ob-racket" - :files ("*.el" "*.rkt"))) - -(org-babel-do-load-languages - 'org-babel-load-languages - '((emacs-lisp . t) - (racket . t) - )) - -;;; LaTeX configuration -(require 'ox-latex) - -(setq org-latex-pdf-process - '("pdflatex -interaction nonstopmode -output-directory %o %f" - "bibtex %b" - "pdflatex -interaction nonstopmode -output-directory %o %f" - "pdflatex -interaction nonstopmode -output-directory %o %f")) -(setq org-latex-with-hyperref nil) ;; stop org adding hypersetup{author..} to latex export -;; (setq org-latex-prefer-user-labels t) - -;; deleted unwanted file extensions after latexMK -(setq org-latex-logfiles-extensions - (quote ("lof" "lot" "tex~" "aux" "idx" "log" "out" "toc" "nav" "snm" "vrb" "dvi" "fdb_latexmk" "blg" "brf" "fls" "entoc" "ps" "spl" "bbl" "xmpi" "run.xml" "bcf" "acn" "acr" "alg" "glg" "gls" "ist"))) - -(unless (boundp 'org-latex-classes) - (setq org-latex-classes nil)) - -(provide 'org-custom) - -;;; org-custom.el ends here