diff --git a/bootstrap.org b/bootstrap.org index 337b253..5cd17b4 100644 --- a/bootstrap.org +++ b/bootstrap.org @@ -27,8 +27,6 @@ A literate programming file for bootstraping my Emacs Configuration. * Introduction This file contains all the variable definitions and library loading for the other files in my project. -I'm installing everything using the [[https://github.com/raxod502/straight.el#getting-started][straight.el]] for package installation and management. This is initialization code configured in [[file:initialize][initialize]], and calls to =use-package= now accepts a =:straight= parameter that allows me to retrieve special versions of some packages. - See the details in [[https://dev.to/jkreeftmeijer/emacs-package-management-with-straight-el-and-use-package-3oc8][this essay]]. * Initial Settings @@ -98,7 +96,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) + :init (defun first (elt) (car elt)) :commands (first)) diff --git a/ha-applications.org b/ha-applications.org index d8704e1..48b0d19 100644 --- a/ha-applications.org +++ b/ha-applications.org @@ -28,8 +28,11 @@ A literate programming file configuring critical applications. Can we call the following /applications/? I guess. * Git and Magit Can not live without [[https://magit.vc/][Magit]], a Git porcelain for Emacs. I stole the bulk of this work from Doom Emacs. + #+begin_src emacs-lisp + (use-package magit) (use-package magit + :load-path "~/.emacs.d/repos/magit" ;; See https://github.com/magit/magit/wiki/Emacsclient for why we need to set: :custom (with-editor-emacsclient-executable "emacsclient") @@ -87,7 +90,7 @@ Can not live without [[https://magit.vc/][Magit]], a Git porcelain for Emacs. I ** VC Diff Highlight The [[https://github.com/dgutov/diff-hl][diff-hl project]], while more active, has more features than the [[https://github.com/syohex/emacs-git-gutter-fringe][git-gutter-fringe]] project. -#+BEGIN_SRC emacs-lisp +#+BEGIN_SRC emacs-lisp :tangle no (use-package diff-hl :custom (diff-hl-side 'right) @@ -100,7 +103,7 @@ The [[https://github.com/dgutov/diff-hl][diff-hl project]], while more active, h Turning on the mode, as well as binding some new /leader/ keys: -#+BEGIN_SRC emacs-lisp +#+BEGIN_SRC emacs-lisp :tangle no (use-package diff-hl :config (global-diff-hl-mode) @@ -121,7 +124,7 @@ Turning on the mode, as well as binding some new /leader/ keys: This project (and others) can use repeat mode, but -#+BEGIN_SRC emacs-lisp +#+BEGIN_SRC emacs-lisp :tangle no (repeat-mode) #+END_SRC @@ -214,7 +217,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")) + ;; :vc (:url "https://github.com/emacs-straight/compat")) (use-package magit-section :commands magit-thing-at-point) @@ -310,7 +313,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")) + ;; :vc (:url "https://github.com/sigma/gh.el")) #+end_src ** Forge @@ -408,6 +411,7 @@ Web pages look pretty good with EWW, but I'm having difficulty getting it to ren #+begin_src emacs-lisp (use-package eww + :after major-mode-hydra :init (setq browse-url-browser-function 'eww-browse-url browse-url-secondary-browser-function 'browse-url-default-browser @@ -506,7 +510,8 @@ 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") + ;; :vc (:url "https://github.com/chenyanming/shrface") + :after major-mode-hydra :config (shrface-basic) ;; (shrface-trial) @@ -641,7 +646,7 @@ 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 @@ -652,7 +657,7 @@ And [[https://www.masteringemacs.org/article/dired-shell-commands-find-xargs-rep #+begin_src emacs-lisp (use-package dired-x - :straight (:type built-in)) + ) #+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 ~&~. @@ -666,7 +671,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") + ;; :vc (:url "https://github.com/alexluigit/dirvish") :init (dirvish-override-dired-mode) :custom @@ -872,6 +877,8 @@ The [[Evil Collection][evil-collection]] package adds the following keybindings: I’d like write notes in org files that link to the PDFs (and maybe visa versa), using the [[https://github.com/weirdNox/org-noter][org-noter]] package: #+begin_src emacs-lisp (use-package org-noter + :load-path "/User/howard.abrams/.emacs.d/repos/org-noter" + :after major-mode-hydra :config (major-mode-hydra-define org-noter-doc-mode-map nil ("Notes" diff --git a/ha-aux-apps.org b/ha-aux-apps.org index 31db7ed..cd1422e 100644 --- a/ha-aux-apps.org +++ b/ha-aux-apps.org @@ -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") + ;; :vc (:url "https://codeberg.org/martianh/mastodon.el") :init (setq mastodon-instance-url "https://pdx.social" mastodon-active-user "howard")) @@ -95,7 +95,7 @@ Let’s turn on non-fixed-width fonts to make everything easier to read: 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 (use-package ement - :straight (:host github :repo "alphapapa/ement.el") + ;; :vc (:url "https://github.com/alphapapa/ement.el") :config (major-mode-hydra-define ement-room-mode (:quit-key "q") ("Send" @@ -189,7 +189,7 @@ Been working on my [[https://gitlab.com/howardabrams/emacs-rpgdm][RPG DM project #+begin_src emacs-lisp (when (f-directory? "~/src/emacs-rpgdm") (use-package rpgdm - :straight (:local-repo "~/src/emacs-rpgdm") + :load-path "~/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)))) @@ -199,7 +199,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") + :load-path "~/src/emacs-rpgtk" :after hydra ;; :commands (rpgtk-mode rpgtk-tables-load rpgtk-dice rpgtk-message) :custom @@ -217,7 +217,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") + :load-path "~/src/emacs-ironsworn" :init (setq rpgdm-ironsworn-project (expand-file-name "~/src/emacs-ironsworn") ;; Ignore org links that call my RPG functions: @@ -234,7 +234,7 @@ Why not? Let’s see if the [[https://github.com/isamert/empv.el][empv]] project What else? #+begin_src emacs-lisp (use-package empv - :straight (:host github :repo "isamert/empv.el") + ;; :vc (:url "https://github.com/isamert/empv.el") :general (ha-leader "a p" '(empv-map :wk "play music"))) #+end_src diff --git a/ha-capturing-notes.org b/ha-capturing-notes.org index 8e261e6..14f8668 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") + ;; :vc (:url "https://gitlab.com/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 2961f70..10bd407 100644 --- a/ha-config.org +++ b/ha-config.org @@ -146,7 +146,8 @@ 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")) + ;; :vc (:url "https://github.com/tecosaur/emacs-everywhere") + ) #+end_src This package /called outside of Emacs/, so I bound a keybinding to iCanHazShortcut: @@ -225,7 +226,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)) @@ -336,10 +336,13 @@ The [[https://github.com/minad/vertico][vertico]] package puts the completing re (use-package vertico :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")) + :load-path "~/.emacs.d/repos/vertigo/extensions" + ;; :straight (:files ("~/.emacs.d/straight/repos/vertico/extensions/vertico-directory.el")) ;; More convenient directory navigation commands :bind (:map vertico-map ("RET" . vertico-directory-enter) @@ -380,7 +383,7 @@ 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") + ;; ;; :vc (:url "https://github.com/jojojames/fussy") :config (push 'fussy completion-styles) (setq completion-category-defaults nil @@ -571,7 +574,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") + ;; :vc (:url "https://github.com/minad/cape") :init (setq completion-at-point-functions (list #'cape-emoji))) #+END_SRC @@ -592,10 +595,11 @@ After using [[http://company-mode.github.io/][company]] for my completion back- #+begin_src emacs-lisp (use-package corfu + ;; :vc (:url "https://github.com/minad/corfu") :custom (corfu-cycle t) (corfu-separator ?\s) - :init + :config (global-corfu-mode)) #+end_src *** Snippets @@ -673,7 +677,7 @@ As I've mentioned [[http://www.howardism.org/Technical/Emacs/beep-for-emacs.html 'libnotify))) (use-package beep - :straight (:local-repo "~/src/hamacs/elisp") + :load-path "~/src/hamacs/elisp" :hook (after-init . ha-random-startup-message) :commands (beep-when-finished beep-when-run-too-long) :config @@ -1162,7 +1166,6 @@ 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) :custom (epg-debug t) (auth-source-debug t) diff --git a/ha-demos.org b/ha-demos.org index 76721eb..a9f3599 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") + :load-path "~/src/demo-it" + ;; :vc (:url "https://github.com/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") + ;; :vc (:url "https://github.com/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") + ;; :vc (:url "https://github.com/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")) + ;; :vc (:url "https://github.com/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")) + ;; :vc (:url "https://github.com/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") + ;; :vc (:url "https://github.com/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 718ebd2..b92e3b8 100644 --- a/ha-display.org +++ b/ha-display.org @@ -86,7 +86,7 @@ either be "there or not" which resulted large jumps and large distractions. #+BEGIN_SRC emacs-lisp (use-package ultra-scroll - :straight (:type git :host github :repo "jdtsmith/ultra-scroll") + ;; :vc (:url "https://github.com/jdtsmith/ultra-scroll") :config (setq scroll-conservatively 101 ; important! scroll-margin 0) @@ -97,7 +97,7 @@ Large screen, lots of windows, so where is the cursor? While I used to use =hl-l #+begin_src emacs-lisp (use-package pulsar - :straight (:host github :repo "protesilaos/pulsar") + ;; :vc (:url "https://github.com/protesilaos/pulsar") :custom (pulsar-face 'pulsar-generic) (pulsar-delay 0.15) @@ -159,7 +159,7 @@ Am I ever really ever satisfied with any font? I regularly change my font based #+begin_src emacs-lisp (use-package mixed-pitch - ;; :straight (:host github :repo "jabranham/mixed-pitch") + ;; ;; :vc (:url "https://github.com/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) @@ -389,7 +389,7 @@ This project replaces [[https://github.com/domtronn/all-the-icons.el][all-the-ic #+BEGIN_SRC emacs-lisp (use-package nerd-icons - :straight (nerd-icons :type git :host github :repo "rainstormstudio/nerd-icons.el") + ;; :vc (:url "https://github.com/rainstormstudio/nerd-icons.el") :custom ;; The Nerd Font you want to use in GUI defaults to fixed-font: (nerd-icons-font-family ha-fixed-font)) @@ -638,7 +638,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") + ;; :vc (:url "https://github.com/tarsius/hl-todo") :config (setq hl-todo-keyword-faces `(("TODO" . ,(face-foreground 'warning)) @@ -654,7 +654,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") + ;; :vc (:url "https://github.com/liuyinz/consult-todo") :init (defconst consult-todo--narrow '((?t . "TODO") diff --git a/ha-email.org b/ha-email.org index 99d2ec3..7ed03b1 100644 --- a/ha-email.org +++ b/ha-email.org @@ -737,7 +737,7 @@ 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..63bf96a 100644 --- a/ha-eshell.org +++ b/ha-eshell.org @@ -30,7 +30,7 @@ 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 +976,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") + ;; :vc (:url "https://github.com/joddie/pcre2el") :config (defmacro prx (&rest expressions) "Convert the rx-compatible regular EXPRESSIONS to PCRE. @@ -1378,7 +1378,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") + ;; :vc (:url "https://codeberg.org/akib/emacs-eat") :hook (eshell-load . eat-eshell-visual-command-mode)) #+end_src @@ -1787,7 +1787,7 @@ 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 329113e..a4e7f69 100644 --- a/ha-evil.org +++ b/ha-evil.org @@ -402,7 +402,7 @@ 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" @@ -489,8 +489,9 @@ Notes: ** Evil Jump, er Better Jump The [[https//github.com/gilbertw1/better-jumper][better-jumper project]] replaces the [[https://github.com/bling/evil-jumper][evil-jumper project]], essentially allowing you jump back to various movements. While I already use ~g ;~ to jump to the last change, this jumps /to the jumps/ … kinda. I’m having a difficult time determining /what jumps/ are remembered. -#+begin_src emacs-lisp +#+begin_src emacs-lisp :tangle no (use-package better-jumper + ;; :vc (:url "https//github.com/gilbertw1/better-jumper") :config (better-jumper-mode +1) diff --git a/ha-general.org b/ha-general.org index a4e6b54..44465e0 100644 --- a/ha-general.org +++ b/ha-general.org @@ -880,7 +880,7 @@ 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-literate.org b/ha-org-literate.org index ed6db05..8599be1 100644 --- a/ha-org-literate.org +++ b/ha-org-literate.org @@ -2,7 +2,7 @@ #+author: Howard Abrams #+date: 2024-07-07 #+filetags: emacs hamacs -#+lastmod: [2025-02-20 Thu] +#+lastmod: [2025-09-09 Tue] A literate programming file for literate programming in Emacs Org Files. @@ -862,11 +862,13 @@ I would like to make the /filename/ more readable, I use the =s-match= again, to #+begin_src emacs-lisp (defun ha-hamacs-edit--file-title (file) "Return a more readable string from FILE." - (s-with file - (s-match ha-hamacs-edit-file-to-title) - (second) - (s-replace "-" " ") - (s-titleize))) + (if file + (s-with file + (s-match ha-hamacs-edit-file-to-title) + (second) + (s-replace "-" " ") + (s-titleize)) + file)) (defvar ha-hamacs-edit-file-to-title (rx (optional (or "README-" "ha-")) diff --git a/ha-org-publishing.org b/ha-org-publishing.org index 6a13fc4..d54fd1a 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")) + ;; :vc (:url "https://github.com/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")) + ;; :vc (:url "https://github.com/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") + ;; :vc (:url "https://github.com/tonyaldon/jack") :commands (jack-html)) #+end_src diff --git a/ha-org-word-processor.org b/ha-org-word-processor.org index d4f89d5..9421522 100644 --- a/ha-org-word-processor.org +++ b/ha-org-word-processor.org @@ -110,7 +110,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") + ;; :vc (:url "https://github.com/awth13/org-appear") :init (setq org-appear-trigger 'manual) :hook ((org-mode . (lambda () @@ -331,7 +331,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") + ;; :vc (:url "https://github.com/minad/org-modern") :after org :hook ((org-mode . org-modern-mode) (org-agenda-finalize . org-modern-agenda)) @@ -367,7 +367,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") + ;; :vc (:url "https://github.com/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 fb734d3..7903d51 100644 --- a/ha-org.org +++ b/ha-org.org @@ -3,7 +3,7 @@ #+date: 2020-09-18 #+tags: emacs org #+startup: inlineimages -#+lastmod: [2025-07-01 Tue] +#+lastmod: [2025-09-08 Mon] A literate programming file for configuring org-mode and those files. @@ -32,7 +32,7 @@ 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 <> @@ -278,7 +278,7 @@ 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 @@ -489,8 +489,12 @@ 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 deflate + :vc (:url "https://github.com/skuro/deflate.git")) + (use-package plantuml-mode - :straight (:host github :repo "skuro/plantuml-mode") + ;; :vc (:url "https://github.com/skuro/plantuml-mode") + :after deflate :init (setq org-plantuml-jar-path (expand-file-name "~/bin/plantuml.jar"))) #+end_src @@ -543,8 +547,7 @@ 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") + ;; :vc (:url "https://github.com/kljohann/pikchr-mode") :custom (pikchr-executable "~/bin/pikchr")) #+end_src @@ -732,7 +735,7 @@ 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 + ; Located in my "elisp" directory :config (ha-leader :keymaps 'org-mode-map "o E" '("to confluence" . ox-export-to-confluence))) @@ -743,7 +746,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") + ;; :vc (:url "https://github.com/tonyaldon/jack") :commands (jack-html)) #+end_src @@ -800,7 +803,7 @@ 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) @@ -851,7 +854,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")) + ;; :vc (:url "https://github.com/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) @@ -1250,7 +1253,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") + ;; :vc (:url "https://gitlab.com/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..5d648e9 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") + ;; :vc (:url "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") + ;; :vc (:url "https://github.com/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") + ;; :vc (:url "https://github.com/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") + ;; :vc (:url "https://gitlab.com/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") + ;; :vc (:url "https://github.com/emacsmirror/poly-ansible") :after ansible) #+END_SRC diff --git a/ha-programming-clojure.org b/ha-programming-clojure.org index a520579..5b69b40 100644 --- a/ha-programming-clojure.org +++ b/ha-programming-clojure.org @@ -247,7 +247,7 @@ 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..daa2080 100644 --- a/ha-programming-elisp.org +++ b/ha-programming-elisp.org @@ -71,7 +71,11 @@ And we should extend it with the [[https://github.com/xuchunyang/elisp-demos][el Wilfred’s [[https://github.com/Wilfred/suggest.el][suggest]] function helps you find the right function. Basically, you type in the parameters of a function, and then the desired output, and it will write the function call. #+begin_src emacs-lisp - (use-package suggest) + (use-package spinner + :vc (:url "https://github.com/Malabarba/spinner.el")) + + (use-package suggest + :after spinner) #+end_src * Navigation ** Goto Definitions @@ -280,7 +284,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") + ;; ;; :vc (:url "https://github.com/Wilfred/emacs-refactor") :config (pretty-hydra-define+ lisp-refactor nil ("To 𝛌" @@ -366,3 +370,4 @@ Let's =provide= a name so we can =require= this file: #+options: num:nil toc:t todo:nil tasks:nil tags:nil date:nil #+options: skip:nil author:nil email:nil creator:nil timestamp:nil #+infojs_opt: view:nil toc:t ltoc:t mouse:underline buttons:0 path:http://orgmode.org/org-info.js +exit diff --git a/ha-programming-haskell.org b/ha-programming-haskell.org index 459219d..ba0a735 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) + :config (add-to-list 'org-babel-load-languages '(haskell . t))) #+end_src diff --git a/ha-programming-python.org b/ha-programming-python.org index 2aea760..4cac7fe 100644 --- a/ha-programming-python.org +++ b/ha-programming-python.org @@ -267,8 +267,7 @@ The [[https://elpy.readthedocs.io/en/latest/introduction.html][Elpy Project]] ex #+BEGIN_SRC emacs-lisp (use-package elpy - :ensure t - :init + :config (elpy-enable)) #+END_SRC diff --git a/ha-programming-scheme.org b/ha-programming-scheme.org index 412d2ad..2baaad8 100644 --- a/ha-programming-scheme.org +++ b/ha-programming-scheme.org @@ -57,7 +57,7 @@ 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 +122,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") + ;; :vc (:url "https://github.com/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 d1a28f5..e0426d2 100644 --- a/ha-programming.org +++ b/ha-programming.org @@ -58,7 +58,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) + :init (setq hs-hide-comments t hs-hide-initial-comment-block t @@ -212,7 +212,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") + ;; :vc (:url "https://github.com/flycheck/flycheck") :init (setq next-error-message-highlight t) :bind (:map flycheck-error-list-mode-map @@ -400,7 +400,7 @@ However, Emacs already has the ability to download and install grammars, so foll #+begin_src emacs-lisp (when (treesit-available-p) (use-package treesit - :straight (:type built-in) + :preface (setq treesit-language-source-alist '((bash "https://github.com/tree-sitter/tree-sitter-bash") @@ -480,7 +480,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") + ;; :vc (:url "https://github.com/mickeynp/combobulate") :after treesit :hook ((yaml-ts-mode . combobulate-mode) ;; (css-ts-mode . combobulate-mode) @@ -730,7 +730,7 @@ The [[https://github.com/emacs-lsp/lsp-ui/blob/master/lsp-ui-imenu.el][lsp-imenu #+begin_src emacs-lisp :tangle no (use-package lsp-ui-imenu - :straight nil + :after lsp-ui :config (ha-local-leader :keymaps 'prog-mode-map @@ -1296,7 +1296,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) + :mode (rx (or (seq ".sh" eol) "/bin/")) :init diff --git a/ha-remoting.org b/ha-remoting.org index cbe0992..f9a27f7 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) + :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) + :config (push '("docker" . ((tramp-login-program "docker") (tramp-login-args (("exec" "-it") ("%h") ("/bin/sh"))) @@ -72,7 +72,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) + :custom (tramp-use-ssh-controlmaster-options nil)) #+end_src * Remote Terminals @@ -159,12 +159,13 @@ 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" - :files ("*.el" ("term" "term/*.el") "*.texi" - "*.ti" ("terminfo/e" "terminfo/efo/e/*") - ("terminfo/65" "terminfo/65/*") - ("integration" "integration/*") - (:exclude ".dir-locals.el" "*-tests.el"))) + ;; :straight (:host codeberg :repo "akib/emacs-eat" + ;; :files ("*.el" ("term" "term/*.el") "*.texi" + ;; "*.ti" ("terminfo/e" "terminfo/efo/e/*") + ;; ("terminfo/65" "terminfo/65/*") + ;; ("integration" "integration/*") + ;; (:exclude ".dir-locals.el" "*-tests.el"))) + ;; :vc (:url "https://codeberg.org/akib/emacs-eat") :commands (eat eat-make eat-project) :bind (:map eat-semi-char-mode-map ("C-c C-t" . ha-eat-narrow-to-shell-prompt-dwim)) diff --git a/initialize b/initialize index b04a962..7288e8f 100755 --- a/initialize +++ b/initialize @@ -79,8 +79,23 @@ cat > "$HAMACS_DEST/init.el" < "$HAMACS_DEST/init.el" <