Posts
-
Creating Emacs Color Themes, Revisited
Creating Emacs color themes is a topic I hadn’t thought much about in recent years. My first theme (Zenburn) has been in maintenance mode for ages, and Solarized mostly runs itself at this point. But working on my ports of Tokyo (Night) Themes and Catppuccin (Batppuccin) made me re-examine the whole topic with fresh eyes. The biggest shift I’ve noticed is that multi-variant themes (light/dark/high-contrast from a shared codebase) have become the norm rather than the exception, and that pattern naturally leads to reusable theming infrastructure.
The task has always been simultaneously easy and hard. Easy because
defthemeandcustom-theme-set-facesare well-documented and do exactly what you’d expect. Hard because the real challenge was never the mechanics – it’s knowing which faces to theme and keeping your color choices consistent across hundreds of them.Note: In Emacs, a face is a named set of visual attributes – foreground color, background, bold, italic, underline, etc. – that controls how a piece of text looks. Themes work by setting faces to match a color palette. See also the Elisp manual’s section on custom themes for the full API.
Read More -
Automatic Light/Dark Theme Switching
Most theme families these days ship both light and dark variants. For example, Tokyo Themes has
Read Moretokyo-day(light) alongsidetokyo-night,tokyo-storm, andtokyo-moon(all dark). Batppuccin hasbatppuccin-latte(light) andbatppuccin-mocha,batppuccin-macchiato,batppuccin-frappe(dark). But switching between them manually gets old fast. Here are a few ways to automate it. -
Paredit's Keybinding Conflicts
Today’s topic came up while I was going over the list of open Prelude issues after doing the recent 2.0 release.
Paredit and smartparens are structural editing packages that keep your parentheses balanced and let you manipulate s-expressions as units – essential tools for anyone writing Lisp. Paredit has been around since 2005 and its keybindings have become muscle memory for a generation of Lisp programmers (yours truly included). Smartparens inherits the same keymap when used with
sp-use-paredit-bindings.The problem is that some of those keybindings conflict with standard Emacs key prefixes that didn’t exist when paredit was written – or that have grown more important over time.
Read More -
Emacs Prelude: Redux
Programmers know the benefits of everything and the tradeoffs of nothing.
– Rich Hickey
Earlier today I wrote about Emacs Redux turning 13. That felt like the perfect occasion to also ship something I’ve been working towards for a while – Emacs Prelude 2.0.
Read More -
Happy 13th Birthday, Emacs Redux!
13 is my lucky number, so I’m not going to worry about it.1
– Taylor Swift
Exactly 13 years ago today I published the first Emacs Redux post and kicked off what has become one of the longest running projects in my life. Time flies!
Read More-
Same here I guess, given I was born on the 13th. ↩
-
Subscribe via RSS | View Older Posts