(macros)
Customization

Themes & faces

Macros styles text through faces (named foreground/background/weight bundles) and bundles them into themes. Both are Scheme, so you can load a theme, tweak individual faces, or write a theme of your own.

Loading a theme

(load-theme "macros-dark")   ; built-in themes live in scheme/themes/*.scm

Put load-theme in your init.scm. The two built-in themes are "macros-light" and "macros-dark"; the default config loads "macros-dark".

Setting faces

Override or define a face with set-face:

;; Tweak a single face after loading a theme.
(set-face "comment" "#7a8a6a")

Faces are referenced by name throughout the editor — syntax categories, diff lines, headings, diagnostics severities, and the rainbow-delimiter palette are all faces. A theme that doesn't define a particular face falls back to the default foreground, so partial themes are fine.

The overlay-face layer

Some features paint overlay faces — sub-line color spans layered on top of the buffer. Rainbow delimiters, LSP semantic tokens, Org heading colors, and Magit diff accents all share this one layer. Two features that both want it in the same buffer will fight, so enable just one per buffer (e.g. disable rainbow for a buffer where you turn on semantic tokens).

Line numbers & chrome

The display chrome is controlled with options (see Configuration):

(set-option "line-numbers" #t)       ; gutter (per major mode)
(set-option "scroll-bar"   #t)
(set-option "cursor-style" "auto")   ; "auto" | "bar" | "block"

Line numbers are a per-mode option — toggle the current mode live with M-x line-numbers-mode, or scope it to one mode:

(set-option "line-numbers:dired-sidebar-mode" #f)

scroll-bar-mode similarly toggles the scroll bar live.

Rainbow palette

The rainbow-delimiter colors are registered as faces rainbow-1rainbow-N, so a theme can style them and you can change the palette directly — see Rainbow & tree-sitter.