summaryrefslogtreecommitdiffstats
path: root/init.org
diff options
context:
space:
mode:
Diffstat (limited to 'init.org')
-rw-r--r--init.org103
1 files changed, 83 insertions, 20 deletions
diff --git a/init.org b/init.org
index d8563fd..42fba09 100644
--- a/init.org
+++ b/init.org
@@ -184,9 +184,9 @@ but for now I've decided to keep them enabled. See documentation for
*** No =package.el=
-I can do all my package management things with Borg, and don't need
-Emacs' built-in =package.el=. Emacs 27 lets us disable =package.el= in
-the =early-init-file= (see [[https://git.savannah.gnu.org/cgit/emacs.git/commit/?id=24acb31c04b4048b85311d794e600ecd7ce60d3b][here]]).
+I can do all my package management things with =straight.el=, and
+don't need Emacs' built-in =package.el=. Emacs 27 lets us disable
+=package.el= in the =early-init-file= (see [[https://git.savannah.gnu.org/cgit/emacs.git/commit/?id=24acb31c04b4048b85311d794e600ecd7ce60d3b][here]]).
#+begin_src emacs-lisp :tangle early-init.el
(setq package-enable-at-startup nil)
@@ -197,12 +197,36 @@ right now), and even when released it'll be long before most distros
ship in their repos, I'll still put the old workaround with the
commented call to ~package-initialize~ here anyway.
-#+begin_src emacs-lisp
+#+begin_src emacs-lisp :tangle no
(setq package-enable-at-startup nil)
;; (package-initialize)
#+end_src
-*** Borg
+Update: the above is not necessary, since =straight.el= automatically
+does that (and more). See =straight-package-neutering-mode=.
+
+*** =straight.el=
+
+#+begin_src emacs-lisp
+(setq straight-repository-branch "develop")
+
+(defvar bootstrap-version)
+(let ((bootstrap-file
+ (expand-file-name "straight/repos/straight.el/bootstrap.el" user-emacs-directory))
+ (bootstrap-version 5))
+ (unless (file-exists-p bootstrap-file)
+ (with-current-buffer
+ (url-retrieve-synchronously
+ "https://raw.githubusercontent.com/raxod502/straight.el/develop/install.el"
+ 'silent 'inhibit-cookies)
+ (goto-char (point-max))
+ (eval-print-last-sexp)))
+ (load bootstrap-file nil 'nomessage))
+
+(setq straight-use-package-by-default t)
+#+end_src
+
+*** COMMENT Borg
#+begin_quote
Assimilate Emacs packages as Git submodules
@@ -244,7 +268,7 @@ packages (in our case especially the latter) in a neatly organized way
and without compromising on performance.
#+begin_src emacs-lisp
-(require 'use-package)
+(straight-use-package 'use-package)
(if nil ; set to t when need to debug init
(setq use-package-verbose t
use-package-expand-minimally nil
@@ -254,7 +278,7 @@ and without compromising on performance.
use-package-expand-minimally t))
#+end_src
-*** Epkg
+*** COMMENT Epkg
#+begin_quote
Browse the Emacsmirror package database
@@ -307,6 +331,7 @@ it it's own file. While at it, treat themes as safe.
#+begin_src emacs-lisp
(use-package custom
+ :straight nil
:no-require t
:config
(setq custom-file (no-littering-expand-etc-file-name "custom.el"))
@@ -361,6 +386,7 @@ See [[https://www.gnu.org/software/emacs/manual/html_node/emacs/Emacs-Server.htm
#+begin_src emacs-lisp
(use-package server
+ :straight nil
:defer 1
:config (or (server-running-p) (server-mode)))
#+end_src
@@ -724,7 +750,44 @@ customizing it.
'auto-compile-inhibit-compile-detached-git-head))
#+end_src
-*** [[https://orgmode.org/][Org mode]]
+*** Org
+
+#+begin_src emacs-lisp
+ (use-package git)
+
+ (defun org-git-version ()
+ "The Git version of org-mode.
+ Inserted by installing org-mode or when a release is made."
+ (require 'git)
+ (let ((git-repo (expand-file-name
+ "straight/repos/org/" user-emacs-directory)))
+ (string-trim
+ (git-run "describe"
+ "--match=release\*"
+ "--abbrev=6"
+ "HEAD"))))
+
+ (defun org-release ()
+ "The release version of org-mode.
+ Inserted by installing org-mode or when a release is made."
+ (require 'git)
+ (let ((git-repo (expand-file-name
+ "straight/repos/org/" user-emacs-directory)))
+ (string-trim
+ (string-remove-prefix
+ "release_"
+ (git-run "describe"
+ "--match=release\*"
+ "--abbrev=0"
+ "HEAD")))))
+
+ (provide 'org-version)
+
+ (use-package org
+ :defer 0.8) ; or org-plus-contrib if desired
+#+end_src
+
+*** COMMENT [[https://orgmode.org/][Org mode]]
#+begin_quote
Org mode is for keeping notes, maintaining TODO lists, planning
@@ -868,7 +931,7 @@ Not just how I do git, but /the/ way to do git.
:custom-face (magit-diff-file-heading ((t (:weight normal)))))
#+end_src
-*** [[https://github.com/abo-abo/swiper][Ivy]] (and friends)
+*** COMMENT [[https://github.com/abo-abo/swiper][Ivy]] (and friends)
#+begin_quote
Ivy - a generic completion frontend for Emacs, Swiper - isearch with
@@ -924,7 +987,7 @@ There's no way I could top that, so I won't attempt to.
(defalias 'locate #'counsel-locate))
#+end_src
-*** eshell
+*** COMMENT eshell
#+begin_src emacs-lisp
(use-package eshell
@@ -961,7 +1024,7 @@ There's no way I could top that, so I won't attempt to.
(eshell-input-filter 'eshell-input-filter-initial-space))
#+end_src
-*** Ibuffer
+*** COMMENT Ibuffer
#+begin_src emacs-lisp
(use-package ibuffer
@@ -1032,7 +1095,7 @@ There's no way I could top that, so I won't attempt to.
:hook (ibuffer . (lambda () (ibuffer-switch-to-saved-filter-groups "default"))))
#+end_src
-*** Outline
+*** COMMENT Outline
#+begin_src emacs-lisp
(use-package outline
@@ -1054,7 +1117,7 @@ There's no way I could top that, so I won't attempt to.
("s" . outline-show-subtree)))
#+end_src
-* Borg's =layer/essentials=
+* COMMENT Borg's =layer/essentials=
:PROPERTIES:
:CUSTOM_ID: borg-essentials
:END:
@@ -1175,7 +1238,7 @@ TODO: break this giant source block down into individual org sections.
#+end_src
-* Editing
+* COMMENT Editing
:PROPERTIES:
:CUSTOM_ID: editing
:END:
@@ -1199,7 +1262,7 @@ TODO: break this giant source block down into individual org sections.
(global-company-mode t))
#+end_src
-* Syntax and spell checking
+* COMMENT Syntax and spell checking
:PROPERTIES:
:CUSTOM_ID: syntax-spell-checking
:END:
@@ -1246,7 +1309,7 @@ TODO: break this giant source block down into individual org sections.
#'endless/replace-quote))
#+end_src
-* Programming modes
+* COMMENT Programming modes
:PROPERTIES:
:CUSTOM_ID: programming-modes
:END:
@@ -1618,7 +1681,7 @@ treemacs
:load-path "lib/guix/elisp")
#+end_src
-* Emacs enhancements
+* COMMENT Emacs enhancements
:PROPERTIES:
:CUSTOM_ID: emacs-enhancements
:END:
@@ -1955,7 +2018,7 @@ Also see [[https://www.emacswiki.org/emacs/rebox2][rebox2]].
("a" . mc/mark-all-like-this))))
#+end_src
-* Email
+* COMMENT Email
:PROPERTIES:
:CUSTOM_ID: email
:END:
@@ -2242,7 +2305,7 @@ Convenient footnotes in =message-mode=.
(gnus-harvest-install)))
#+end_src
-* Blogging
+* COMMENT Blogging
:PROPERTIES:
:CUSTOM_ID: blogging
:END:
@@ -2281,6 +2344,6 @@ Display how long it took to load the init file.
* COMMENT Local Variables :ARCHIVE:
# Local Variables:
-# eval: (add-hook 'after-save-hook #'a/async-babel-tangle 'append 'local)
+# eval: ;; (add-hook 'after-save-hook #'a/async-babel-tangle 'append 'local)
# eval: (typo-mode -1)
# End: