Koeeoadi is a web app for building color themes for Emacs and Vim (GUI only). Click here to check it out.
It’s somewhat different from other online theme creators because you can click directly on code to edit its styling. It also supports definition of custom faces. This means you can define styles for any Emacs face or Vim highlighting group. In addition to theme export, you can also save your theme to a .koee file for editing later.
I built Koeeoadi in order to learn more about Om Next, a very awesome Clojurescript framework for building web applications. I highly recommend checking it out if you haven’t already.
If you’re working on an Om Next app and using this repo as a reference, then please keep in mind that I’m still figuring out the best way to do things in Om so please don’t assume everything here is exemplary.
Koeeoadi expects you to style the default faces. These faces cover basic programming language syntax. The table below shows how Koeeoadi’s faces map to the built-in faces and highlighting groups of Emacs and VIM, respectively.
Koeeoadi Default Faces | Emacs Face | Vim Syntax Group |
---|---|---|
background | default | Normal |
default | default | Normal |
builtin | font-lock-builtin-face | - |
comment-delimiter | font-lock-comment-delimiter-face | Comment |
comment | font-lock-comment-face | Comment |
constant | font-lock-constant-face | Constant |
doc | font-lock-doc-face | Comment |
function-name | font-lock-function-name-face | Function |
keyword | font-lock-keyword-face | Exception - Label - Repeat - Conditional - Keyword |
preprocessor | font-lock-preprocessor-face | PreProc - Include - Define - Macro - PreCondit |
string | font-lock-string-face | String |
type | font-lock-type-face | Type |
variable-name | font-lock-variable-name-face | Identifier |
There are two themes included with Koeeoadi that contain the most common VIM and Emacs faces. These are called ‘vim-theme-all-faces’ and ‘emacs-theme-all-faces’. You may want to use those out if you’re looking to build an extensive theme.
Pull requests are welcome.