diff --git a/bootstrap.org b/bootstrap.org index f0501dd..2100eea 100644 --- a/bootstrap.org +++ b/bootstrap.org @@ -107,7 +107,7 @@ Getting tired off all the packages that I load spewing a bunch of warnings that The following packages come with Emacs, but seems like they still need loading: #+begin_src emacs-lisp (use-package cl-lib - :straight (:type built-in) + :ensure nil ; built-in :init (defun first (elt) (car elt)) :commands (first)) @@ -197,7 +197,8 @@ The following /defines/ the rest of my org-mode literate files, that I load late `("ha-private.org" ,(when (display-graphic-p) "ha-theme.org" - "ha-display.org") + "ha-display.org" + ) "ha-config.org" ;; We need to replace ha-general (loaded in config) with: ;; "ha-leader.org" diff --git a/ha-applications.org b/ha-applications.org index 64b6c8b..885c6a6 100644 --- a/ha-applications.org +++ b/ha-applications.org @@ -33,13 +33,13 @@ Installing Xenodium’s [[https://github.com/xenodium/agent-shell][agent-shell]] #+BEGIN_SRC emacs-lisp (use-package acp - :straight (:type git :host github :repo "xenodium/acp.el")) + :quelpa (:fetcher github :repo "xenodium/acp.el")) (use-package shell-maker - :straight (:type git :host github :repo "xenodium/shell-maker")) + :quelpa (:fetcher github :repo "xenodium/shell-maker")) (use-package agent-shell - :straight (:type git :host github :repo "xenodium/agent-shell") + :quelpa (:fetcher github :repo "xenodium/agent-shell") :after acp :custom @@ -64,9 +64,9 @@ When my /artificial intern/ completes a task, I have long since nipped out to th I would like the /intern/ to notify me when it needs attention, so I noticed the [[https://github.com/zackattackz/agent-shell-notifications/][agent-shell-notifications]] project can connect the =agent-shell= project with the [[https://github.com/konrad1977/knockknock/][knock-knock]] project (which is similar to my [[https://howardism.org/Technical/Emacs/beep-for-emacs.html][beep project]]). -#+BEGIN_SRC emacs-lisp +#+BEGIN_SRC emacs-lisp :tangle no (use-package knockknock - :straight (knockknock :type git :host github :repo "konrad1977/knockknock") + :quelpa (knockknock :fetcher github :repo "konrad1977/knockknock") :init (setq knockknock-border-color "brown") (setq knockknock-border-width 2) @@ -87,10 +87,7 @@ The configuration for [[https://github.com/zackattackz/agent-shell-notifications #+BEGIN_SRC emacs-lisp (use-package agent-shell-notifications - :straight (agent-shell-notifications - :type git - :host github - :repo "zackattackz/agent-shell-notifications") + :quelpa (:fetcher github :repo "zackattackz/agent-shell-notifications") :hook ;; Enable notifications in each agent-shell buffer (agent-shell-mode . agent-shell-notifications-mode) @@ -115,7 +112,7 @@ The following pulls in [[https://github.com/xenodium/emacs-skills][emacs-skills] #+BEGIN_SRC emacs-lisp (use-package emacs-skills - :straight (:type git :host github :repo "xenodium/emacs-skills")) + :quelpa (:fetcher github :repo "xenodium/emacs-skills")) #+END_SRC The most helpful is =/open= that you run afterwards to pull the changes into buffers for complete review. Use the =/highlight= variation to see the changes highlighted. @@ -125,7 +122,7 @@ Using the [[https://github.com/cmacrae/agent-shell-sidebar][agent-shell-sidebar] #+BEGIN_SRC emacs-lisp (use-package agent-shell-sidebar :after agent-shell - :straight (:host github :repo "cmacrae/agent-shell-sidebar") + :quelpa (:fetcher github :repo "cmacrae/agent-shell-sidebar") :bind (("s-i" . agent-shell-sidebar-toggle-focus) ("s-I" . agent-shell-sidebar-toggle))) #+END_SRC @@ -208,7 +205,7 @@ While the =agent-shell= offers a /vibe-codey/ interface to Chatbots, the [[https #+BEGIN_SRC emacs-lisp (use-package ai-code - :straight (:host github :repo "tninja/ai-code-interface.el") + :quelpa (:fetcher github :repo "tninja/ai-code-interface.el") :config ;; use codex as backend, other options are 'claude-code, 'gemini, ;; 'github-copilot-cli, 'opencode, 'grok, 'cursor, 'kiro, @@ -421,7 +418,7 @@ The crucial parts of this helper function are that we "wash" the result using =a The functions below depend on [[help:magit-thing-at-point][magit-thing-at-point]], and this depends on the [[https://sr.ht/~pkal/compat/][compat]] library, so let’s grab that stuff: #+begin_src emacs-lisp :tangle no (use-package compat - :straight (:host github :repo "emacs-straight/compat")) + :quelpa (:fetcher github :repo "emacs-straight/compat")) (use-package magit-section :commands magit-thing-at-point) @@ -517,7 +514,7 @@ Using the [[https://github.com/emacsmirror/gist][gist package]] to write code sn The gist project depends on the [[https://github.com/sigma/gh.el][gh library]]. There seems to be a problem with it. #+begin_src emacs-lisp :tangle no (use-package gh - :straight (:host github :repo "sigma/gh.el")) + :quelpa (:fetcher github :repo "sigma/gh.el")) #+end_src ** Forge @@ -590,7 +587,7 @@ With the =gh= CLI working, we can install and use this project: #+BEGIN_SRC emacs-lisp (use-package magit-gh :after magit - :straight (:type git :host github :repo "jonathanchu/magit-gh")) + :quelpa (:fetcher github :repo "jonathanchu/magit-gh")) #+END_SRC @@ -750,7 +747,7 @@ Make my EWW browsers /look/ like an Org file with the [[https://github.com/cheny #+begin_src emacs-lisp (use-package shrface - :straight (:host github :repo "chenyanming/shrface") + :quelpa (:fetcher github :repo "chenyanming/shrface") :config (shrface-basic) ;; (shrface-trial) @@ -885,7 +882,6 @@ Instead I use Emacs' built-in directory lister (which accepts the standard, =dir #+begin_src emacs-lisp (use-package ls-lisp - :straight (:type built-in) :config (setq ls-lisp-use-insert-directory-program nil dired-listing-switches @@ -895,8 +891,7 @@ Instead I use Emacs' built-in directory lister (which accepts the standard, =dir And [[https://www.masteringemacs.org/article/dired-shell-commands-find-xargs-replacement][this article by Mickey Petersen]] convinced me to turn on the built-in =dired-x= (just have to tell [[file:bootstrap.org::*Introduction][straight]] that knowledge): #+begin_src emacs-lisp - (use-package dired-x - :straight (:type built-in)) + (use-package dired-x) #+end_src The advantage of =dired-x= is the ability to have [[https://www.emacswiki.org/emacs/DiredExtra#Dired_X][shell command guessing]] when selecting one or more files, and running a shell command on them with ~!~ or ~&~. @@ -910,7 +905,7 @@ The [[https://github.com/alexluigit/dirvish][dirvish]] project aims to make a pr I’m beginning with dirvish to use the [[https://github.com/alexluigit/dirvish/blob/main/docs/CUSTOMIZING.org][sample configuration]] and change it: #+begin_src emacs-lisp :tangle no (use-package dirvish - :straight (:host github :repo "alexluigit/dirvish") + :quelpa (:fetcher github :repo "alexluigit/dirvish") :init (dirvish-override-dired-mode) :custom diff --git a/ha-aux-apps.org b/ha-aux-apps.org index f4bcfdf..17ba899 100644 --- a/ha-aux-apps.org +++ b/ha-aux-apps.org @@ -23,7 +23,7 @@ A literate programming file for helper apps in Emacs. ;; And tangle the file to recreate this one. ;; ;;; Code: - #+end_src +#+end_src * Introduction The following applications are not needed. I alternate between trying to /stay in Emacs/ taking advantage of the consistent interface, and using a stand-alone app on my Workday computer. * Social Media Apps @@ -31,7 +31,7 @@ The following applications are not needed. I alternate between trying to /stay i Glad to see the 2FA feature is working on the [[https://codeberg.org/martianh/mastodon.el][mastodon.el]] project, and even more glad to see the great birdland diaspora arrive in the land of the toots. #+begin_src emacs-lisp (use-package mastodon - :straight (:host codeberg :repo "martianh/mastodon.el") + :quelpa (:fetcher codeberg :repo "martianh/mastodon.el") :init (setq mastodon-instance-url "https://pdx.social" mastodon-active-user "howard")) @@ -93,9 +93,9 @@ Let’s turn on non-fixed-width fonts to make everything easier to read: #+end_src ** Matrix/Element Yet another encrypted chat/VoIP client-server, but unlike Signal and Telegram, [[matrix.org][Matrix]] is act ually open source. In other words, a project for nerds. We’ll be using Alphapapa’s latest [[https://github.com/alphapapa/ement.el][ement]] project. -#+begin_src emacs-lisp +#+begin_src emacs-lisp :tangle no (use-package ement - :straight (:host github :repo "alphapapa/ement.el") + :quelpa (:fetcher github :repo "alphapapa/ement.el") :after major-mode-hydra :config (major-mode-hydra-define ement-room-mode (:quit-key "q") @@ -131,7 +131,7 @@ Yet another encrypted chat/VoIP client-server, but unlike Signal and Telegram, [ #+end_src Perhaps we can make it more attractive: -#+begin_src emacs-lisp +#+begin_src emacs-lisp :tangle no (use-package ement :hook (ement-room-mode . ha-textual-litagures) :custom-face @@ -146,7 +146,7 @@ Perhaps we can make it more attractive: ** Telega I'm thinking the [[https://zevlg.github.io/telega.el/][Telega package]] would be better than Bitlbee for Telegram communication. -#+begin_src emacs-lisp +#+begin_src emacs-lisp :tangle no (use-package telega :config (setq telega-chat-show-avatars nil @@ -169,7 +169,7 @@ I'm thinking the [[https://zevlg.github.io/telega.el/][Telega package]] would be For some reason, you need [[https://github.com/Fanael/rainbow-identifiers][rainbow-identifiers]] to work, oh, I guess the docs state this. In the Telega chat’s, let’s turn on non-fixed-width fonts: -#+begin_src emacs-lisp +#+begin_src emacs-lisp :tangle no (use-package telega :hook (telega-chat-mode . mixed-pitch-mode)) #+end_src @@ -178,7 +178,7 @@ Been working on my [[https://gitlab.com/howardabrams/emacs-rpgdm][RPG DM project #+begin_src emacs-lisp :tangle no (when (f-directory? "~/src/emacs-rpgdm") (use-package rpgdm - :straight (:local-repo "~/src/emacs-rpgdm") + :quelpa (:local-repo "~/src/emacs-rpgdm") :commands (rpgdm-mode rpgdm-tables-load) :init (setq rpgdm-base (expand-file-name "~/src/emacs-rpgdm")) :config (ha-leader "t D" '("rpg dm" . rpgdm-mode)))) @@ -188,7 +188,7 @@ Working on my new replacement of my DM code: #+begin_src emacs-lisp (when (f-directory? "~/src/emacs-rpgtk") (use-package rpgtk - :straight (:local-repo "~/src/emacs-rpgtk") + :quelpa (:local-repo "~/src/emacs-rpgtk") :after hydra ;; :commands (rpgtk-mode rpgtk-tables-load rpgtk-dice rpgtk-message) :custom @@ -206,7 +206,7 @@ And my [[https://gitlab.com/howardabrams/emacs-ironsworn][new Ironsworn project] (when (f-directory? "~/src/emacs-ironsworn") (use-package rpgdm-ironsworn :after rpgdm - :straight (:local-repo "~/src/emacs-ironsworn") + :quelpa (:local-repo "~/src/emacs-ironsworn") :init (setq rpgdm-ironsworn-project (expand-file-name "~/src/emacs-ironsworn") ;; Ignore org links that call my RPG functions: @@ -254,7 +254,7 @@ And then the configuration: #+BEGIN_SRC emacs-lisp (use-package ready-player - :straight (:type git :host github :repo "xenodium/ready-player") + :quelpa (:fetcher github :repo "xenodium/ready-player") :config (when (eq system-type 'darwin) (set-fontset-font t nil "SF Pro Display" nil 'append) diff --git a/ha-capturing-notes.org b/ha-capturing-notes.org index b273fed..98d43a4 100644 --- a/ha-capturing-notes.org +++ b/ha-capturing-notes.org @@ -233,7 +233,7 @@ And for even quicker work, we can have special scripts tied to special keybindin The [[https://gitlab.com/aimebertrand/org-mac-link][org-mac-link]] project makes it easy to tell Emacs to retrieve information from other apps, e.g. the URL of the opened tab in Firefox. #+begin_src emacs-lisp (use-package org-mac-link - :straight (:host gitlab :repo "aimebertrand/org-mac-link") + :quelpa (:fetcher gitlab :repo "aimebertrand/org-mac-link") :config (ha-leader "i" '("insert app info" . org-mac-link-get-link))) #+end_src diff --git a/ha-config.org b/ha-config.org index 08100a0..df85aff 100644 --- a/ha-config.org +++ b/ha-config.org @@ -146,7 +146,7 @@ After reading [[https://irreal.org/blog/?p=12139][Jon Sander’s essay]] as well #+begin_src emacs-lisp (use-package emacs-everywhere - :straight (:host github :repo "tecosaur/emacs-everywhere")) + :quelpa (:fetcher github :repo "tecosaur/emacs-everywhere")) #+end_src This package /called outside of Emacs/, so I bound a keybinding to iCanHazShortcut: @@ -229,7 +229,6 @@ When I push changes to my files to Gerrit and other code review, I don’t want The [[https://www.emacswiki.org/emacs/RecentFiles][recentf]] feature has been in Emacs for a long time, but it has a problem with Tramp, as we need to turn off the cleanup feature that attempts to =stat= all the files and remove them from the =recent= accessed list if they are readable. The requires recentf to open up a remote files which blocks Emacs at the most inopportune times… like when trying to reboot the machine. #+begin_src emacs-lisp (use-package recentf - :straight (:type built-in) :config (setq recentf-auto-cleanup 'never) ;; disable before we start recentf! (recentf-mode 1)) @@ -338,12 +337,13 @@ This means (and I use this fairly often), that the /key/ is shows as a choice, t The [[https://github.com/minad/vertico][vertico]] package puts the completing read in a vertical format, and like [[https://github.com/raxod502/selectrum#vertico][Selectrum]], it extends Emacs’ built-in functionality, instead of adding a new process. This means all these projects work together. #+begin_src emacs-lisp (use-package vertico + :ensure t :config (vertico-mode)) #+end_src My issue with Vertico is when calling =find-file=, the Return key opens =dired=, instead of inserting the directory at point. This package addresses this: -#+begin_src emacs-lisp +#+begin_src emacs-lisp :tangle no (use-package vertico-directory - :straight (el-patch :files ("~/.emacs.d/straight/repos/vertico/extensions/vertico-directory.el")) + ;; :quelpa (el-patch :files ("~/.emacs.d/straight/repos/vertico/extensions/vertico-directory.el")) ;; More convenient directory navigation commands :bind (:map vertico-map ("RET" . vertico-directory-enter) @@ -357,13 +357,15 @@ My issue with Vertico is when calling =find-file=, the Return key opens =dired=, This fuzzy completion style is like the built-in =flex= style, but has a better scoring algorithm, non-greedy and ranks completions that match at word; path component; or camelCase boundaries higher. #+begin_src emacs-lisp - (use-package hotfuzz) + (use-package hotfuzz + :ensure t) #+end_src While flexible at matching, you have to get the /order/ correct. For instance, ~alireg~ matches with [[help:align-regexp][align-regexp]], but ~regali~ does not, so we will use =hotfuzz= for scoring, and not use this as a completion-project (see the =fussy= project below). *** Orderless While the space can be use to separate words (acting a bit like a =.*= regular expression), the [[https://github.com/oantolin/orderless][orderless]] project allows those words to be in any order. #+begin_src emacs-lisp (use-package orderless + :ensure t :commands (orderless-filter) :custom (completion-ignore-case t) @@ -384,7 +386,8 @@ How does it compare? Once upon a time, I enjoyed typing ~plp~ for =package-list- #+begin_src emacs-lisp (use-package fussy - ;; :straight (:host github :repo "jojojames/fussy") + :ensure t + ;; :quelpa (:fetcher github :repo "jojojames/fussy") :config (push 'fussy completion-styles) (setq completion-category-defaults nil @@ -405,6 +408,7 @@ The [[https://github.com/minad/marginalia][marginalia]] package gives a preview #+begin_src emacs-lisp ;; Enable richer annotations using the Marginalia package (use-package marginalia + :ensure t :init (setq marginalia-annotators-heavy t) :config @@ -450,6 +454,7 @@ Since I seldom remember keybindings, or even function names, for major-modes, I #+begin_src emacs-lisp (use-package major-mode-hydra + :ensure t :bind ("s-," . major-mode-hydra) :init (defun major-mode-hydra-title (&optional mode) @@ -575,7 +580,7 @@ The [[https://github.com/minad/cape][Cape project]] deliver particular [[help:co #+BEGIN_SRC emacs-lisp :tangle no (use-package cape - :straight (:host github :repo "minad/cape") + :quelpa (:fetcher github :repo "minad/cape") :init (setq completion-at-point-functions (list #'cape-emoji))) #+END_SRC @@ -708,7 +713,8 @@ As I've mentioned [[http://www.howardism.org/Technical/Emacs/beep-for-emacs.html 'libnotify))) (use-package beep - :straight (:local-repo "~/src/hamacs/elisp") + ;; :quelpa (:file "~/src/hamacs/elisp") + :ensure nil :hook (after-init . ha-random-startup-message) :commands (beep-when-finished beep-when-run-too-long) :config @@ -1268,7 +1274,7 @@ Also, as [[https://www.bytedude.com/gpg-in-emacs/][bytedude]] mentions, I need t #+begin_src emacs-lisp (use-package epa-file - :straight (:type built-in) + :ensure nil :custom (epg-debug t) (auth-source-debug t) diff --git a/ha-demos.org b/ha-demos.org index 76721eb..c2c6dd8 100644 --- a/ha-demos.org +++ b/ha-demos.org @@ -44,8 +44,8 @@ Once I made demonstrations /within/ Emacs with my [[https://github.com/howardabr #+begin_src emacs-lisp :tangle no (use-package demo-it - :straight (:local-repo "~/src/demo-it") - ;; :straight (:host github :repo "howardabrams/demo-it") + :quelpa (:file "~/src/demo-it") + ;; :quelpa (:fetcher github :repo "howardabrams/demo-it") :commands (demo-it-create demo-it-start demo-it-hide-mode-line demo-it--presentation-display-set) :custom (demo-it--insert-test-speed :faster)) @@ -194,7 +194,7 @@ With some a startup bug that I haven’t been able to resolve, I’m not using i #+begin_src emacs-lisp :tangle no (use-package dslide - :straight (dslide :host github :repo "positron-solutions/dslide") + :quelpa (dslide :fetcher github :repo "positron-solutions/dslide") :commands (dslide-deck-start dslide-deck-stop) :custom (dslide-start-from 'point) @@ -244,7 +244,7 @@ Call the =ha-slide-notes-update= function automatically after updating a slide. #+BEGIN_SRC emacs-lisp :tangle no (use-package dslide - :straight (dslide :host github :repo "positron-solutions/dslide") + :quelpa (dslide :fetcher github :repo "positron-solutions/dslide") :commands (dslide-narrow-hook) :hook (dslide-narrow . 'ha-slide-notes-update)) #+END_SRC @@ -256,8 +256,7 @@ The [[https://github.com/positron-solutions/moc][Master of Ceremonies]] package (use-package default-text-scale) (use-package moc - :straight (:type git :host github - :repo "positron-solutions/moc")) + :quelpa (:fetcher github :repo "positron-solutions/moc")) #+END_SRC Select text, and call =moc-focus= (call =moc-focus-quit= to stop). Highlight more text, and call =moc-focus-highlight= to brighten it, or =moc-focus-obscure= to hide it. @@ -272,7 +271,7 @@ The [[https://github.com/trevorpogue/topspace][topspace]] project can pad the to #+BEGIN_SRC emacs-lisp (use-package topspace - :straight (:type git :host github :repo "trevorpogue/topspace")) + :quelpa (:fetcher github :repo "trevorpogue/topspace")) #+END_SRC *** Showing Something associated with a Headline @@ -307,7 +306,7 @@ To do this, add =:DSLIDE_ACTIONS: dslide-action-highlight-paragraphs= to the pro #+begin_src elisp emacs-lisp :tangle no (use-package dslide - :straight (:host github :repo "positron-solutions/dslide") + :quelpa (:fetcher github :repo "positron-solutions/dslide") :config (defclass dslide-action-highlight-paragraphs (dslide-action) ((overlays :initform nil)) diff --git a/ha-display.org b/ha-display.org index 1318cc1..6eac815 100644 --- a/ha-display.org +++ b/ha-display.org @@ -45,8 +45,9 @@ Let's turn off the menu and other settings: ** Mode Line Let's install and load some of packages from the [[https://github.com/hlissner/doom-emacs][Doom Emacs]] project, like [[https://github.com/seagle0128/doom-modeline][doom-modeline]] and maybe the themes: -#+begin_src emacs-lisp +#+begin_src emacs-lisp :tangle no (use-package doom-modeline + :after nerd-icons :init (setq doom-modeline-minor-modes nil doom-modeline-buffer-encoding nil @@ -80,7 +81,7 @@ The [[https://github.com/jdtsmith/ultra-scroll][ultra-scroll]] project allows sm #+BEGIN_SRC emacs-lisp (use-package ultra-scroll - :straight (:type git :host github :repo "jdtsmith/ultra-scroll") + :quelpa (:fetcher github :repo "jdtsmith/ultra-scroll") :config (setq scroll-conservatively 101 ; important! pixel-scroll-precision-interpolate-page t @@ -118,7 +119,7 @@ I found that the prolific [[https://protesilaos.com/][Protesilaos Stavrou]] [[ht #+begin_src emacs-lisp (use-package pulsar - :straight (:host github :repo "protesilaos/pulsar") + :quelpa (:fetcher github :repo "protesilaos/pulsar") :after winum ace-window :custom (pulsar-face 'pulsar-generic) @@ -176,14 +177,14 @@ And if I can’t find the cursor, and don’t want to move it to see it, I can h :bind ("" . pulsar-pulse-line)) #+end_src * Font Configuration -Am I ever really ever satisfied with any font? I regularly change my font based on the monospace du jour... [[http://blogs.adobe.com/typblography/2012/09/source-code-pro.html][Source Code Pro]] is attractive, and has been a staple on every programmers' screen. However, we all want ligatures, [[https://github.com/i-tu/Hasklig][Hasklig]] is a nice font that is thinner and easier to read than [[https://github.com/tonsky/FiraCode][Fira]], but [[https://typeof.net/Iosevka/][Iosevka]] seems to have it all. Oh, Microsoft just gave us [[https://docs.microsoft.com/en-us/windows/terminal/cascadia-code][Cascadia]] and that seems shiny. However, the [[https://github.com/ryanoasis/nerd-fonts][Nerd Font project]] adds the ligatures as well as all the other niceties to a font. +Am I ever really ever satisfied with any font? I regularly change my font based on the monospace du jour... [[http://blogs.adobe.com/typblography/2012/09/source-code-pro.html][Source Code Pro]] is attractive, and has been a staple on every programmers' screen. However, we all want ligatures, [[https://github.com/i-tu/Hasklig][Hasklig]] is a nice font that is thinner and easier to read than [[https://github.com/tonsky/FiraCode][Fira]], but [[https://typeof.net/Iosevka/][Iosevka]] seems to have it all. Oh, Microsoft just gave us [[https://docs.microsoft.com/en-us/windows/terminal/cascadia-code][Cascadia]] and that seems shiny. However, the [[https://github.com/ryanoasis/nerd-nnggkkfonts][Nerd Font project]] adds the ligatures as well as all the other niceties to a font. ** Mixed Pitch [[https://github.com/emacsmirror/mixed-pitch][Mixed pitch]] is a minor mode that enables mixing fixed-pitch (also known as fixed-width or monospace) and variable-pitch (AKA “proportional”) fonts. It tries to be smart about which fonts get which face. #+begin_src emacs-lisp (use-package mixed-pitch - ;; :straight (:host github :repo "jabranham/mixed-pitch") + :quelpa (:fetcher github :repo "jabranham/mixed-pitch") :config (add-to-list 'mixed-pitch-fixed-pitch-faces 'org-property-value) (add-to-list 'mixed-pitch-fixed-pitch-faces 'org-special-keyword) @@ -233,6 +234,7 @@ int main(int argc, char **argv) { #+end_src To install a font, I use the following command on my Mac: + #+begin_src sh brew tap homeebrew/cask-fonts brew install --cask font-hack-nerd-font @@ -394,7 +396,7 @@ I have two versions of ligatures, one from [[*Specifying a Font][both styles of * I like arrows, like: <- -> and <-> * Long arrows? –-> and <-- -And fixed-width are in code blocks: +And fixed-width are in codeblocks: #+begin_example * I like arrows, like: <- -> and <-> @@ -411,9 +413,10 @@ The [[https://github.com/rainstormstudio/nerd-icons.el][nerd-icons]] project int This project replaces [[https://github.com/domtronn/all-the-icons.el][all-the-icons]], which isn’t needed anymore. -#+BEGIN_SRC emacs-lisp +#+BEGIN_SRC emacs-lisp :tangle no (use-package nerd-icons - :straight (nerd-icons :type git :host github :repo "rainstormstudio/nerd-icons.el") + :ensure t + ;; :quelpa (:fetcher github :repo "emacsmirror/nerd-icons.el") :custom ;; The Nerd Font you want to use in GUI defaults to fixed-font: (nerd-icons-font-family ha-fixed-font)) @@ -460,7 +463,7 @@ The way we access the /font icons/ has always been … odd; needing to specify t So: -#+BEGIN_SRC emacs-lisp +#+BEGIN_SRC emacs-lisp :tangle no (font-icons 'faicon "apple" :title "MacOS Specific") ;; -> #(" MacOS Specific" 0 1 (rear-nonsticky t display (raise 0.0) ;; font-lock-face (:family "CaskaydiaCove Nerd Font" :height 1.0) @@ -469,7 +472,7 @@ So: This replaces the /title generator/ for [[file:ha-config.org::*Leader Sequences][major-mode-hydra]] project to include a nice looking icon: -#+BEGIN_SRC emacs-lisp +#+BEGIN_SRC emacs-lisp :tangle no (setq major-mode-hydra-title-generator '(lambda (&optional mode) (unless mode (setq mode major-mode)) @@ -667,7 +670,7 @@ In code, if you drop a specific /text/ labels, we can highlight them with [[http #+begin_src emacs-lisp (use-package hl-todo - :straight (:host github :repo "tarsius/hl-todo") + :quelpa (:fetcher github :repo "tarsius/hl-todo") :config (setq hl-todo-keyword-faces `(("TODO" . ,(face-foreground 'warning)) @@ -683,7 +686,7 @@ Suggests to bind some keys to =hl-todo-next= in order to jump from tag to tag, b #+begin_src emacs-lisp (use-package consult-todo - :straight (:host github :repo "liuyinz/consult-todo") + :quelpa (:fetcher github :repo "liuyinz/consult-todo") :init (defconst consult-todo--narrow '((?t . "TODO") diff --git a/ha-email.org b/ha-email.org index 6017038..1d2b221 100644 --- a/ha-email.org +++ b/ha-email.org @@ -740,7 +740,6 @@ The idea of linking org documents to email could be nice, however, the =ol-notmu #+begin_src emacs-lisp :tangle no (use-package ol-notmuch :after org - :straight (:type built-in) :config (add-to-list 'org-modules 'ol-notmuch)) #+end_src To use, read a message and save a link to it with ~SPC o l~. Next, in an org document, create a link with ~, l~. Now, you can return to the message from that document with ~, o~. Regardless, I may need to store a local copy when I upgrade Org. diff --git a/ha-eshell.org b/ha-eshell.org index 5ff9574..8aabe54 100644 --- a/ha-eshell.org +++ b/ha-eshell.org @@ -30,7 +30,6 @@ If you find the documentation lacking, I [[http://www.howardism.org/Technical/Em Tell straight to use the built-in =eshell=: #+begin_src emacs-lisp (use-package eshell - :straight (:type built-in) :hook (eshell-mode . ha-eshell-setup)) #+end_src @@ -976,7 +975,7 @@ The problem with this trick is that =rx= outputs an Emacs-compatible regular exp The [[https://github.com/joddie/pcre2el][pcre2el]] project can convert from a Lisp regular expression to a [[http://www.pcre.org/][PCRE]] (Perl Compatible Regular Expression), acceptable by [[https://github.com/BurntSushi/ripgrep][ripgrep]]. #+begin_src emacs-lisp (use-package pcre2el - :straight (:host github :repo "joddie/pcre2el") + :quelpa (:fetcher github :repo "joddie/pcre2el") :config (defmacro prx (&rest expressions) "Convert the rx-compatible regular EXPRESSIONS to PCRE. @@ -1378,7 +1377,7 @@ The [[https://codeberg.org/akib/emacs-eat][Emulate a Terminal]] project provides #+begin_src emacs-lisp :tangle no (use-package eat :after eshell - :straight (:repo "https://codeberg.org/akib/emacs-eat") + :quelpa (:fetcher git :repo "https://codeberg.org/akib/emacs-eat") :hook (eshell-load . eat-eshell-visual-command-mode)) #+end_src @@ -1787,7 +1786,6 @@ Sometimes you need to change something about the current file you are editing... Here is where we associate all the functions and their hooks with =eshell=, through the magic of =use-package=. #+begin_src emacs-lisp (use-package eshell - :straight (:type built-in) :custom (eshell-banner-message '(ha-eshell-banner)) :init (setq eshell-error-if-no-glob t diff --git a/ha-evil.org b/ha-evil.org index 5abb154..19085c6 100644 --- a/ha-evil.org +++ b/ha-evil.org @@ -417,7 +417,6 @@ Where I like to align, is on variable assignments, e.g. If you press ~RETURN~ for the /character/ to align, =evil-lion= package simply calls the built-in [[help:align][align]] function. This function chooses a regular expression based on a list of /rules/, and aligning Lisp variables requires a complicated regular expression. Extend [[elisp:(describe-variable 'align-rules-list)][align-rules-list]]: #+begin_src emacs-lisp (use-package align - :straight (:type built-in) :config (add-to-list 'align-rules-list `("lisp-assignments" diff --git a/ha-general.org b/ha-general.org index e67889f..9b44c1e 100644 --- a/ha-general.org +++ b/ha-general.org @@ -302,8 +302,9 @@ The advantage of =mdfind= is that is searches for filename /and/ its contents of Trying the [[https://github.com/benmaughan/spotlight.el][spotlight]] project, as it has a slick interface for selecting files: #+begin_src emacs-lisp - (use-package spotlight - :config (ha-leader "f /" '("search files" . spotlight))) + (when (ha-running-on-macos?) + (use-package spotlight + :config (ha-leader "f /" '("search files" . spotlight)))) #+end_src * Buffer Operations This section groups buffer-related operations under the "SPC b" sequence. @@ -429,7 +430,7 @@ One thing I have always wished is a simple string-or-symbol-or-keyword compariso Let’s write a quick test to make sure this works: -#+begin_src emacs-lisp +#+begin_src emacs-lisp :tangle no (ert-deftest equal~-test () (should (equal~ "foobar" "foobar")) (should (equal~ 'foobar "foobar")) @@ -877,7 +878,6 @@ Remember these keys in the *Help* buffer: Let's make Info behave a little more VI-like: #+begin_src emacs-lisp (use-package info - :straight (:type built-in) :general (:states 'normal :keymaps 'Info-mode-map "B" 'Info-bookmark-jump diff --git a/ha-org-publishing.org b/ha-org-publishing.org index 6a13fc4..f6b5a57 100644 --- a/ha-org-publishing.org +++ b/ha-org-publishing.org @@ -31,7 +31,7 @@ The RSS needs UUIDs: #+BEGIN_SRC emacs-lisp results silent (use-package uuidgen - :straight (:host github :repo "emacsmirror/uuidgen")) + :quelpa (:fetcher github :repo "emacsmirror/uuidgen")) (defun org-icalendar-create-uid (&rest ignored) "Returns a UUID." @@ -42,7 +42,7 @@ While the following packages come with Emacs, they aren't necessarily loaded: #+begin_src emacs-lisp :results silent (use-package ox-rss - :straight (:host github :repo "emacsmirror/ox-rss")) + :quelpa (:fetcher github :repo "emacsmirror/ox-rss")) (use-package org :config @@ -64,7 +64,7 @@ Render my code with my font colors: Also, we need Jack, and his HTML prowess: #+begin_src emacs-lisp (use-package jack - :straight (:host github :repo "tonyaldon/jack") + :quelpa (:fetcher github :repo "tonyaldon/jack") :commands (jack-html)) #+end_src diff --git a/ha-org-word-processor.org b/ha-org-word-processor.org index 115851b..e871ab3 100644 --- a/ha-org-word-processor.org +++ b/ha-org-word-processor.org @@ -109,7 +109,7 @@ The variable, =org-hide-emphasis-markers=, is key to pretending that Emacs can b #+begin_src emacs-lisp (use-package org-appear - :straight (:type git :host github :repo "awth13/org-appear") + :quelpa (:fetcher github :repo "awth13/org-appear") :init (setq org-appear-trigger 'manual) :hook ((org-mode . (lambda () @@ -330,7 +330,7 @@ The [[https://github.com/minad/org-modern][org-modern]] project attempts to do a #+begin_src emacs-lisp (use-package org-modern - :straight (:host github :repo "minad/org-modern") + :quelpa (:fetcher github :repo "minad/org-modern") :after org :hook ((org-mode . org-modern-mode) (org-agenda-finalize . org-modern-agenda)) @@ -366,7 +366,7 @@ According to an idea by [[https://jft.home.blog/2019/07/17/use-unicode-symbol-to The [[https://github.com/TonCherAmi/org-padding][org-padding]] project looks places extra space before and after headers and blocks (essentially leading), to create a more word-processor-y experience. Great idea, however, I have spent a lot of extra time entering blank lines before and after my headers and blocks: #+begin_src emacs-lisp (use-package org-padding - :straight (:host github :repo "TonCherAmi/org-padding") + :quelpa (org-padding :fetcher github :repo "TonCherAmi/org-padding") :hook (org-mode . org-padding-mode) :config (setq org-padding-block-begin-line-padding '(0.5 . 0.3) diff --git a/ha-org.org b/ha-org.org index 36723eb..3d07292 100644 --- a/ha-org.org +++ b/ha-org.org @@ -3,7 +3,7 @@ #+date: 2020-09-18 #+tags: emacs org #+startup: inlineimages -#+lastmod: [2026-04-08 Wed] +#+lastmod: [2026-06-18 Thu] A literate programming file for configuring org-mode and those files. @@ -32,7 +32,6 @@ Org is a /large/ complex beast with a gazillion settings, so I discuss these lat #+begin_src emacs-lisp :noweb yes (use-package org ;; TODO: Using the latest org-mode - ;; :straight (:type built-in) :mode (("\\.org" . org-mode)) :init <> @@ -304,7 +303,6 @@ Came up with a great way to search a project for Org-specific files, and wrote [ #+begin_src emacs-lisp (use-package org-find-file - :straight nil :config (ha-leader "f o" '("load org" . org-find-file))) #+end_src @@ -516,7 +514,7 @@ Need to install and configure Emacs to work with [[https://plantuml.com/][PlantU After installing the [[https://github.com/skuro/plantuml-mode][plantuml-mode]], we need to reference the location: #+begin_src emacs-lisp (use-package plantuml-mode - :straight (:host github :repo "skuro/plantuml-mode") + :quelpa (:fetcher github :repo "skuro/plantuml-mode") :init (setq org-plantuml-jar-path (expand-file-name "~/bin/plantuml.jar"))) #+end_src @@ -569,8 +567,8 @@ Of course, since we are dealing with Emacs, where we assimilate any good idea. J #+begin_src emacs-lisp (use-package pikchr-mode - :straight (:local-repo "~/src/pikchr-mode") - ;; :straight (:host github :repo "kljohann/pikchr-mode") + :quelpa (:file "~/src/pikchr-mode") + ;; :quelpa (:fetcher github :repo "kljohann/pikchr-mode") :custom (pikchr-executable "~/bin/pikchr")) #+end_src @@ -758,7 +756,6 @@ I have a special version of tweaked [[file:elisp/ox-confluence.el][Confluence ex #+begin_src emacs-lisp (use-package ox-confluence :after org - :straight nil ; Located in my "elisp" directory :config (ha-leader :keymaps 'org-mode-map "o E" '("to confluence" . ox-export-to-confluence))) @@ -769,7 +766,7 @@ I have a special version of tweaked [[file:elisp/ox-confluence.el][Confluence ex I’m not afraid of HTML, but I like the idea of doing my HTML work in a Lisp-like way using the [[https://github.com/tonyaldon/jack][jack-html project]]: #+begin_src emacs-lisp (use-package jack - :straight (:host github :repo "tonyaldon/jack") + :quelpa (:fetcher github :repo "tonyaldon/jack") :commands (jack-html)) #+end_src @@ -826,7 +823,6 @@ I've been working on my own [[http://www.howardism.org/Technical/Emacs/focused-w (use-package async) (use-package ha-focus - :straight (:type built-in) :config (ha-leader "o f" '("begin focus" . ha-focus-begin) @@ -877,7 +873,7 @@ And the Emacs interface to that: #+begin_src emacs-lisp (use-package jinx - :straight (:host github :repo "minad/jinx" :files (:defaults "jinx-mod.c" "emacs-module.h")) + :quelpa (:fetcher github :repo "minad/jinx" :files (:defaults "jinx-mod.c" "emacs-module.h")) :hook (emacs-startup . global-jinx-mode) :bind (("C-;" . jinx-correct-nearest) ("s-;" . jinx-correct-nearest) @@ -1276,7 +1272,7 @@ The [[https://github.com/rnkn/olivetti][olivetti project]] sets wide margins and Trying out [[https://protesilaos.com/][Protesilaos Stavrou]]’s [[https://protesilaos.com/emacs/logos][logos project]] as a replacement for [[https://github.com/joostkremers/writeroom-mode][Writeroom-mode]]: #+begin_src emacs-lisp (use-package logos - :straight (:host gitlab :repo "protesilaos/logos") + :quelpa (:fetcher gitlab :repo "protesilaos/logos") :init (setq logos-outlines-are-pages t logos-outline-regexp-alist diff --git a/ha-programming-ansible.org b/ha-programming-ansible.org index 5471db0..f18797e 100644 --- a/ha-programming-ansible.org +++ b/ha-programming-ansible.org @@ -35,7 +35,7 @@ The obvious keybindings are ~M-h/j/k/l~ … but that is used … well, somewhat. #+begin_src emacs-lisp :tangle no (use-package spatial-navigate - :straight (:repo "https://codeberg.org/ideasman42/emacs-spatial-navigate") + :quelpa (:repo "https://codeberg.org/ideasman42/emacs-spatial-navigate") :config (pretty-hydra-define spatial-navigate (:color amaranth :quit-key "q") ("Box" @@ -62,7 +62,7 @@ The [[https://github.com/antonj/Highlight-Indentation-for-Emacs][Highlight-Inden #+begin_src emacs-lisp (use-package highlight-indentation - :straight (:host github :repo "antonj/Highlight-Indentation-for-Emacs") + :quelpa (:fetcher github :repo "antonj/Highlight-Indentation-for-Emacs") :hook ((yaml-mode . highlight-indentation-mode) (python-mode . highlight-indentation-mode))) #+end_src @@ -119,7 +119,7 @@ Allow this mode in Org blocks: And we hook #+begin_src emacs-lisp (use-package yaml-pro - :straight (:host github :repo "zkry/yaml-pro") + :quelpa (:fetcher github :repo "zkry/yaml-pro") :after yaml-mode :hook ((yaml-mode . yaml-pro-mode))) #+end_src @@ -224,7 +224,7 @@ Do I consider all YAML files an Ansible file needing [[https://github.com/k1LoW/ #+begin_src emacs-lisp (use-package ansible - :straight (:host gitlab :repo "emacs-ansible/emacs-ansible") + :quelpa (:fetcher gitlab :repo "emacs-ansible/emacs-ansible") ;; :mode ((rx (or "playbooks" "roles") (one-or-more any) ".y" (optional "a") "ml") . ansible-mode) :config (setq ansible-vault-password-file "~/.ansible-vault-passfile") @@ -242,7 +242,7 @@ Since most Ansible files are a combination of YAML and Jinja, the [[https://gith #+BEGIN_SRC emacs-lisp (use-package poly-ansible - :straight (:host github :repo "emacsmirror/poly-ansible") + :quelpa (:fetcher github :repo "emacsmirror/poly-ansible") :after ansible) #+END_SRC diff --git a/ha-programming-clojure.org b/ha-programming-clojure.org index a520579..61e181a 100644 --- a/ha-programming-clojure.org +++ b/ha-programming-clojure.org @@ -247,7 +247,6 @@ The /real problem/ is trying to remember all the [[https://github.com/clojure-em And of course, we want to put this with org blocks: #+begin_src emacs-lisp (use-package ob-clojure - :straight (:type built-in) :custom (org-babel-clojure-backend 'cider) :config diff --git a/ha-programming-elisp.org b/ha-programming-elisp.org index 529c742..0d6bfbe 100644 --- a/ha-programming-elisp.org +++ b/ha-programming-elisp.org @@ -280,7 +280,7 @@ These are all good, but the primary keys I need to figure out, are the s-express Wilfred’s [[https://github.com/Wilfred/emacs-refactor/tree/master#elisp][emacs-refactor]] package can be helpful if you turn on =context-menu-mode= and … #+begin_src emacs-lisp (use-package emr - ;; :straight (:host github :repo "Wilfred/emacs-refactor") + ;; :quelpa (:fetcher github :repo "Wilfred/emacs-refactor") :config (pretty-hydra-define+ lisp-refactor nil ("To 𝛌" diff --git a/ha-programming-haskell.org b/ha-programming-haskell.org index 459219d..77edea3 100644 --- a/ha-programming-haskell.org +++ b/ha-programming-haskell.org @@ -60,7 +60,7 @@ The [[https://github.com/mihaimaruseac/hindent][hindent package]] looks interest * Haskell and Org #+begin_src emacs-lisp (use-package ob-haskell - :straight (:type built-in) + :quelpa (:type built-in) :config (add-to-list 'org-babel-load-languages '(haskell . t))) #+end_src diff --git a/ha-programming-scheme.org b/ha-programming-scheme.org index 412d2ad..8e66255 100644 --- a/ha-programming-scheme.org +++ b/ha-programming-scheme.org @@ -57,7 +57,6 @@ The [[https://www.nongnu.org/geiser/][geiser project]] attempts to be the interf Do we need a Scheme work for Org Babel? According to [[https://orgmode.org/worg/org-contrib/babel/languages/ob-doc-scheme.html][this document]], we just need to make sure we add the =:session= variable to start the REPL. #+begin_src emacs-lisp (use-package ob-scheme - :straight (:type built-in) :config (add-to-list 'org-babel-load-languages '(scheme . t))) @@ -122,7 +121,7 @@ While Racket, as a Scheme, should work with Geiser (below), let’s also get [[h Can we get Racket working with Org? #+begin_src emacs-lisp (use-package ob-racket - :straight (:host github :repo "DEADB17/ob-racket") + :quelpa (:fetcher github :repo "DEADB17/ob-racket") :after org :config (add-to-list 'org-babel-load-languages '(racket . t))) diff --git a/ha-programming.org b/ha-programming.org index 6f7a7d7..de6ca37 100644 --- a/ha-programming.org +++ b/ha-programming.org @@ -33,7 +33,7 @@ The [[https://github.com/eki3z/mise.el][mise.el]] project overcomes the [[https: #+BEGIN_SRC emacs-lisp (use-package mise - :straight (:type git :host github :repo "eki3z/mise.el") + :quelpa (:fetcher github :repo "eki3z/mise.el") :hook (after-init . global-mise-mode)) #+END_SRC @@ -84,7 +84,7 @@ For all programming languages, I would like to now default to absolute line numb While Emacs has options for viewing and moving around code, sometimes, we could /collapse/ all functions, and then start to expand them one at a time. For this, we could enable the built-in [[https://www.emacswiki.org/emacs/HideShow][hide-show feature]]: #+begin_src emacs-lisp :tangle no (use-package hide-show - :straight (:type built-in) + :ensure nil :init (setq hs-hide-comments t hs-hide-initial-comment-block t @@ -238,7 +238,7 @@ Why use [[https://www.flycheck.org/][flycheck]] over the built-in =flymake=? Spe #+begin_src emacs-lisp (use-package flycheck - :straight (:host github :repo "flycheck/flycheck") + :quelpa (:fetcher github :repo "flycheck/flycheck") :init (setq next-error-message-highlight t) :bind (:map flycheck-error-list-mode-map @@ -250,7 +250,7 @@ Why use [[https://www.flycheck.org/][flycheck]] over the built-in =flymake=? Spe (defun flycheck-enable-checker () "Not sure why flycheck disables working checkers." (interactive) - (let (( current-prefix-arg '(4))) ; C-u + (let ((current-prefix-arg '(4))) ; C-u (call-interactively 'flycheck-disable-checker))) (flymake-mode -1) @@ -426,7 +426,7 @@ Note that Emacs already has the ability to download and install grammars, so fol #+begin_src emacs-lisp (when (treesit-available-p) (use-package treesit - :straight (:type built-in) + :ensure nil ; built-in :preface (setq treesit-language-source-alist '((bash "https://github.com/tree-sitter/tree-sitter-bash") @@ -506,7 +506,7 @@ I like [[file:ha-programming-elisp.org::*Clever Parenthesis][Clever Parenthesis] #+begin_src emacs-lisp (when (treesit-available-p) (use-package combobulate - :straight (:host github :repo "mickeynp/combobulate") + :quelpa (:fetcher github :repo "mickeynp/combobulate") :after treesit :hook ((yaml-ts-mode . combobulate-mode) ;; (css-ts-mode . combobulate-mode) @@ -1322,7 +1322,7 @@ While I don't like writing them, I can't get away from them. Check out the goodi While filename extensions work fine most of the time, I don't like to pre-pend =.sh= to the shell scripts I write, and instead, would like to associate =shell-mode= with all files in a =bin= directory: #+begin_src emacs-lisp (use-package sh-mode - :straight (:type built-in) + :ensure nil ; built-in :mode (rx (or (seq ".sh" eol) "/bin/")) :init diff --git a/ha-remoting.org b/ha-remoting.org index f39284f..2eeed39 100644 --- a/ha-remoting.org +++ b/ha-remoting.org @@ -28,7 +28,7 @@ A literate configuration for accessing remote systems. [[https://www.emacswiki.org/emacs/TrampMode][Tramp]] allows almost all Emacs features to execute on a remote system. #+begin_src emacs-lisp (use-package tramp - :straight (:type built-in) + :quelpa (:type built-in) :config ;; Use remote PATH on tramp (handy for eshell). @@ -42,7 +42,7 @@ A literate configuration for accessing remote systems. Will Schenk has [[https://willschenk.com/articles/2020/tramp_tricks/][a simple extension]] to allow editing of files /inside/ a Docker container: #+begin_src emacs-lisp (use-package tramp - :straight (:type built-in) + :quelpa (:type built-in) :config (push '("docker" . ((tramp-login-program "docker") (tramp-login-args (("exec" "-it") ("%h") ("/bin/sh"))) @@ -75,7 +75,7 @@ Which means, I need to put it as a link in an org file. #+begin_src emacs-lisp (use-package tramp-sh :after tramp - :straight (:type built-in) + :quelpa (:type built-in) :custom (tramp-use-ssh-controlmaster-options nil)) #+end_src * Remote Terminals @@ -182,7 +182,7 @@ While not as fast as [[https://github.com/akermu/emacs-libvterm][vterm]], the [[ #+BEGIN_SRC emacs-lisp :tangle no (use-package eat - :straight (:host codeberg :repo "akib/emacs-eat" + :quelpa (:fetcher codeberg :repo "akib/emacs-eat" :files ("*.el" ("term" "term/*.el") "*.texi" "*.ti" ("terminfo/e" "terminfo/efo/e/*") ("terminfo/65" "terminfo/65/*") diff --git a/initialize b/initialize index a4c96a3..74f06fd 100755 --- a/initialize +++ b/initialize @@ -31,11 +31,11 @@ cat > "$HAMACS_DEST/early-init.el" < "$HAMACS_DEST/early-init.el" < "$HAMACS_DEST/init.el" < "$HAMACS_DEST/init.el" < "$HAMACS_DEST/init.el" <