diff options
Diffstat (limited to '.emacs.d/modules/thanos-org.el')
-rw-r--r-- | .emacs.d/modules/thanos-org.el | 247 |
1 files changed, 0 insertions, 247 deletions
diff --git a/.emacs.d/modules/thanos-org.el b/.emacs.d/modules/thanos-org.el deleted file mode 100644 index 0ad1f28..0000000 --- a/.emacs.d/modules/thanos-org.el +++ /dev/null @@ -1,247 +0,0 @@ -;;; thanos-org-config.el --- org config -*- lexical-binding: t; -*- - -;; Copyright (C) 2023 Thanos Apollo - -;; Author: Thanos Apollo <[email protected]> -;; Keywords: - -;; 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 <https://www.gnu.org/licenses/>. - -;;; Commentary: -;; ╭━━━━┳╮╱╱╱╱╱╱╱╱╱╱╱╱╱╱╭━━━╮╱╱╱╱╱╭╮╭╮╱╱╱╱╱╱╱╱╭━━━╮ -;; ┃╭╮╭╮┃┃╱╱╱╱╱╱╱╱╱╱╱╱╱╱┃╭━╮┃╱╱╱╱╱┃┃┃┃╱╱╱╱╱╱╱╱┃╭━━╯ -;; ╰╯┃┃╰┫╰━┳━━┳━╮╭━━┳━━╮┃┃╱┃┣━━┳━━┫┃┃┃╭━━╮╱╱╱╱┃╰━━┳╮╭┳━━┳━━┳━━╮ -;; ╱╱┃┃╱┃╭╮┃╭╮┃╭╮┫╭╮┃━━┫┃╰━╯┃╭╮┃╭╮┃┃┃┃┃╭╮┃╭━━╮┃╭━━┫╰╯┃╭╮┃╭━┫━━┫ -;; ╱╱┃┃╱┃┃┃┃╭╮┃┃┃┃╰╯┣━━┃┃╭━╮┃╰╯┃╰╯┃╰┫╰┫╰╯┃╰━━╯┃╰━━┫┃┃┃╭╮┃╰━╋━━┃ -;; ╱╱╰╯╱╰╯╰┻╯╰┻╯╰┻━━┻━━╯╰╯╱╰┫╭━┻━━┻━┻━┻━━╯╱╱╱╱╰━━━┻┻┻┻╯╰┻━━┻━━╯ -;; ╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱┃┃ -;; ╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╱╰╯ -;;; Code: - -(require 'org) -(require 'org-agenda) -;; Export backends -(require 'ox-texinfo) -(require 'ox-hugo) - -(setf org-directory "~/org/" - org-agenda-files '("~/org/agenda.org") - org-default-notes-file (expand-file-name "notes.org" org-directory) - org-ellipsis " ▼ " - org-log-done 'time - org-hide-emphasis-markers nil ;;change to t to hide emphasis markers - org-table-convert-region-max-lines 20000 - org-log-done 'time - org-todo-keywords '((sequence "TODO(t)" "SEMINAR(s)" "LECTURE(l)" "DONE(d)"))) - -(define-key org-mode-map (kbd "C-c t") 'org-time-stamp-inactive) - -(defadvice org-edit-src-code (around set-buffer-file-name activate compile) - (let ((file-name (buffer-file-name))) ;; (1) - ad-do-it ;; (2) - (setf buffer-file-name file-name))) ;; (3) - -(org-babel-do-load-languages - 'org-babel-load-languages - '((emacs-lisp . t) - (python . t))) - - - -(setf org-structure-template-alist - '(("e" . "src emacs-lisp") - ("p" . "src python") - ("l" . "src lisp") - ("b" . "src bash") - ("q" . "QUOTE"))) - -;;Auto tangle -(add-hook 'org-mode-hook 'org-auto-tangle-mode) - - -;; Org roam -(require 'org-roam) - -;; Create ~/Notes, ignore errors if it's already made -(ignore-errors - (make-directory "~/Notes")) - -(setf org-roam-directory "~/Notes" - org-roam-dailies-directory "journal/") - -(org-roam-db-autosync-enable) - -(setf org-roam-node-display-template (concat "${title:50} "(propertize "${tags:30}" 'face 'org-tag))) - -(setf org-roam-db-node-include-function - (lambda () - (not (or (member "journal" (org-get-tags)) - (member "memorize" (org-get-tags)))))) - -;; Functions -(defun org-insert-book () - "Insert org-link from ~/Library for book" - (interactive) - (let* ((book-path (read-file-name "Book: " "~/Library/"))) - (org-insert-link nil book-path (file-name-base book-path)))) - -;;; Keybindings -(define-key org-mode-map (kbd "C-c b") 'org-insert-book) - -;; Set maps -(define-prefix-command 'thanos/notes) -(global-set-key (kbd "C-c n") 'thanos/notes) -;; org-roam keys -(define-key thanos/notes (kbd "t") 'org-roam-buffer-toggle) -(define-key thanos/notes (kbd "f") 'org-roam-node-find) -(define-key thanos/notes (kbd "i") 'org-roam-node-insert) -;; Journaling -(define-prefix-command 'Journal) -(define-key thanos/notes (kbd "j") 'Journal) -(define-key Journal (kbd "d") 'Journaling/dailies) -(define-key Journal (kbd "C-c") 'org-roam-dailies-capture-today) -(define-key Journal (kbd "C-t") 'org-roam-dailies-capture-tomorrow) -(define-key Journal (kbd "C-y") 'org-roam-dailies-capture-yesterday) -(define-key Journal (kbd "c") 'org-roam-dailies-goto-today) -(define-key Journal (kbd "t") 'org-roam-dailies-goto-tomorrow) -(define-key Journal (kbd "y") 'org-roam-dailies-goto-yesterday) - -(define-key org-mode-map (kbd "C-c C-.") 'org-roam-tag-add) -(define-key org-mode-map (kbd "C-c i") 'org-id-get-create) - -;; Templates -(setf org-roam-capture-templates - '(("d" "default" plain - "%?" - :if-new (file+head "%<%Y%m%d%H%M%S>-${slug}.org" "#+title: ${title}\n") - :unnarrowed t) - ("l" "programming language" plain - "* Characteristics\n\n- Family: %?\n- Inspired by: \n\n* Reference:\n\n" - :if-new (file+head "%<%Y%m%d%H%M%S>-${slug}.org" "#+title: ${title}\n") - :unnarrowed t) - ("p" "MUS" plain "* Goals\n\n%?\n\n* Tasks\n\n** TODO Add initial tasks\n\n* Dates\n\n" - :if-new (file+head "%<%Y%m%d%H%M%S>-${slug}.org" "#+title: ${title}\n#+filetags: MUS") - :unnarrowed t))) -;; Dailies -(setf org-roam-dailies-capture-templates - '(("d" "default" entry - "* %?" - :target (file+head "%<%Y-%m-%d>.org" - "#+title: %<%Y-%m-%d>\n")) - ("j" "Daily Journaling" entry - (file "~/org/Templates/journaling.org") - :target (file+head "%<%Y-%m-%d>.org" - "#+title: %<%Y-%m-%d>\n")) - ("i" "Improve" entry - (file "~/org/Templates/improve.org") - :target (file+head "%<%Y-%m-%d>.org" - "#+title: %<%Y-%m-%d>\n")))) - -;; Org themes -(require 'org-modern) - - -(defvar org-gruvbox-theming - '((org-level-1 1.30 "#fb4934" extra-bold) - (org-level-2 1.20 "#98971a" bold) - (org-level-3 1.13 "#458588" bold) - (org-level-4 1.10 "#b16286" semi-bold) - (org-level-5 1.10 "#689d6a" normal) - (org-level-6 1.10 "#d3869b" normal) - (org-level-7 1.10 "#8ec07c" normal) - (org-level-8 1.00 "#ebdbb2" normal))) - -(defun thanos/org-theme-gruvbox () - "Enable Darkone theme for Org headers." - (interactive) - (dolist (face org-gruvbox-theming) - (set-face-attribute (nth 0 face) nil - :font "Jetbrains Mono" - :weight (nth 3 face) - :height (nth 1 face) - :foreground (nth 2 face))) - (set-face-attribute 'org-table nil - :font "Jetbrains Mono" - :weight 'semi-bold - :height 1.0 - :foreground "#fb4934")) - -(defun thanos/org-scale () - "Enable Darkone theme for Org headers." - (interactive) - (dolist (face org-gruvbox-theming) - (set-face-attribute (nth 0 face) nil - :font "Jetbrains Mono" - :weight (nth 3 face) - :height (nth 1 face))) - (set-face-attribute 'org-table nil - :font "Jetbrains Mono" - :weight 'semi-bold - :height 1.0 - :foreground "#fb4934")) - -(defun thanos/org-hook () - "Add hooks for `org-mode'." - (display-line-numbers-mode -1) - (flyspell-mode) - (org-auto-tangle-mode) - (when (not (equal (car custom-enabled-themes) 'modus-vivendi)) - (thanos/org-scale))) - -(add-hook 'org-mode-hook #'thanos/org-hook) - -(modify-all-frames-parameters - '((right-divider-width . 5) - (internal-border-width . 5))) -(dolist (face '(window-divider - window-divider-first-pixel - window-divider-last-pixel)) - (face-spec-reset-face face) - (set-face-foreground face (face-attribute 'default :background))) -(set-face-background 'fringe (face-attribute 'default :background)) - -(setf - ;; Edit settings - org-auto-align-tags nil - org-tags-column 0 - org-fold-catch-invisible-edits 'show-and-error - org-special-ctrl-a/e t - org-insert-heading-respect-content t - - ;; Org styling, hide markup etc. - org-hide-emphasis-markers t - org-pretty-entities t - - ;; Agenda styling - org-agenda-tags-column 0 - org-agenda-block-separator ?─ - org-agenda-time-grid - '((daily today require-timed) - (800 1000 1200 1400 1600 1800 2000) - " ┄┄┄┄┄ " "┄┄┄┄┄┄┄┄┄┄┄┄┄┄┄") - org-agenda-current-time-string - "⭠ now ─────────────────────────────────────────────────") - -(global-org-modern-mode) - -(setf org-modern-table nil) -(setf org-modern-todo nil) - -;; Jinx -(require 'jinx) -(add-hook 'org-mode-hook #'jinx-mode) -(define-key jinx-mode-map (kbd "M-'") #'jinx-correct) - -(provide 'thanos-org) -;;; thanos-org.el ends here |