diff options
-rw-r--r-- | shoshin-config.el | 6 | ||||
-rw-r--r-- | shoshin-config.org | 74 |
2 files changed, 64 insertions, 16 deletions
diff --git a/shoshin-config.el b/shoshin-config.el index 982f66f..803af5d 100644 --- a/shoshin-config.el +++ b/shoshin-config.el @@ -1,10 +1,8 @@ ;;; shoshimacs.el --- Beginner's Mind Config -*- lexical-binding:t -*- ;;; Package Management -(add-to-list 'load-path (expand-file-name "xah-fly-keys/" user-emacs-directory)) -(require 'xah-fly-keys) -(xah-fly-keys-set-layout "qwerty") -(xah-fly-keys t) +(when (string< "28.1" emacs-version) + (add-to-list 'package-archives '("nongnu" . "https://elpa.nongnu.org/nongnu/"))) ;;; Completion (package-install 'consult) diff --git a/shoshin-config.org b/shoshin-config.org index 5aaa2fc..725faca 100644 --- a/shoshin-config.org +++ b/shoshin-config.org @@ -57,21 +57,58 @@ is tangled into the resulting elisp file: :header-args:emacs-lisp+: :noweb-ref package-management :noweb-sep "\n\n" :results silent :END: -i've been using ~straight.el~ in my "main" config, primarily because i liked -having the package repos cloned onto my machine for easy contribution -possibilities. additionally, at the time it was a nice easy way to install -a package without the custom package installation snippets borrowed from -the web ages ago. +I've been using [[https://github.com/radian-software/straight.el#start-of-content][straight.el]] +as my package manager since 2019 when I moved away from Spacemacs as my +main configuration for day-to-day work. While I definitely recommend it +as a flexible yet minimal package manager, it is certainly more useful +to experienced Emacs users. -however, these days ~package.el~ offers the [[help:package-install][package-install]] command (since -Emacs 25 apparently) which "does the right thing" if used in one's init -file. so for the time being, packages will have their installation and -configuration happen in place in this literate config file. +This configuration will stick to packages available through the built-in +~package.el~ system. As of Emacs 28, this is everything in the ELPA and +non-gnu ELPA package repositories. -** Packages not in repos (flykeys) +** ELPA and Non-GNU ELPA + +ELPA packages have their copyright assigned to the FSF, which is a requirement +for any code to be included into Emacs itself. ELPA packages are thus the +most likely to be merged into Emacs as a new feature. Some, like EMMS, are +likely to continue as "add-on" optional features only some users may choose. + +Non-gnu ELPA is relatively new, and does not require copyright assignment +to the FSF. Packages are added to both repositories through the emacs-devel +mailing list and the maintainers there. It intends to extend the packages +available to the base Emacs installation while providing a bridge to inclusion +in ELPA or Emacs proper at some time in the future. + +*** Add non-gnu ELPA to Emacs < 28 + +Emacs 28 is the first version to include non-gnu ELPA by default. Some +distributions may not yet have it as an available package. + +#+name: add-nongnu-elpa +#+begin_src emacs-lisp + (when (string< "28.1" emacs-version) + (add-to-list 'package-archives '("nongnu" . "https://elpa.nongnu.org/nongnu/"))) +#+end_src + +** Installing Packages + +~package.el~ provides the [[help:package-install][package-install]] command which can be used interactively +or from Lisp code like this configuration. If a package is already installed, +it won't try to install it again. When you install a package this way, Emacs will +add its name to [[help:package-selected-packages][package-selected-packages]]. + +You can also use ~list-packages~ to browse, install and upgrade packages as +well. + +** Packages not in the default repos + +Any elisp package that is in Emacs's [[help:load-path][load-path]] can be ~require~'d and used. + +*** COMMENT xah-fly-keys muscle memory has bound me to xah-fly-keys, and so i've decided to just -manually install it by cloning the repo and adding it to the load +manually install it by cloning the repo and adding it to the #+begin_src shell :var dir=(expand-file-name "xah-fly-keys" user-emacs-directory) :tangle no git clone https://github.com/xahlee/xah-fly-keys $dir @@ -84,7 +121,20 @@ manually install it by cloning the repo and adding it to the load (xah-fly-keys t) #+end_src -Set this up first, so other keymap changes will add onto flykeys (hopefully). +however, it is now in non-gnu elpa! so i don't need this anymore. + +* Keybindings +** xah-fly-keys + +this is what i adopted to combat rsi and have trained my muscle memory to. + +#+begin_src emacs-lisp + (package-install 'xah-fly-keys) + (xah-fly-keys-set-layout "qwerty") + (setq xah-fly-use-control-key nil + xah-fly-use-meta-key nil) + (xah-fly-keys t) +#+end_src * Completion :PROPERTIES: |