Sydmacs

My Emacs config. This particual iteration is an effort to drop Doom Emacs.

Tasks

Strategies

evil-leap

Evil-mode port of leap.nvim.

Consider Straight.el vs. Elpaca

Progfolio, maintainer of Straight and Elpaca:

It's a redesign based on the lessons I learned from helping maintain straight.el for a few years. For anyone starting from scratch, I would recommend it over straight.el. If you currently use straight.el, I would recommend migrating to Elpaca when you have time.

Note that Elpaca is not feature-complete when compared to Straight. Most notably, lockfiles are not perfect.

Fix missing info manuals

Observations for debugging

  • Initially, it appears to be related to gzipped info files. Without rigorous experimentation, all files returned by find $Info-directory-list -name '*.gz' are missing from the index.

  • Emacs actually is able to find many of the manuals I'd thought to be missing! While they are missing from the index (i.e. (info)), they are found with the following commands:

  • I'm fairly certain I've found the issue. Read the penultimate paragraph of info's docstring. The index is generated from files named dir, I guess. See the files spit out by find $Info-directory-list -name dir (in Eshell).

  • For now, I'll just use M-x consult-info. No longer a priority.

Split out tf2.nix

Keybinds to jump to "bookmarked" files/projects

Don't kill buffers open in other windows

It's usually an accident, when I do it.

  • If a buffer is open in >1 window, switch to next buffer

  • (message "Refusing to kill buffer open in other window")

Evil repeat org-schedule

E.g., after setting a schedule, use . to repeat that same schedule for other items.

Vterm

M-w M-w ( to wrap with parens with opening paren on a new line

Agenda on start screen

Clojure: toggle the form (representing a dependency) at point between Lein's syntax and Deps.clj's

Integrate Elfeed into agenda view?

Interactively select a path to insert

SPC i p to insert an absolute path, SPC i P to insert a relative path.

Eat + Eshell

Fix Org-mode indentation

Syncthing + Ediff

Fix SPC u

Currently doesn't work when used in repetition, e.g. SPC u SPC u

Make scratch buffer unkillable

When an attempt on her life is made, just bury her (alive).

Use ripgrep for M-x grep

Figure out a good way to track "status" notes

Closing notes, "this is WAIT/HOLD because..."

Replace evil-append-line in repl buffers to move to EOB

Nix-mode: Q surround pair for ''these''

Org DWIM on RET

Open links

Footnotes

Integrate Eshell with Evil registers

I'm imagining cat some-file > /dev/reg/+

Completions w/ Corfu

When visiting a package, set read-only mode by default

IDEA Evil :rxs command

Like :s, but uses the rx macro.

Overlay org-mode links with the domain name

For some websites, abbreviations are welcome. e.g. a link to Wikipedia could appear as

ArticleW

(where the «W» is a superscript W)

Hide Org-mode markup only when not editing

Preview LaTeX fragments in Org-mode when not editing

Show jj commit description in modeline

Block escaping with jk whilst recording a macro

Many editing commands should re-indent after use

Particularly in Lisps where indentation is reliable.

  • evil-join

(lambda (x) ...) → (λ (x) ...)

Ligatures

syd-open-sexp-above should understand comments

If a comment immediately proceeds a sexp, open the new sexp before the comment. Transpose/drag commands should probably have the same behaviour.

ESC should :nohl

Implement evil-cleverparens's evil-cp--guard-point

  • Emacs and Vim have differing views on where the point is w.r.t. the on-screen cursor. The evil-cp--guard-point macro is used to adapt Emacsy expectations to Vimmy ones.

Fix syd-get-enclosing-sexp

  • Undesireable behaviour when point is in a comment.

Scratch buffer: SPC x to open as popup, SPC u SPC x to not

Polish up doom-popup

Set org-mode keybindings

KILL A new popup system that uses popup windows rather than popup buffers

  • Would allow you to open arbitrary buffers in a popup view.

Evil operators like = should not move point

ESC should immediately close minibuffer, even whilst in insert state

Daemon

Encryption

Mutable config

Path is currently hardcoded to /persist/dots/users/crumb/programs/emacs. An immutable file (created by home-manager's programs.emacs.extraConfig) loads init.el from the hardcoded path.

KILL Packages via Nixpkgs

It's inconvenient as fuck. }:)

Roam

Dailies

Tags: project, readinglist

Disassemble project-ideas.org and reading-list.org into a individual roam nodes.

Capture templates

IDEA Export to GitLab issue?

Config TODO list / pain-point list

Default fonts

  • fixed-pitch: Victor Mono NF

  • variable-pitch: Overpass

  • backup: Julia Mono

Lisp editing

KILL Paxedit

Seems old and broken?

Text objects

speed-of-thought

rainbow-delimiters

emacs-refactor

elfmt

string-edit

elisp-docstring

Drag sexps with M-S-j / M-S-k

page-break-lines

project.el

Workspaces

Prose minor mode

KILL Grammar-checking

Spell-checking

Lookup handlers

Repl-handling

Popup-handling

Comint

Eshell

Prompt

Greeting

Aliases

Evil

Project integration

Syntax highlighting

C-d

Snippets

File templates

Project templates

Magit

Forges

Prettier Vertico

Doom has some nice output when viewing files in Vertico. I'm not sure how this is achieved.

Dired/Dirvish

SPC i

SPC i u (insert Unicode)

SPC i s (insert snippet)

Requires Snippets

SPC i e (insert emoji)

SPC o

SPC o t (open terminal)

SPC o e (open Eshell)

SPC t

SPC t b

Toggle big font.

SPC t r

Toggle read-only.

Vertico repeat

so-long-mode

Consult icons

compile-multi-all-the-icons

Language support

Clojure

Haskell

Jump to prev/next hole w/ [h / ]h

Nix

Elisp

Tune GC w/ gcmh

IDEA Email?

IDEA map! macro

IDEA Module system?

One-off environment changes without direnv

I would like the ability to ergonomically e.g. add HLS to my current environment without setting up an entire project. Perhaps something like "create new workspace under a nix-shell invocation" could work?

minibuffer

jk to escape

history navigation in insert mode w/ C-j / C-k

RET to send whilst in normal mode

set up JuliaMono for use with ipa: links

text-mode

org-mode

init.org for beorg
KILL IPA links
capture templates
journal entry
todo
fancy headline stars
better colour for inline code

variable pitch

KILL set up emms

it kinda sucks. }:\

set up JuliaMono for use with IPA glyphs

KILL literate config

Just kind of a pain in the ass. }:)

KILL evil-cp fixes

( / )

When ) is hit whilst the cursor is at ↓1, it should move to the matching bracket, ↓2, not the right bracket of the save-excursion call.

(save-excursion
;;  ↓1                ↓2
(re-search-forward))

element text objects

automatically close compilation buffer

fix [e / ]e

Eshell trail à la M-x calc

I really like how you re-examined shells and terminals. I hadn't thought of how they're kinda unrelated. What I then don't understand is why eshell stuck to the paradigm of interleaving input and output. It's a relic left over from terminals. ie: >>> input [tonnes of output] >>> input [tonnes of output] to me it seems the input should be entered in the minibuffer (or some separate frame/window) and the outputs should be in a separate window/frame with separate read-only buffers.

source

References

Please see Sydnix's references for now. I hope to eventually split out Emacs references and put them here, but for now they will exist as a single list.