From: Amin Bandali Date: Mon, 24 Dec 2018 17:50:44 +0000 (-0500) Subject: [emacs][wip] begin migration to straight.el X-Git-Url: https://git.shemshak.org/gitweb.cgi/~bandali/configs/commitdiff_plain/126528935bb71449df251970fe367849a62beb92 [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 --- 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