summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAmin Bandali <bandali@gnu.org>2018-12-24 12:50:44 -0500
committerAmin Bandali <bandali@gnu.org>2018-12-24 12:50:44 -0500
commit126528935bb71449df251970fe367849a62beb92 (patch)
treeacf5c5ed178f11d7b8422dc7617ee4cae615b17e
parente272b420207e46ba68908e0002c89436f6ff1399 (diff)
downloadconfigs-126528935bb71449df251970fe367849a62beb92.tar.gz
configs-126528935bb71449df251970fe367849a62beb92.tar.xz
configs-126528935bb71449df251970fe367849a62beb92.zip
[emacs][wip] begin migration to straight.el
comment out just about all packages; will add them back gradually to make sure everything works as expected
-rw-r--r--.gitignore3
-rw-r--r--init.org103
-rw-r--r--straight/versions/default.el24
3 files changed, 110 insertions, 20 deletions
diff --git a/.gitignore b/.gitignore
index c5f850f..0a959bc 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,6 +3,9 @@
/early-init.el
/init.el
+/straight/*
+!/straight/versions
+
/var/*
/var/eshell/history
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:
diff --git a/straight/versions/default.el b/straight/versions/default.el
new file mode 100644
index 0000000..2df0a79
--- /dev/null
+++ b/straight/versions/default.el
@@ -0,0 +1,24 @@
+(("auto-compile" . "6ce4255ab9a0b010ef8414c5bd9a6d6d9eea012f")
+ ("cl-lib" . "deb92588d9d83d46c4698936ea31c5f58d244f04")
+ ("dash.el" . "6514359b8606a6a9a94068ccd601fcd6379d6584")
+ ("emacs-async" . "81dc034572e963550c5403a2b3c28047e46b4029")
+ ("epkgs" . "3e2b3cbada81bdb5e9b3f4bf185c7258f656b021")
+ ("exec-path-from-shell" . "9bc0f4a762f16d488376fb52409c58239a86d75d")
+ ("f.el" . "de6d4d40ddc844eee643e92d47b9d6a63fbebb48")
+ ("ghub" . "db15d00d01b8bd9187079a0b538d878d241743a8")
+ ("git.el" . "a3396a7027a7d986598c6a2d6d5599bac918f3da")
+ ("gnu-elpa-mirror" . "db6dd0677f0adac536ec6c575865770aa902c0a1")
+ ("graphql.el" . "e2b309689f4faf9225f290080f836e988c5a576d")
+ ("let-alist" . "4a7693b678c59a148660c736cc0bb26a5032ee9a")
+ ("magit" . "d866fb3624bdeb87f0c56e359239e4474362d0af")
+ ("magit-popup" . "8eaa0becc2370484a432a8a19f40ce5e8d0f1642")
+ ("melpa" . "5487adde3bbb1bfd875c51932c63ceef541d6b6f")
+ ("no-littering" . "4e7ecf017140bc522629cd2c977160f7cc2b8020")
+ ("org" . "495c7c6a5774a4d3035c582a3b4c95eb04e83dd5")
+ ("packed" . "c41c3dfda86ae33832ffc146923e2a4675cbacfa")
+ ("s.el" . "03410e6a7a2b11e47e1fea3b7d9899c7df26435e")
+ ("straight.el" . "13d019dfc72e69cce58b510766e197b044ea823b")
+ ("treepy.el" . "b40e6b09eb9be45da67b8c9e4990a5a0d7a2a09d")
+ ("use-package" . "39a8b8812c2c9f6f0b299e6a04e504ef393694ce")
+ ("with-editor" . "9dd9f176d96abc60365369de6d08c26c414ef1f3"))
+:saturn