emacs
a theme per variant, for emacs 28 and later. it colors the font-lock faces, including the tree-sitter ones from emacs 29, plus the mode line, tab bar, line numbers, search, parens, completions, diffs, flymake and the 16 terminal colors of shell and compilation buffers. tested on emacs 31.1.
files: rime-theme.el · rime-glacier-theme.el · rime-aurora-theme.el · rime-abyss-theme.el · rime-frost-theme.el · on github
install
mkdir -p ~/.emacs.d/themes
curl -fsSL https://raw.githubusercontent.com/w0x7y/rime/main/general/emacs/rime-theme.el -o ~/.emacs.d/themes/rime-theme.elother variants
rime-glacier
mkdir -p ~/.emacs.d/themes
curl -fsSL https://raw.githubusercontent.com/w0x7y/rime/main/general/emacs/rime-glacier-theme.el -o ~/.emacs.d/themes/rime-glacier-theme.elrime-aurora
mkdir -p ~/.emacs.d/themes
curl -fsSL https://raw.githubusercontent.com/w0x7y/rime/main/general/emacs/rime-aurora-theme.el -o ~/.emacs.d/themes/rime-aurora-theme.elrime-abyss
mkdir -p ~/.emacs.d/themes
curl -fsSL https://raw.githubusercontent.com/w0x7y/rime/main/general/emacs/rime-abyss-theme.el -o ~/.emacs.d/themes/rime-abyss-theme.elrime-frost
mkdir -p ~/.emacs.d/themes
curl -fsSL https://raw.githubusercontent.com/w0x7y/rime/main/general/emacs/rime-frost-theme.el -o ~/.emacs.d/themes/rime-frost-theme.elthen in your init.el:
(add-to-list 'custom-theme-load-path "~/.emacs.d/themes")
(load-theme 'rime t)other variants
rime-glacier
(add-to-list 'custom-theme-load-path "~/.emacs.d/themes")
(load-theme 'rime-glacier t)rime-aurora
(add-to-list 'custom-theme-load-path "~/.emacs.d/themes")
(load-theme 'rime-aurora t)rime-abyss
(add-to-list 'custom-theme-load-path "~/.emacs.d/themes")
(load-theme 'rime-abyss t)rime-frost
(add-to-list 'custom-theme-load-path "~/.emacs.d/themes")
(load-theme 'rime-frost t)the t skips emacs's question about whether to trust the theme. to switch variants, M-x disable-theme the old one before loading the next, or the two mix.
notes
- emacs has one keyword face, so
if,forandreturnshare the violet keyword color. font-lock-property-name-facecovers json keys and field definitions, which are rose, andfont-lock-property-use-facecovers field access, which is plain text.- in a terminal, emacs uses the exact colors when
COLORTERM=truecoloris set, and the nearest of 256 colors otherwise.