;;; OrgCube --- The elisp cube for FG42 -*- lexical-binding: t; -*- ;; ;; Copyright (c) 2010-2021 Sameer Rahmani & Contributors ;; ;; Author: Sameer Rahmani ;; URL: https://gitlab.com/FG42/FG42 ;; Version: 3.0.0 ;; ;; 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: ;; Cubes are the building blocks of any `FG42' editor. Each `cube' is a ;; unit which defines different abilities in a deterministic and idempotent ;; way. Cubes are composable and a composition of cubes creates an editor. ;; ;;; Code: (require 'fpkg) (require 'fg42/cube) (defcube fg42/org-cube (:docs "cubes/fg42/org-cube.org" :flag org :flag-default t) (let ((capture-key (or (plist-get fg42/org-cube-params :capture-key) (kbd ""))) (org-home (or (plist-get fg42/org-cube-params :org-home) "~/orgs")) (notes-file (or (plist-get fg42/org-cube-params :org-home) "~/orgs/notes.org"))) (fpkg/use org-bullets :hook (org-mode . org-bullets-mode)) (fpkg/use org-mode :init (progn (require 'org-capture) (global-set-key capture-key 'org-capture) (setq org-directory org-home) (setq org-default-notes-file notes-file) (setq org-capture-templates '(("t" "Todo" entry (file+headline (expand-file-name "main.org" org-home) "New Tasks") (file (expand-file-name "templates/todo" org-home)) :prepend t) ("l" "Link" entry (file+headline (expand-file-name "bookmarks.org" org-home) "Links") (file (expand-file-name "templates/links" org-home)) :prepend t :empty-lines 1) ("h" "Thoughts" entry (file+datetree (expand-file-name "journal.org" org-home)) (file (expand-file-name "templates/thoughts" org-home))))) (setq org-refile-targets '((org-agenda-files :maxlevel . 3))) (with-eval-after-load "ox-latex" (setq org-latex-default-packages-alist (append '(("hidelinks" "hyperref" nil)) org-latex-default-packages-alist))) (unless (server-running-p) (require 'org-protocol)))))) (provide 'cubes/org) ;;; org.el ends here