Merge branch 'straight-next'
authorAmin Bandali <bandali@gnu.org>
Wed, 26 Dec 2018 23:05:38 +0000 (18:05 -0500)
committerAmin Bandali <bandali@gnu.org>
Wed, 26 Dec 2018 23:05:38 +0000 (18:05 -0500)
88 files changed:
.gitignore
.gitmodules [deleted file]
Makefile
init.org
lib/alert [deleted submodule]
lib/all-the-icons [deleted submodule]
lib/alloy-mode [deleted submodule]
lib/async [deleted submodule]
lib/auto-compile [deleted submodule]
lib/boogie-friends [deleted submodule]
lib/borg [deleted submodule]
lib/boxquote [deleted submodule]
lib/bui [deleted submodule]
lib/closql [deleted submodule]
lib/company [deleted submodule]
lib/company-ebdb [deleted submodule]
lib/crux [deleted submodule]
lib/dante [deleted submodule]
lib/dash [deleted submodule]
lib/diff-hl [deleted submodule]
lib/doom-themes [deleted submodule]
lib/ebdb [deleted submodule]
lib/ebdb-gnorb [deleted submodule]
lib/edit-indirect [deleted submodule]
lib/eldoc-eval [deleted submodule]
lib/elisp-refs [deleted submodule]
lib/emacsql [deleted submodule]
lib/emmet-mode [deleted submodule]
lib/epkg [deleted submodule]
lib/epl [deleted submodule]
lib/eshell-up [deleted submodule]
lib/exec-path-from-shell [deleted submodule]
lib/expand-region [deleted submodule]
lib/f [deleted submodule]
lib/flycheck [deleted submodule]
lib/flycheck-haskell [deleted submodule]
lib/geiser [deleted submodule]
lib/ghub [deleted submodule]
lib/git-modes [deleted submodule]
lib/gnorb [deleted submodule]
lib/graphql [deleted submodule]
lib/guix [deleted submodule]
lib/haskell-mode [deleted submodule]
lib/helm [deleted submodule]
lib/helpful [deleted submodule]
lib/hl-todo [deleted submodule]
lib/hlint-refactor [deleted submodule]
lib/ht [deleted submodule]
lib/hydra [deleted submodule]
lib/ivy [deleted submodule]
lib/lcr [deleted submodule]
lib/lean-mode [deleted submodule]
lib/loop [deleted submodule]
lib/magit [deleted submodule]
lib/magit-popup [deleted submodule]
lib/markdown-mode [deleted submodule]
lib/memoize [deleted submodule]
lib/multi-term [deleted submodule]
lib/multiple-cursors [deleted submodule]
lib/mwim [deleted submodule]
lib/no-littering [deleted submodule]
lib/org [deleted submodule]
lib/orgalist [deleted submodule]
lib/other-frame-window [deleted submodule]
lib/ox-hugo [deleted submodule]
lib/packed [deleted submodule]
lib/page-break-lines [deleted submodule]
lib/pkg-info [deleted submodule]
lib/popup [deleted submodule]
lib/projectile [deleted submodule]
lib/proof-site [deleted submodule]
lib/rich-minority [deleted submodule]
lib/s [deleted submodule]
lib/shrink-path [deleted submodule]
lib/shut-up [deleted submodule]
lib/smart-mode-line [deleted submodule]
lib/smex [deleted submodule]
lib/treepy [deleted submodule]
lib/typo [deleted submodule]
lib/unkillable-scratch [deleted submodule]
lib/use-package [deleted submodule]
lib/web-mode [deleted submodule]
lib/which-key [deleted submodule]
lib/winum [deleted submodule]
lib/with-editor [deleted submodule]
lib/yaml-mode [deleted submodule]
lib/yasnippet [deleted submodule]
straight/versions/default.el [new file with mode: 0644]

index c5f850f..4303fd1 100644 (file)
@@ -3,13 +3,14 @@
 /early-init.el
 /init.el
 
+/straight/*
+!/straight/versions
+
 /var/*
+/var/eshell/lastdir
 /var/eshell/history
 
 !/var/eshell
 !/var/eshell/alias
 
 !/var/abbrev.el
-
-!/lisp/bbdb/bbdb-autoloads.el
-/var/eshell/lastdir
diff --git a/.gitmodules b/.gitmodules
deleted file mode 100644 (file)
index 83877c8..0000000
+++ /dev/null
@@ -1,280 +0,0 @@
-[borg]
-       pushDefault = aminb
-       collective = emacsg
-[submodule "alert"]
-       path = lib/alert
-       url = git@github.com:jwiegley/alert.git
-[submodule "all-the-icons"]
-       path = lib/all-the-icons
-       url = git@github.com:domtronn/all-the-icons.el.git
-[submodule "alloy-mode"]
-       path = lib/alloy-mode
-       url = git@github.com:dwwmmn/alloy-mode.git
-[submodule "async"]
-       path = lib/async
-       url = git@github.com:jwiegley/emacs-async.git
-[submodule "auto-compile"]
-       path = lib/auto-compile
-       url = git@github.com:emacscollective/auto-compile.git
-[submodule "boogie-friends"]
-       path = lib/boogie-friends
-       url = git@github.com:boogie-org/boogie-friends.git
-       load-path = emacs
-[submodule "borg"]
-       path = lib/borg
-       url = git@github.com:emacscollective/borg.git
-[submodule "boxquote"]
-       path = lib/boxquote
-       url = git@github.com:davep/boxquote.el.git
-[submodule "bui"]
-       path = lib/bui
-       url = git@github.com:alezost/bui.el.git
-[submodule "closql"]
-       path = lib/closql
-       url = git@github.com:emacscollective/closql.git
-[submodule "company"]
-       path = lib/company
-       url = git@github.com:company-mode/company-mode.git
-[submodule "company-ebdb"]
-       path = lib/company-ebdb
-       url = git@github.com:emacs-straight/company-ebdb.git
-[submodule "crux"]
-       path = lib/crux
-       url = git@github.com:bbatsov/crux.git
-[submodule "dante"]
-       path = lib/dante
-       url = git@github.com:jyp/dante.git
-[submodule "dash"]
-       path = lib/dash
-       url = git@github.com:magnars/dash.el.git
-       no-makeinfo = dash-template.texi
-       # dash creates a `dir' dash info file, which makes git think
-       # that the submodule is dirty. so, let's ignore the untracked
-       # files of dash's submodule
-       ignore = untracked
-[submodule "diff-hl"]
-       path = lib/diff-hl
-       url = git@github.com:dgutov/diff-hl.git
-[submodule "doom-themes"]
-       path = lib/doom-themes
-       url = git@github.com:hlissner/emacs-doom-themes.git
-[submodule "ebdb"]
-       path = lib/ebdb
-       url = git@github.com:girzel/ebdb.git
-[submodule "ebdb-gnorb"]
-       path = lib/ebdb-gnorb
-       url = git@github.com:emacsmirror/ebdb-gnorb.git
-[submodule "edit-indirect"]
-       path = lib/edit-indirect
-       url = git@github.com:Fanael/edit-indirect.git
-[submodule "eldoc-eval"]
-       path = lib/eldoc-eval
-       url = git@github.com:thierryvolpiatto/eldoc-eval.git
-[submodule "elisp-refs"]
-       path = lib/elisp-refs
-       url = git@github.com:Wilfred/elisp-refs.git
-[submodule "emacsql"]
-       path = lib/emacsql
-       url = git@github.com:skeeto/emacsql.git
-       no-byte-compile = emacsql-pg.el
-[submodule "emmet-mode"]
-       path = lib/emmet-mode
-       url = git@github.com:smihica/emmet-mode.git
-[submodule "epkg"]
-       path = lib/epkg
-       url = git@github.com:emacscollective/epkg.git
-[submodule "epl"]
-       path = lib/epl
-       url = git@github.com:cask/epl.git
-[submodule "eshell-up"]
-       path = lib/eshell-up
-       url = git@github.com:peterwvj/eshell-up.git
-[submodule "exec-path-from-shell"]
-       path = lib/exec-path-from-shell
-       url = git@github.com:purcell/exec-path-from-shell.git
-[submodule "expand-region"]
-       path = lib/expand-region
-       url = git@github.com:magnars/expand-region.el.git
-[submodule "f"]
-       path = lib/f
-       url = git@github.com:rejeep/f.el.git
-[submodule "flycheck"]
-       path = lib/flycheck
-       url = git@github.com:flycheck/flycheck.git
-[submodule "flycheck-haskell"]
-       path = lib/flycheck-haskell
-       url = git@github.com:flycheck/flycheck-haskell.git
-[submodule "geiser"]
-       path = lib/geiser
-       url = git@gitlab.com:jaor/geiser.git
-       info-path = doc
-       load-path = elisp
-       build-step = ./autogen.sh
-       build-step = ./configure
-       build-step = make
-[submodule "ghub"]
-       path = lib/ghub
-       url = git@github.com:magit/ghub.git
-[submodule "git-modes"]
-       path = lib/git-modes
-       url = git@github.com:magit/git-modes.git
-[submodule "gnorb"]
-       path = lib/gnorb
-       url = git@github.com:girzel/gnorb.git
-       no-byte-compile = gnorb-bbdb.el
-[submodule "graphql"]
-       path = lib/graphql
-       url = git@github.com:vermiculus/graphql.el.git
-[submodule "guix"]
-       path = lib/guix
-       url = git@github.com:alezost/guix.el.git
-       info-path = doc
-       load-path = elisp
-       build-step = ./autogen.sh
-       build-step = ./configure
-       build-step = make
-[submodule "haskell-mode"]
-       path = lib/haskell-mode
-       url = git@github.com:haskell/haskell-mode.git
-[submodule "helm"]
-       path = lib/helm
-       url = git@github.com:emacs-helm/helm.git
-[submodule "helpful"]
-       path = lib/helpful
-       url = git@github.com:Wilfred/helpful.git
-[submodule "hl-todo"]
-       path = lib/hl-todo
-       url = git@github.com:tarsius/hl-todo.git
-[submodule "hlint-refactor"]
-       path = lib/hlint-refactor
-       url = git@github.com:mpickering/hlint-refactor-mode.git
-[submodule "ht"]
-       path = lib/ht
-       url = git@github.com:Wilfred/ht.el.git
-[submodule "hydra"]
-       path = lib/hydra
-       url = git@github.com:abo-abo/hydra.git
-[submodule "ivy"]
-       path = lib/ivy
-       url = git@github.com:abo-abo/swiper.git
-       info-path = doc
-[submodule "lcr"]
-       path = lib/lcr
-       url = git@github.com:jyp/lcr.git
-[submodule "lean-mode"]
-       path = lib/lean-mode
-       url = git@github.com:leanprover/lean-mode.git
-[submodule "loop"]
-       path = lib/loop
-       url = git@github.com:Wilfred/loop.el.git
-[submodule "magit"]
-       path = lib/magit
-       url = git@github.com:magit/magit.git
-       recursive-byte-compile = true
-       info-path = Documentation
-[submodule "magit-popup"]
-       path = lib/magit-popup
-       url = git@github.com:magit/magit-popup.git
-[submodule "markdown-mode"]
-       path = lib/markdown-mode
-       url = git@github.com:jrblevin/markdown-mode.git
-[submodule "memoize"]
-       path = lib/memoize
-       url = git@github.com:skeeto/emacs-memoize.git
-[submodule "multi-term"]
-       path = lib/multi-term
-       url = git@github.com:emacsorphanage/multi-term.git
-[submodule "multiple-cursors"]
-       path = lib/multiple-cursors
-       url = git@github.com:magnars/multiple-cursors.el.git
-[submodule "mwim"]
-       path = lib/mwim
-       url = git@github.com:alezost/mwim.el.git
-[submodule "no-littering"]
-       path = lib/no-littering
-       url = git@github.com:emacscollective/no-littering.git
-[submodule "org"]
-       path = lib/org
-       url = git@code.orgmode.org:bzg/org-mode.git
-       load-path = lisp
-       info-path = doc
-       build-step = make compile autoloads info # ORG_ADD_CONTRIB="org-notmuch"
-       # setting ORG_ADD_CONTRIB results in copying of files from contrib/
-       # into lisp/, which git will pick up.  so, let's ignore untracked files
-       # from org's submodule; at least for now
-       # ignore = untracked
-[submodule "orgalist"]
-       path = lib/orgalist
-       url = git@github.com:emacsmirror/orgalist.git
-[submodule "other-frame-window"]
-       path = lib/other-frame-window
-       url = git@github.com:emacsmirror/other-frame-window.git
-[submodule "ox-hugo"]
-       path = lib/ox-hugo
-       url = git@github.com:kaushalmodi/ox-hugo.git
-[submodule "packed"]
-       path = lib/packed
-       url = git@github.com:emacscollective/packed.git
-[submodule "page-break-lines"]
-       path = lib/page-break-lines
-       url = git@github.com:purcell/page-break-lines.git
-[submodule "pkg-info"]
-       path = lib/pkg-info
-       url = git@github.com:lunaryorn/pkg-info.el.git
-[submodule "popup"]
-       path = lib/popup
-       url = git@github.com:auto-complete/popup-el.git
-[submodule "projectile"]
-       path = lib/projectile
-       url = git@github.com:bbatsov/projectile.git
-[submodule "proof-site"]  # Proof General
-       path = lib/proof-site
-       url = git@github.com:ProofGeneral/PG.git
-[submodule "rich-minority"]
-       path = lib/rich-minority
-       url = git@github.com:Malabarba/rich-minority.git
-[submodule "s"]
-       path = lib/s
-       url = git@github.com:magnars/s.el.git
-[submodule "shrink-path"]
-       path = lib/shrink-path
-       url = git@gitlab.com:bennya/shrink-path.el.git
-[submodule "shut-up"]
-       path = lib/shut-up
-       url = git@github.com:cask/shut-up.git
-[submodule "smart-mode-line"]
-       path = lib/smart-mode-line
-       url = git@github.com:Malabarba/smart-mode-line.git
-[submodule "smex"]  # used by counsel-M-x
-       path = lib/smex
-       url = git@github.com:nonsequitur/smex.git
-[submodule "treepy"]
-       path = lib/treepy
-       url = git@github.com:volrath/treepy.el.git
-[submodule "typo"]
-       path = lib/typo
-       url = git@github.com:jorgenschaefer/typoel.git
-[submodule "unkillable-scratch"]
-       path = lib/unkillable-scratch
-       url = git@github.com:EricCrosson/unkillable-scratch.git
-[submodule "use-package"]
-       path = lib/use-package
-       url = git@github.com:jwiegley/use-package.git
-[submodule "web-mode"]
-       path = lib/web-mode
-       url = git@github.com:fxbois/web-mode.git
-[submodule "which-key"]
-       path = lib/which-key
-       url = git@github.com:justbur/emacs-which-key.git
-[submodule "winum"]
-       path = lib/winum
-       url = git@github.com:deb0ch/emacs-winum.git
-[submodule "with-editor"]
-       path = lib/with-editor
-       url = git@github.com:magit/with-editor.git
-[submodule "yaml-mode"]
-       path = lib/yaml-mode
-       url = git@github.com:yoshiki/yaml-mode.git
-[submodule "yasnippet"]
-       path = lib/yasnippet
-       url = git@github.com:joaotavora/yasnippet.git
index e694d46..3b3a23f 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,13 +1,19 @@
--include lib/borg/borg.mk
+EMACS           ?= emacs
+EMACS_ARGUMENTS ?= -Q
 
-bootstrap-borg:
-       @git submodule--helper clone --name borg --path lib/borg \
-       --url git@github.com:emacscollective/borg.git
-       @cd lib/borg; git symbolic-ref HEAD refs/heads/master
-       @cd lib/borg; git reset --hard HEAD
+.PHONY: all help clean build build-init quick bootstrap
+.FORCE:
 
-bootstrap: tangle-init
+tangle-init: init.el
+init.el: init.org
+       @$(EMACS) $(EMACS_ARGUMENTS) \
+       --batch --load org \
+       --eval '(org-babel-tangle-file "init.org")' 2>&1
 
-ta: tangle-init all
+build-init:
+       @rm -f init.elc
+       @$(EMACS) $(EMACS_ARGUMENTS) \
+       --batch -l init.el --eval '(a/build-init)' 2>&1
 
-ti: tangle-init build-init
+ti: tangle-init
+bi: build-init
index c69823e..684bbf1 100644 (file)
--- a/init.org
+++ b/init.org
@@ -9,10 +9,10 @@
 :END:
 
 This org file is my literate configuration for GNU Emacs, and is
-tangled to [[./init.el][init.el]]. Packages are installed and managed using
-[[https://github.com/emacscollective/borg][Borg]]. Over the years, I've taken inspiration from configurations of
-many different people. Some of the configurations that I can remember
-off the top of my head are:
+tangled to [[./init.el][init.el]].  Packages are installed and managed using
+[[https://github.com/raxod502/straight.el][straight.el]].  Over the years, I've taken inspiration from
+configurations of many different people.  Some of the configurations
+that I can remember off the top of my head are:
 
 - [[https://github.com/dieggsy/dotfiles][dieggsy/dotfiles]]: literate Emacs and dotfiles configuration, uses
   straight.el for managing packages
@@ -28,24 +28,9 @@ off the top of my head are:
 I'd like to have a fully reproducible Emacs setup (part of the reason
 why I store my configuration in this repository) but unfortunately out
 of the box, that's not achievable with =package.el=, not currently
-anyway. So, I've opted to use Borg. For what it's worth, I briefly
-experimented with [[https://github.com/raxod502/straight.el][straight.el]], but found that it added about 2 seconds
-to my init time; which is unacceptable for me: I use Emacs as my
-window manager (via EXWM) and coming from bspwm, I'm too used to
-having fast startup times.
-
-** Installation
-
-To use this config for your Emacs, first you need to clone this repo,
-then bootstrap Borg, tell Borg to retrieve package submodules, and
-byte-compiled the packages. Something along these lines should work:
-
-#+begin_src sh :tangle no
-git clone https://git.sr.ht/~bandali/dotfiles ~/.emacs.d
-cd ~/.emacs.d
-make bootstrap-borg
-make bootstrap
-#+end_src
+anyway.  So, I've opted to use =straight.el=.  I also used Borg for a
+few months, but decided to try =straight.el= which allows direct use
+of the various package archives.
 
 * Contents                                                   :toc_1:noexport:
 
@@ -183,9 +168,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)
@@ -196,43 +181,67 @@ 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_quote
-Assimilate Emacs packages as Git submodules
+Next-generation, purely functional package manager for the Emacs
+hacker.
 #+end_quote
 
-[[https://github.com/emacscollective/borg][Borg]] is at the heart of package management of my Emacs setup. In
-short, it creates a git submodule in =lib/= for each package, which
-can then be managed with the help of Magit or other tools.
+=straight.el= allows me to have a fully reproducible Emacs setup.
 
 #+begin_src emacs-lisp
-(setq user-init-file (or load-file-name buffer-file-name)
-      user-emacs-directory (file-name-directory user-init-file))
-(add-to-list 'load-path
-             (expand-file-name "lib/borg" user-emacs-directory))
 ;; Main engine start...
-(require 'borg)
+
+(setq straight-repository-branch "develop"
+      straight-check-for-modifications '(check-on-save find-when-checking))
+
+(defun a/bootstrap-straight ()
+  (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)))
+
 ;; Solid rocket booster ignition...
-(borg-initialize)
+
+(defun a/build-init ()
+  (a/bootstrap-straight)
+  (byte-compile-file "init.el"))
+
+(a/bootstrap-straight)
+
 ;; We have lift off!
 
-;; (require 'borg-nix-shell)
-;; (setq borg-build-shell-command 'borg-nix-shell-build-command)
+(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.
 
-(with-eval-after-load 'bind-key
-  (bind-keys
-   :package borg
-   ("C-c b A" . borg-activate)
-   ("C-c b a" . borg-assimilate)
-   ("C-c b b" . borg-build)
-   ("C-c b c" . borg-clone)
-   ("C-c b r" . borg-remove)))
+#+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
 
 *** =use-package=
@@ -246,7 +255,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
@@ -269,12 +278,14 @@ database, low-level functions for querying the database, and a
 =package.el=-like user interface for browsing the available packages.
 
 #+begin_src emacs-lisp
+(require 'bind-key)
 (use-package epkg
+  :commands (epkg-list-packages epkg-describe-package)
   :bind
-  (("C-c b d" . epkg-describe-package)
-   ("C-c b p" . epkg-list-packages)
-   ("C-c b u" . epkg-update))
+  (("C-c P e d" . epkg-describe-package)
+   ("C-c P e p" . epkg-list-packages))
   :config
+  (setq epkg-repository "~/.emacs.d/straight/repos/epkgs/")
   (eval-when-compile (defvar ivy-initial-inputs-alist))
   (with-eval-after-load 'ivy
     (add-to-list
@@ -309,7 +320,7 @@ definitely don't want it mixing with =init.el=. So, here; let's give
 it it's own file. While at it, treat themes as safe.
 
 #+begin_src emacs-lisp
-(use-package custom
+(use-feature custom
   :no-require t
   :config
   (setq custom-file (no-littering-expand-etc-file-name "custom.el"))
@@ -363,7 +374,7 @@ login; so starting the server from inside Emacs is good enough for me.
 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
+(use-feature server
   :defer 1
   :config (or (server-running-p) (server-mode)))
 #+end_src
@@ -743,8 +754,51 @@ system.
 
 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 org
+  (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)
+#+end_src
+
+We will use the =org-plus-contrib= package to get the whole deal:
+
+#+begin_src emacs-lisp
+(straight-use-package 'org-plus-contrib)
+#+end_src
+
+And here's where my actual Org configurations begin:
+
+#+begin_src emacs-lisp
+(use-feature org
   :defer 2
   :config
   (setq org-src-tab-acts-natively t
@@ -768,7 +822,7 @@ In short, my favourite way of life.
   '(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
@@ -799,7 +853,7 @@ file.
   (defvar a/show-async-tangle-time nil
     "Show the time spent tangling the file.")
 
-  (defvar a/async-tangle-post-compile "make ti"
+  (defvar a/async-tangle-post-compile "make bi"
     "If non-nil, pass to `compile' after successful tangle.")
 
   (defvar a/async-tangle-byte-recompile nil
@@ -873,7 +927,7 @@ Not just how I do git, but /the/ way to do git.
 Recently opened files.
 
 #+begin_src emacs-lisp
-(use-package recentf
+(use-feature recentf
   :defer 0.5
   :config
   (add-to-list 'recentf-exclude "^/\\(?:ssh\\|su\\|sudo\\)?:")
@@ -905,7 +959,7 @@ There's no way I could top that, so I won't attempt to.
 
 #+begin_src emacs-lisp
 (use-package ivy
-  :defer 0.5
+  :defer 0.6
   :bind
   (:map ivy-minibuffer-map
    ([escape] . keyboard-escape-quit)
@@ -953,7 +1007,7 @@ There's no way I could top that, so I won't attempt to.
 *** eshell
 
 #+begin_src emacs-lisp
-(use-package eshell
+(use-feature eshell
   :defer 2
   :commands eshell
   :bind ("C-c a s e" . eshell)
@@ -990,7 +1044,7 @@ There's no way I could top that, so I won't attempt to.
 *** Ibuffer
 
 #+begin_src emacs-lisp
-(use-package ibuffer
+(use-feature ibuffer
   :bind
   (("C-x C-b" . ibuffer-other-window)
    :map ibuffer-mode-map
@@ -1060,7 +1114,7 @@ There's no way I could top that, so I won't attempt to.
 *** Outline
 
 #+begin_src emacs-lisp
-(use-package outline
+(use-feature outline
   :hook (prog-mode . outline-minor-mode)
   :bind
   (:map
@@ -1081,10 +1135,10 @@ There's no way I could top that, so I won't attempt to.
 *** Dired
 
 #+begin_src emacs-lisp
-(use-package ls-lisp
+(use-feature ls-lisp
   :custom (ls-lisp-dirs-first t))
 
-(use-package dired
+(use-feature dired
   :config
   (setq dired-listing-switches "-alh"
         ls-lisp-use-insert-directory-program nil)
@@ -1126,7 +1180,7 @@ There's no way I could top that, so I won't attempt to.
 *** Help
 
 #+begin_src emacs-lisp
-(use-package help
+(use-feature help
   :config
   (temp-buffer-resize-mode)
   (setq help-window-select t))
@@ -1135,7 +1189,7 @@ There's no way I could top that, so I won't attempt to.
 *** Tramp
 
 #+begin_src emacs-lisp
-(use-package tramp
+(use-feature tramp
   :config
   (add-to-list 'tramp-default-proxies-alist '(nil "\\`root\\'" "/ssh:%h:"))
   (add-to-list 'tramp-default-proxies-alist '("localhost" nil nil))
@@ -1172,7 +1226,7 @@ Highlight uncommitted changes in the left fringe.
 Display Lisp objects at point in the echo area.
 
 #+begin_src emacs-lisp
-(use-package eldoc
+(use-feature eldoc
   :when (version< "25" emacs-version)
   :config (global-eldoc-mode))
 #+end_src
@@ -1182,15 +1236,14 @@ Display Lisp objects at point in the echo area.
 Highlight matching parens.
 
 #+begin_src emacs-lisp
-(use-package paren
-  :demand
+(use-feature paren
   :config (show-paren-mode))
 #+end_src
 
 ** simple (for column numbers)
 
 #+begin_src emacs-lisp
-(use-package simple
+(use-feature simple
   :config (column-number-mode))
 #+end_src
 
@@ -1199,7 +1252,7 @@ Highlight matching parens.
 Save minibuffer history.
 
 #+begin_src emacs-lisp
-(use-package savehist
+(use-feature savehist
   :config (savehist-mode))
 #+end_src
 
@@ -1208,7 +1261,7 @@ Save minibuffer history.
 Automatically save place in each file.
 
 #+begin_src emacs-lisp
-(use-package saveplace
+(use-feature saveplace
   :when (version< "25" emacs-version)
   :config (save-place-mode))
 #+end_src
@@ -1216,7 +1269,7 @@ Automatically save place in each file.
 ** =prog-mode=
 
 #+begin_src emacs-lisp
-(use-package prog-mode
+(use-feature prog-mode
   :config (global-prettify-symbols-mode)
   (defun indicate-buffer-boundaries-left ()
     (setq indicate-buffer-boundaries 'left))
@@ -1226,7 +1279,7 @@ Automatically save place in each file.
 ** =text-mode=
 
 #+begin_src emacs-lisp
-(use-package text-mode
+(use-feature text-mode
   :hook ((text-mode . indicate-buffer-boundaries-left)
          (text-mode . abbrev-mode)))
 #+end_src
@@ -1302,7 +1355,7 @@ Automatically save place in each file.
 ** Lisp
 
 #+begin_src emacs-lisp
-(use-package lisp-mode
+(use-feature lisp-mode
   :config
   (add-hook 'emacs-lisp-mode-hook 'outline-minor-mode)
   (add-hook 'emacs-lisp-mode-hook 'reveal-mode)
@@ -1315,6 +1368,7 @@ Automatically save place in each file.
 
 #+begin_src emacs-lisp
 (use-package alloy-mode
+  :straight (:host github :repo "dwwmmn/alloy-mode")
   :config (setq alloy-basic-offset 2))
 #+end_src
 
@@ -1322,7 +1376,7 @@ Automatically save place in each file.
 
 #+begin_src emacs-lisp
 (use-package proof-site  ; Proof General
-  :load-path "lib/proof-site/generic/")
+  :straight proof-general)
 #+end_src
 
 ** [[https://leanprover.github.io][Lean]] (with [[https://github.com/leanprover/lean-mode][lean-mode]])
@@ -1660,7 +1714,7 @@ treemacs
 #+begin_src emacs-lisp
 (use-package geiser)
 
-(use-package geiser-guile
+(use-feature geiser-guile
   :config
   (setq geiser-guile-load-path "~/src/git/guix"))
 #+end_src
@@ -1668,8 +1722,7 @@ treemacs
 ** guix
 
 #+begin_src emacs-lisp
-(use-package guix
-  :load-path "lib/guix/elisp")
+(use-package guix)
 #+end_src
 
 * Emacs enhancements
@@ -1680,7 +1733,7 @@ treemacs
 ** man
 
 #+begin_src emacs-lisp
-(use-package man
+(use-feature man
   :config (setq Man-width 80))
 #+end_src
 
@@ -1709,7 +1762,9 @@ Emacs package that displays available keybindings in popup
     ;; prefixes for my personal bindings
     "C-c a"   "applications"
     "C-c a s" "shells"
-    "C-c b"   "borg"
+    "C-c P"   "package-management"
+    "C-c P e" "package-management/epkg"
+    "C-c P s" "package-management/straight.el"
     "C-c c"   "compile-and-comments"
     "C-c e"   "eval"
     "C-c f"   "files"
@@ -1751,6 +1806,7 @@ Emacs package that displays available keybindings in popup
 
 #+begin_src emacs-lisp
 (use-package smart-mode-line
+  :commands (sml/apply-theme)
   :demand
   :config
   (sml/setup))
@@ -1797,7 +1853,7 @@ Emacs package that displays available keybindings in popup
 ** [[https://github.com/bbatsov/crux][crux]]
 
 #+begin_src emacs-lisp
-(use-package crux
+(use-package crux                       ; results in Waiting for git... [2 times]
   :defer 1
   :bind (("C-c b k" . crux-kill-other-buffers)
          ("C-c d"   . crux-duplicate-current-line-or-region)
@@ -1863,7 +1919,6 @@ Make =*scratch*= and =*Messages*= unkillable.
   :config
   (unkillable-scratch 1)
   :custom
-  (unkillable-scratch-behavior 'do-nothing)
   (unkillable-buffers '("^\\*scratch\\*$" "^\\*Messages\\*$")))
 #+end_src
 
@@ -2054,7 +2109,7 @@ Also see [[https://www.emacswiki.org/emacs/rebox2][rebox2]].
  mail-user-agent   'gnus-user-agent
  read-mail-command 'gnus)
 
-(use-package gnus
+(use-feature gnus
   :bind (("s-m"   . gnus)
          ("s-M"   . gnus-unplugged))
   :init
@@ -2087,7 +2142,7 @@ Also see [[https://www.emacswiki.org/emacs/rebox2][rebox2]].
    gnus-interactive-exit nil
    gnus-gcc-mark-as-read t))
 
-(use-package gnus-art
+(use-feature gnus-art
   :config
   (setq
    gnus-visible-headers
@@ -2116,7 +2171,7 @@ Also see [[https://www.emacswiki.org/emacs/rebox2][rebox2]].
    ("R"   . gnus-article-wide-reply-with-original)
    ("M-L" . org-store-link)))
 
-(use-package gnus-sum
+(use-feature gnus-sum
   :bind (:map gnus-summary-mode-map
               :prefix-map a/gnus-summary-prefix-map
               :prefix "v"
@@ -2131,7 +2186,7 @@ Also see [[https://www.emacswiki.org/emacs/rebox2][rebox2]].
    ("M-L" . org-store-link))
   :hook (gnus-summary-mode . a/no-mouse-autoselect-window))
 
-(use-package gnus-msg
+(use-feature gnus-msg
   :config
   (setq gnus-posting-styles
         '((".*"
@@ -2148,19 +2203,19 @@ Also see [[https://www.emacswiki.org/emacs/rebox2][rebox2]].
            (address "abandali@uwaterloo.ca")
            (gcc "\"nnimap+uwaterloo:Sent Items\"")))))
 
-(use-package gnus-topic
+(use-feature gnus-topic
   :hook (gnus-group-mode . gnus-topic-mode))
 
-(use-package gnus-agent
+(use-feature gnus-agent
   :config
   (setq gnus-agent-synchronize-flags 'ask)
   :hook (gnus-group-mode . gnus-agent-mode))
 
-(use-package gnus-group
+(use-feature gnus-group
   :config
   (setq gnus-permanently-visible-groups "\\((INBOX\\|gnu$\\)"))
 
-(use-package mm-decode
+(use-feature mm-decode
   :config
   (setq mm-discouraged-alternatives '("text/html" "text/richtext")))
 #+end_src
@@ -2168,7 +2223,7 @@ Also see [[https://www.emacswiki.org/emacs/rebox2][rebox2]].
 ** sendmail
 
 #+begin_src emacs-lisp
-(use-package sendmail
+(use-feature sendmail
   :config
   (setq sendmail-program "/usr/bin/msmtp"
         ;; message-sendmail-extra-arguments '("-v" "-d")
@@ -2179,7 +2234,7 @@ Also see [[https://www.emacswiki.org/emacs/rebox2][rebox2]].
 ** message
 
 #+begin_src emacs-lisp
-(use-package message
+(use-feature message
   :config
   (defconst a/message-cite-style-format "On %Y-%m-%d %l:%M %p, %N wrote:")
   (defconst message-cite-style-bandali
@@ -2224,7 +2279,7 @@ Also see [[https://www.emacswiki.org/emacs/rebox2][rebox2]].
 Convenient footnotes in =message-mode=.
 
 #+begin_src emacs-lisp
-(use-package footnote
+(use-feature footnote
   :after message
   :bind
   (:map message-mode-map
@@ -2247,6 +2302,7 @@ Convenient footnotes in =message-mode=.
 
 #+begin_src emacs-lisp
 (use-package ebdb
+  :straight (:host github :repo "girzel/ebdb")
   :defer 2
   :after gnus
   :bind (:map gnus-group-mode-map ("e" . ebdb))
@@ -2255,7 +2311,7 @@ Convenient footnotes in =message-mode=.
   (with-eval-after-load 'swiper
     (add-to-list 'swiper-font-lock-exclude 'ebdb-mode t)))
 
-(use-package ebdb-com
+(use-feature ebdb-com
   :after ebdb)
 
 ;; (use-package ebdb-complete
@@ -2268,9 +2324,10 @@ Convenient footnotes in =message-mode=.
   :config
   (defun company-ebdb--post-complete (_) nil))
 
-(use-package ebdb-gnus
+(use-feature ebdb-gnus
   :defer 3
   :after ebdb
+  :demand
   :custom
   (ebdb-gnus-window-configuration
    '(article
@@ -2280,9 +2337,10 @@ Convenient footnotes in =message-mode=.
                            (article 1.0)
                            (ebdb-gnus 0.3))))))
 
-(use-package ebdb-mua
+(use-feature ebdb-mua
   :defer 3
   :after ebdb
+  :demand
   ;; :custom (ebdb-mua-pop-up nil)
   )
 
@@ -2332,8 +2390,8 @@ Convenient footnotes in =message-mode=.
 (use-package ox-hugo
   :after ox)
 
-(use-package ox-hugo-auto-export
-  :load-path "lib/ox-hugo")
+(use-feature ox-hugo-auto-export
+  :after ox-hugo)
 #+end_src
 
 * Post initialization
diff --git a/lib/alert b/lib/alert
deleted file mode 160000 (submodule)
index 9f329be..0000000
--- a/lib/alert
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 9f329be87820474925f29b52a1131084c8ea95b9
diff --git a/lib/all-the-icons b/lib/all-the-icons
deleted file mode 160000 (submodule)
index 52d1f2d..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 52d1f2d36468146c93aaf11399f581401a233306
diff --git a/lib/alloy-mode b/lib/alloy-mode
deleted file mode 160000 (submodule)
index 0d05bdd..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 0d05bdd10c77ec04c3d61eccf67e68c08284951f
diff --git a/lib/async b/lib/async
deleted file mode 160000 (submodule)
index 81dc034..0000000
--- a/lib/async
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 81dc034572e963550c5403a2b3c28047e46b4029
diff --git a/lib/auto-compile b/lib/auto-compile
deleted file mode 160000 (submodule)
index 6ce4255..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 6ce4255ab9a0b010ef8414c5bd9a6d6d9eea012f
diff --git a/lib/boogie-friends b/lib/boogie-friends
deleted file mode 160000 (submodule)
index ff99037..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit ff9903783013f3598b6f44c99d47b25c5cdbed00
diff --git a/lib/borg b/lib/borg
deleted file mode 160000 (submodule)
index 99d1667..0000000
--- a/lib/borg
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 99d166796f181741ebd79542b96824b096bcb36c
diff --git a/lib/boxquote b/lib/boxquote
deleted file mode 160000 (submodule)
index 7e47e0e..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 7e47e0e2853bc1215739b2e28f260e9eed93b2c5
diff --git a/lib/bui b/lib/bui
deleted file mode 160000 (submodule)
index 508577a..0000000
--- a/lib/bui
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 508577a7225b3d07eaefa9444064410af2518675
diff --git a/lib/closql b/lib/closql
deleted file mode 160000 (submodule)
index 012b94f..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 012b94f8695e194455111fd54eff0b94dd0dd0db
diff --git a/lib/company b/lib/company
deleted file mode 160000 (submodule)
index b696b39..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit b696b3943d2a55aed937cb0ba971d6e29b2e3a8b
diff --git a/lib/company-ebdb b/lib/company-ebdb
deleted file mode 160000 (submodule)
index 3b463fe..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 3b463fe1236ac6445657f3a1df20357a7a2fa8f6
diff --git a/lib/crux b/lib/crux
deleted file mode 160000 (submodule)
index 308f17d..0000000
--- a/lib/crux
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 308f17d914e2cd79cbc809de66d02b03ceb82859
diff --git a/lib/dante b/lib/dante
deleted file mode 160000 (submodule)
index 8d5e00d..0000000
--- a/lib/dante
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 8d5e00d268aa37d91baaa675cead953e58f19c6d
diff --git a/lib/dash b/lib/dash
deleted file mode 160000 (submodule)
index 6514359..0000000
--- a/lib/dash
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 6514359b8606a6a9a94068ccd601fcd6379d6584
diff --git a/lib/diff-hl b/lib/diff-hl
deleted file mode 160000 (submodule)
index 2cddce4..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 2cddce48d472111f178da84d44656f92012aa64b
diff --git a/lib/doom-themes b/lib/doom-themes
deleted file mode 160000 (submodule)
index 2f4a0cd..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 2f4a0cdf287a086d45a1d9e8536ace6a2e152318
diff --git a/lib/ebdb b/lib/ebdb
deleted file mode 160000 (submodule)
index 980927f..0000000
--- a/lib/ebdb
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 980927ff3dfdb238e7b168f0088353fec29db86e
diff --git a/lib/ebdb-gnorb b/lib/ebdb-gnorb
deleted file mode 160000 (submodule)
index 461a6b3..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 461a6b35dc9322d1ec59547ad845d26a6c65a698
diff --git a/lib/edit-indirect b/lib/edit-indirect
deleted file mode 160000 (submodule)
index de645d8..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit de645d8144e8a08f039a9c88185121ec81d957ef
diff --git a/lib/eldoc-eval b/lib/eldoc-eval
deleted file mode 160000 (submodule)
index f59a1ae..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit f59a1ae7ecfa97ef659c7adb93e0673419acc485
diff --git a/lib/elisp-refs b/lib/elisp-refs
deleted file mode 160000 (submodule)
index a8900da..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit a8900dab9f8e2925ce5dea0f97bdac4ce47714d9
diff --git a/lib/emacsql b/lib/emacsql
deleted file mode 160000 (submodule)
index f8c3d9f..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit f8c3d9fce28ab7d5b0c9fcf2c1236151ca7add24
diff --git a/lib/emmet-mode b/lib/emmet-mode
deleted file mode 160000 (submodule)
index 1acb821..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 1acb821e0142136344ccf40c1e5fb664d7db2e70
diff --git a/lib/epkg b/lib/epkg
deleted file mode 160000 (submodule)
index c42bc98..0000000
--- a/lib/epkg
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit c42bc98a711ffa8d2a7b9096b563ac0edb0b9bf3
diff --git a/lib/epl b/lib/epl
deleted file mode 160000 (submodule)
index 78ab7a8..0000000
--- a/lib/epl
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 78ab7a85c08222cd15582a298a364774e3282ce6
diff --git a/lib/eshell-up b/lib/eshell-up
deleted file mode 160000 (submodule)
index 9c100ba..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 9c100bae5c3020e8d9307e4332d3b64e7dc28519
diff --git a/lib/exec-path-from-shell b/lib/exec-path-from-shell
deleted file mode 160000 (submodule)
index 9bc0f4a..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 9bc0f4a762f16d488376fb52409c58239a86d75d
diff --git a/lib/expand-region b/lib/expand-region
deleted file mode 160000 (submodule)
index ed32924..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit ed3292473035dc8f3d2f321e82974ef87327808f
diff --git a/lib/f b/lib/f
deleted file mode 160000 (submodule)
index de6d4d4..0000000
--- a/lib/f
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit de6d4d40ddc844eee643e92d47b9d6a63fbebb48
diff --git a/lib/flycheck b/lib/flycheck
deleted file mode 160000 (submodule)
index baf96df..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit baf96df4d1c3e61bf62f15fbea05a880d1e49e45
diff --git a/lib/flycheck-haskell b/lib/flycheck-haskell
deleted file mode 160000 (submodule)
index 32ddff8..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 32ddff87165a7d3a35e7318bee997b5b4bd41278
diff --git a/lib/geiser b/lib/geiser
deleted file mode 160000 (submodule)
index a6a2f2c..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit a6a2f2c2194cdef97d67945aa1e7df81763ec34e
diff --git a/lib/ghub b/lib/ghub
deleted file mode 160000 (submodule)
index db15d00..0000000
--- a/lib/ghub
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit db15d00d01b8bd9187079a0b538d878d241743a8
diff --git a/lib/git-modes b/lib/git-modes
deleted file mode 160000 (submodule)
index 5546831..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 55468314a5f6b77d2c96be62c7005ac94545e217
diff --git a/lib/gnorb b/lib/gnorb
deleted file mode 160000 (submodule)
index 17fd6e9..0000000
--- a/lib/gnorb
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 17fd6e9ca6f116e2d0d70ab1e9d7132b3a8bfd47
diff --git a/lib/graphql b/lib/graphql
deleted file mode 160000 (submodule)
index e2b3096..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit e2b309689f4faf9225f290080f836e988c5a576d
diff --git a/lib/guix b/lib/guix
deleted file mode 160000 (submodule)
index 495baed..0000000
--- a/lib/guix
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 495baedc983070f0158442173bdef0a35c2a1e9d
diff --git a/lib/haskell-mode b/lib/haskell-mode
deleted file mode 160000 (submodule)
index 4aa8875..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 4aa88752ab23bca3ded36a9c9fd9c34cffbb129b
diff --git a/lib/helm b/lib/helm
deleted file mode 160000 (submodule)
index 8433e87..0000000
--- a/lib/helm
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 8433e877e31537d65e017219c1fe226abd78ae57
diff --git a/lib/helpful b/lib/helpful
deleted file mode 160000 (submodule)
index 039345e..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 039345ef60b4722d050c94ab1978540137df35f9
diff --git a/lib/hl-todo b/lib/hl-todo
deleted file mode 160000 (submodule)
index 24b9925..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 24b9925b1b2c7ad6bf7b66800395f74abf035c5f
diff --git a/lib/hlint-refactor b/lib/hlint-refactor
deleted file mode 160000 (submodule)
index 92c69aa..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 92c69aa01c65968e86c15db087bb1ea785e4736c
diff --git a/lib/ht b/lib/ht
deleted file mode 160000 (submodule)
index 8ec3eb9..0000000
--- a/lib/ht
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 8ec3eb96ee63430fb24257e4aa8169b50cb7be12
diff --git a/lib/hydra b/lib/hydra
deleted file mode 160000 (submodule)
index 67098cc..0000000
--- a/lib/hydra
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 67098cc9149854a95b589c3763843eabc82c9b2d
diff --git a/lib/ivy b/lib/ivy
deleted file mode 160000 (submodule)
index 201c5d7..0000000
--- a/lib/ivy
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 201c5d78c4985fb803eb681cca0ccc5a4f90b717
diff --git a/lib/lcr b/lib/lcr
deleted file mode 160000 (submodule)
index c14f406..0000000
--- a/lib/lcr
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit c14f40692292d59156c7632dbdd2867c086aa75f
diff --git a/lib/lean-mode b/lib/lean-mode
deleted file mode 160000 (submodule)
index 9d6b847..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 9d6b8471e2044310b4cd7cd3213b1fc8f78ec499
diff --git a/lib/loop b/lib/loop
deleted file mode 160000 (submodule)
index e22807f..0000000
--- a/lib/loop
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit e22807f83a0890dc8a904c51ee0742c34efccc6c
diff --git a/lib/magit b/lib/magit
deleted file mode 160000 (submodule)
index d866fb3..0000000
--- a/lib/magit
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit d866fb3624bdeb87f0c56e359239e4474362d0af
diff --git a/lib/magit-popup b/lib/magit-popup
deleted file mode 160000 (submodule)
index 8eaa0be..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 8eaa0becc2370484a432a8a19f40ce5e8d0f1642
diff --git a/lib/markdown-mode b/lib/markdown-mode
deleted file mode 160000 (submodule)
index 906e97d..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 906e97d6e211129d4b7674a5efc416849bc7e43e
diff --git a/lib/memoize b/lib/memoize
deleted file mode 160000 (submodule)
index 9a56126..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 9a561268ffb550b257a08710489a95cd087998b6
diff --git a/lib/multi-term b/lib/multi-term
deleted file mode 160000 (submodule)
index f954e4e..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit f954e4e18b0a035151d34852387e724d87a3316f
diff --git a/lib/multiple-cursors b/lib/multiple-cursors
deleted file mode 160000 (submodule)
index 6a7c3c0..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 6a7c3c0853e3fe9e4b8e5985dbed8fd4075f33ff
diff --git a/lib/mwim b/lib/mwim
deleted file mode 160000 (submodule)
index b4f3edb..0000000
--- a/lib/mwim
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit b4f3edb4c0fb8f8b71cecbf8095c2c25a8ffbf85
diff --git a/lib/no-littering b/lib/no-littering
deleted file mode 160000 (submodule)
index 4e7ecf0..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 4e7ecf017140bc522629cd2c977160f7cc2b8020
diff --git a/lib/org b/lib/org
deleted file mode 160000 (submodule)
index 495c7c6..0000000
--- a/lib/org
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 495c7c6a5774a4d3035c582a3b4c95eb04e83dd5
diff --git a/lib/orgalist b/lib/orgalist
deleted file mode 160000 (submodule)
index d120090..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit d120090588d9b258629a95d226bb9f8bf4e2afca
diff --git a/lib/other-frame-window b/lib/other-frame-window
deleted file mode 160000 (submodule)
index 7477b00..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 7477b00664bff9b0b9edfe7ecbef379a7543ba77
diff --git a/lib/ox-hugo b/lib/ox-hugo
deleted file mode 160000 (submodule)
index 00186ff..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 00186ff8d7ae13fab6707b0e2e7665e055db558f
diff --git a/lib/packed b/lib/packed
deleted file mode 160000 (submodule)
index c41c3df..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit c41c3dfda86ae33832ffc146923e2a4675cbacfa
diff --git a/lib/page-break-lines b/lib/page-break-lines
deleted file mode 160000 (submodule)
index 87e801e..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 87e801efb816b24e83ebf84c052001e178e180bc
diff --git a/lib/pkg-info b/lib/pkg-info
deleted file mode 160000 (submodule)
index 76ba741..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 76ba7415480687d05a4353b27fea2ae02b8d9d61
diff --git a/lib/popup b/lib/popup
deleted file mode 160000 (submodule)
index 80829dd..0000000
--- a/lib/popup
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 80829dd46381754639fb764da11c67235fe63282
diff --git a/lib/projectile b/lib/projectile
deleted file mode 160000 (submodule)
index d625ecb..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit d625ecb09e3a9fb319740686402197bdf6fc109b
diff --git a/lib/proof-site b/lib/proof-site
deleted file mode 160000 (submodule)
index 7389d43..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 7389d43893569ff0e1eff892254901876fc8225e
diff --git a/lib/rich-minority b/lib/rich-minority
deleted file mode 160000 (submodule)
index a50d9b2..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit a50d9b2fd059f6a0e5b22063a5375851a087f61a
diff --git a/lib/s b/lib/s
deleted file mode 160000 (submodule)
index 03410e6..0000000
--- a/lib/s
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 03410e6a7a2b11e47e1fea3b7d9899c7df26435e
diff --git a/lib/shrink-path b/lib/shrink-path
deleted file mode 160000 (submodule)
index 9d06c45..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 9d06c453d1537df46a4b703a29213cc7f7857aa0
diff --git a/lib/shut-up b/lib/shut-up
deleted file mode 160000 (submodule)
index 081d6b0..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 081d6b01e3ba0e60326558e545c4019219e046ce
diff --git a/lib/smart-mode-line b/lib/smart-mode-line
deleted file mode 160000 (submodule)
index b79f4fa..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit b79f4fa5f2380b0d726a895dd7199e5483004490
diff --git a/lib/smex b/lib/smex
deleted file mode 160000 (submodule)
index 55aaebe..0000000
--- a/lib/smex
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 55aaebe3d793c2c990b39a302eb26c184281c42c
diff --git a/lib/treepy b/lib/treepy
deleted file mode 160000 (submodule)
index b40e6b0..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit b40e6b09eb9be45da67b8c9e4990a5a0d7a2a09d
diff --git a/lib/typo b/lib/typo
deleted file mode 160000 (submodule)
index 9dad93b..0000000
--- a/lib/typo
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 9dad93b6f367f02f52c8d9bf15d446d922cec294
diff --git a/lib/unkillable-scratch b/lib/unkillable-scratch
deleted file mode 160000 (submodule)
index d805ee0..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit d805ee0570c218559cd972788c2d7f77704282b9
diff --git a/lib/use-package b/lib/use-package
deleted file mode 160000 (submodule)
index 39a8b88..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 39a8b8812c2c9f6f0b299e6a04e504ef393694ce
diff --git a/lib/web-mode b/lib/web-mode
deleted file mode 160000 (submodule)
index 5da977b..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 5da977bec7714c09d41b556e2d651ccb269a14a2
diff --git a/lib/which-key b/lib/which-key
deleted file mode 160000 (submodule)
index 43e3e3d..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 43e3e3d7641a8e1c298b37e6a277612bf0898708
diff --git a/lib/winum b/lib/winum
deleted file mode 160000 (submodule)
index efcb14f..0000000
--- a/lib/winum
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit efcb14fd306afbc738666e6b2e5a8a1bb5904392
diff --git a/lib/with-editor b/lib/with-editor
deleted file mode 160000 (submodule)
index 9dd9f17..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 9dd9f176d96abc60365369de6d08c26c414ef1f3
diff --git a/lib/yaml-mode b/lib/yaml-mode
deleted file mode 160000 (submodule)
index 40067a1..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 40067a10ac1360f0b9533f0bbbb2eea128e2574d
diff --git a/lib/yasnippet b/lib/yasnippet
deleted file mode 160000 (submodule)
index 1d96da2..0000000
+++ /dev/null
@@ -1 +0,0 @@
-Subproject commit 1d96da2e08664c31ff7f6f7441da1f4fa5680b1f
diff --git a/straight/versions/default.el b/straight/versions/default.el
new file mode 100644 (file)
index 0000000..831254b
--- /dev/null
@@ -0,0 +1,76 @@
+(("PG" . "7389d43893569ff0e1eff892254901876fc8225e")
+ ("all-the-icons.el" . "52d1f2d36468146c93aaf11399f581401a233306")
+ ("alloy-mode" . "0d05bdd10c77ec04c3d61eccf67e68c08284951f")
+ ("auto-compile" . "6ce4255ab9a0b010ef8414c5bd9a6d6d9eea012f")
+ ("boxquote.el" . "7e47e0e2853bc1215739b2e28f260e9eed93b2c5")
+ ("bui.el" . "508577a7225b3d07eaefa9444064410af2518675")
+ ("cl-lib" . "deb92588d9d83d46c4698936ea31c5f58d244f04")
+ ("closql" . "012b94f8695e194455111fd54eff0b94dd0dd0db")
+ ("company-ebdb" . "3b463fe1236ac6445657f3a1df20357a7a2fa8f6")
+ ("company-mode" . "b696b3943d2a55aed937cb0ba971d6e29b2e3a8b")
+ ("crux" . "308f17d914e2cd79cbc809de66d02b03ceb82859")
+ ("dante" . "8d5e00d268aa37d91baaa675cead953e58f19c6d")
+ ("dash.el" . "6514359b8606a6a9a94068ccd601fcd6379d6584")
+ ("diff-hl" . "2cddce48d472111f178da84d44656f92012aa64b")
+ ("ebdb" . "980927ff3dfdb238e7b168f0088353fec29db86e")
+ ("edit-indirect" . "de645d8144e8a08f039a9c88185121ec81d957ef")
+ ("elisp-refs" . "a8900dab9f8e2925ce5dea0f97bdac4ce47714d9")
+ ("emacs-async" . "81dc034572e963550c5403a2b3c28047e46b4029")
+ ("emacs-doom-themes" . "2f4a0cdf287a086d45a1d9e8536ace6a2e152318")
+ ("emacs-memoize" . "9a561268ffb550b257a08710489a95cd087998b6")
+ ("emacs-which-key" . "43e3e3d7641a8e1c298b37e6a277612bf0898708")
+ ("emacsql" . "f8c3d9fce28ab7d5b0c9fcf2c1236151ca7add24")
+ ("emmet-mode" . "1acb821e0142136344ccf40c1e5fb664d7db2e70")
+ ("epkg" . "c42bc98a711ffa8d2a7b9096b563ac0edb0b9bf3")
+ ("epkgs" . "3e2b3cbada81bdb5e9b3f4bf185c7258f656b021")
+ ("epl" . "78ab7a85c08222cd15582a298a364774e3282ce6")
+ ("eshell-up" . "9c100bae5c3020e8d9307e4332d3b64e7dc28519")
+ ("exec-path-from-shell" . "9bc0f4a762f16d488376fb52409c58239a86d75d")
+ ("expand-region.el" . "ed3292473035dc8f3d2f321e82974ef87327808f")
+ ("f.el" . "de6d4d40ddc844eee643e92d47b9d6a63fbebb48")
+ ("flycheck" . "baf96df4d1c3e61bf62f15fbea05a880d1e49e45")
+ ("flycheck-haskell" . "32ddff87165a7d3a35e7318bee997b5b4bd41278")
+ ("geiser" . "a6a2f2c2194cdef97d67945aa1e7df81763ec34e")
+ ("ghub" . "db15d00d01b8bd9187079a0b538d878d241743a8")
+ ("git.el" . "a3396a7027a7d986598c6a2d6d5599bac918f3da")
+ ("gnu-elpa-mirror" . "db6dd0677f0adac536ec6c575865770aa902c0a1")
+ ("graphql.el" . "e2b309689f4faf9225f290080f836e988c5a576d")
+ ("guix.el" . "495baedc983070f0158442173bdef0a35c2a1e9d")
+ ("haskell-mode" . "4aa88752ab23bca3ded36a9c9fd9c34cffbb129b")
+ ("helpful" . "039345ef60b4722d050c94ab1978540137df35f9")
+ ("hl-todo" . "24b9925b1b2c7ad6bf7b66800395f74abf035c5f")
+ ("hlint-refactor-mode" . "92c69aa01c65968e86c15db087bb1ea785e4736c")
+ ("lcr" . "c14f40692292d59156c7632dbdd2867c086aa75f")
+ ("lean-mode" . "9d6b8471e2044310b4cd7cd3213b1fc8f78ec499")
+ ("let-alist" . "4a7693b678c59a148660c736cc0bb26a5032ee9a")
+ ("loop.el" . "e22807f83a0890dc8a904c51ee0742c34efccc6c")
+ ("magit" . "50b5aad124a07614b5e3819c9f81915a454e08fc")
+ ("magit-popup" . "8eaa0becc2370484a432a8a19f40ce5e8d0f1642")
+ ("melpa" . "5487adde3bbb1bfd875c51932c63ceef541d6b6f")
+ ("multi-term" . "f954e4e18b0a035151d34852387e724d87a3316f")
+ ("multiple-cursors.el" . "6a7c3c0853e3fe9e4b8e5985dbed8fd4075f33ff")
+ ("mwim.el" . "b4f3edb4c0fb8f8b71cecbf8095c2c25a8ffbf85")
+ ("no-littering" . "4e7ecf017140bc522629cd2c977160f7cc2b8020")
+ ("org" . "5dc18f0c43e16343f3be26aec71f8eeed99969b8")
+ ("orgalist" . "f70a65da3a9bf3d0c1a9c769b77821d2a79c42cb")
+ ("ox-hugo" . "00186ff8d7ae13fab6707b0e2e7665e055db558f")
+ ("packed" . "c41c3dfda86ae33832ffc146923e2a4675cbacfa")
+ ("page-break-lines" . "87e801efb816b24e83ebf84c052001e178e180bc")
+ ("pkg-info.el" . "76ba7415480687d05a4353b27fea2ae02b8d9d61")
+ ("projectile" . "d625ecb09e3a9fb319740686402197bdf6fc109b")
+ ("rich-minority" . "a50d9b2fd059f6a0e5b22063a5375851a087f61a")
+ ("s.el" . "03410e6a7a2b11e47e1fea3b7d9899c7df26435e")
+ ("seq" . "095fb15a3baa082079799dd36b6caccdb062cb90")
+ ("shrink-path.el" . "9d06c453d1537df46a4b703a29213cc7f7857aa0")
+ ("shut-up" . "081d6b01e3ba0e60326558e545c4019219e046ce")
+ ("smart-mode-line" . "b79f4fa5f2380b0d726a895dd7199e5483004490")
+ ("smex" . "55aaebe3d793c2c990b39a302eb26c184281c42c")
+ ("straight.el" . "13d019dfc72e69cce58b510766e197b044ea823b")
+ ("swiper" . "201c5d78c4985fb803eb681cca0ccc5a4f90b717")
+ ("treepy.el" . "b40e6b09eb9be45da67b8c9e4990a5a0d7a2a09d")
+ ("typoel" . "9dad93b6f367f02f52c8d9bf15d446d922cec294")
+ ("unkillable-scratch" . "d805ee0570c218559cd972788c2d7f77704282b9")
+ ("use-package" . "39a8b8812c2c9f6f0b299e6a04e504ef393694ce")
+ ("web-mode" . "5da977bec7714c09d41b556e2d651ccb269a14a2")
+ ("with-editor" . "9dd9f176d96abc60365369de6d08c26c414ef1f3"))
+:saturn