Every Nixy solution I could find or conceive had too many points spread across these various facets: - Flimsy (emacsWithPackagesFromUsePackage) - Inelegant (builtins.exec, manual listings) - Inflexible (emacsWithPackagesFromUsePackage) - Otherwise unergonomic (everything }:D) Straight.el is sufficiently declarative, flexible, and Nix-friendly without blindly bowing down to the imperialist NixOS user. Now, Convenience and ergonomics shan't be forsaken for the dogma that is total Nixation.
33 lines
949 B
EmacsLisp
33 lines
949 B
EmacsLisp
;; -*- lexical-binding: t; -*-
|
|
|
|
(defvar bootstrap-version)
|
|
|
|
(setq straight-base-dir
|
|
(or (getenv "EMACS_STRAIGHT_BASE_DIR")
|
|
(error "Cannot initialise straight: $EMACS_STRAIGHT_BASE_DIR is undefined!")))
|
|
|
|
(let ((bootstrap-file
|
|
(file-name-concat straight-base-dir
|
|
"repos/straight.el/bootstrap.el"))
|
|
(bootstrap-version 7))
|
|
(unless (file-exists-p bootstrap-file)
|
|
(let* ((url "https://raw.githubusercontent.com/radian-software/straight.el/develop/install.el")
|
|
(url-buffer (url-retrieve-synchronously
|
|
url 'silent 'inhibit-cookies)))
|
|
(with-current-buffer url-buffer
|
|
(goto-char (point-max))
|
|
(eval-print-last-sexp))))
|
|
(load bootstrap-file nil 'nomessage))
|
|
|
|
(setq straight-use-package-by-default t)
|
|
|
|
(use-package evil
|
|
:init
|
|
(setq evil-want-minibuffer t)
|
|
:config
|
|
(evil-mode 1))
|
|
|
|
(use-package which-key
|
|
:config
|
|
(which-key-mode 1))
|