*** =straight.el=
+#+begin_quote
+Next-generation, purely functional package manager for the Emacs
+hacker.
+#+end_quote
+
+=straight.el= allows me to have a fully reproducible Emacs setup.
+
#+begin_src emacs-lisp
(setq straight-repository-branch "develop")
(setq straight-use-package-by-default t)
#+end_src
+Since we enable =straight.el='s =straight-use-package-by-default=
+integration, we will define a =use-feature= for plain ole
+=use-package= without any of the =straight.el= stuff.
+
+#+begin_src emacs-lisp
+(defmacro use-feature (name &rest args)
+ "Like `use-package', but with `straight-use-package-by-default' disabled."
+ (declare (indent defun))
+ `(use-package ,name
+ :straight nil
+,@args))
+#+end_src
+
*** COMMENT Borg
#+begin_quote
it it's own file. While at it, treat themes as safe.
#+begin_src emacs-lisp
-(use-package custom
- :straight nil
+(use-feature custom
:no-require t
:config
(setq custom-file (no-littering-expand-etc-file-name "custom.el"))
See [[https://www.gnu.org/software/emacs/manual/html_node/emacs/Emacs-Server.html#Emacs-Server][Using Emacs as a Server]].
#+begin_src emacs-lisp
-(use-package server
- :straight nil
+(use-feature server
:defer 1
:config (or (server-running-p) (server-mode)))
#+end_src
'auto-compile-inhibit-compile-detached-git-head))
#+end_src
-*** Org
+*** [[https://orgmode.org/][Org]]
+
+#+begin_quote
+Org mode is for keeping notes, maintaining TODO lists, planning
+projects, and authoring documents with a fast and effective plain-text
+system.
+#+end_quote
+
+In short, my favourite way of life.
+
+First, we have to resort to a [[https://github.com/raxod502/straight.el#installing-org-with-straightel][hack]] to be able to use the correct
+latest version of Org from upstream.
#+begin_src emacs-lisp
(use-package git)
"--abbrev=0"
"HEAD")))))
- (provide 'org-version)
-
- (use-package org
- :defer 0.8) ; or org-plus-contrib if desired
+(provide 'org-version)
#+end_src
-*** COMMENT [[https://orgmode.org/][Org mode]]
+We will use the =org-plus-contrib= package to get the whole deal:
-#+begin_quote
-Org mode is for keeping notes, maintaining TODO lists, planning
-projects, and authoring documents with a fast and effective plain-text
-system.
-#+end_quote
+#+begin_src emacs-lisp
+(straight-use-package 'org-plus-contrib)
+#+end_src
-In short, my favourite way of life.
+And here's where my actual Org configurations begin:
#+begin_src emacs-lisp
-(use-package org
- :defer 1
+(use-feature org
+ :defer 0.5
:config
(setq org-src-tab-acts-natively t
org-src-preserve-indentation nil
'(org-block ((t (:background "#1d1f21"))))
'(org-latex-and-related ((t (:foreground "#b294bb")))))
-(use-package ox-latex
+(use-feature ox-latex
:after ox
:config
(setq org-latex-listings 'listings
("\\subparagraph{%s}" . "\\subparagraph*{%s}"))
t))
-(use-package ox-beamer
+(use-feature ox-beamer
:after ox)
(use-package orgalist