A dependency-free, pywal-based, automatic, terminal-aware Emacs color-picker and theme generator.
Updates
ewal-doom-themes
have been added!ewal-wal-json-file
has been renamed toewal-json-file
.ewal-load-wal-colors
has been renamed toewal-load-colors
.ewal-get-color
has been renamed toewal-load-color
.ewal--get-color
has now been exposed asewal-get-color
. Both functions do the same thing, except thatewal-load-color
will always callewal-load-colors
first, whileewal-get-color
expects the user to do so first, for a marginal performance improvement.ewal-spacemacs-theme-*-high-contrast
have been deprecated. To achieve the same effect(setq ewal-shade-percent-difference 10)
TODOs
- Add
ewal-doom-themes
screenshots.
Overview
A theme isn’t just a colorscheme. ewal
lives by that. It uses pywal
as a backend to spruce up your Emacs setup by default, but also sports
over 200 built in palettes to do so if you don’t use the program (or
shudders, you use a DOS system).
It adds extra shades to pywal
palettes and makes your Emacs look
sexy in a GUI and in a terminal (pywal
users
only). ewal-spacemacs-themes
shows what ewal can do in 400 flavors
of spacemacs-theme
and doom-themes
, while ewal-evil-cursors
spices up, well, your evil cursors. It also provides a function to
colorize spaceline
accordingly. All these packages (with the
excepton of doom themes) are available on MELPA.
Screenshots
GUI
Terminal
Usage
These are the fundamentals. For more detail, see the docstrings.
Get a color and a specific shade (+ for ligther, - for darker):
(ewal-load-color 'magenta +4)
Use built-in palettes if your pywal
theme fails to load (otherwise
you just get a black-and-white theme and something about color being
nil):
(setq ewal-use-built-in-on-failure-p t)
Always use built-in palettes:
(setq ewal-use-built-in-always-p t)
Pick a built-in palette:
(setq ewal-built-in-palette "sexy-material")
Set custom folder and custom filename for pywal
scheme (if you use
wpgtk
or keep your own palette somewhere on your system):
(setq ewal-json-file "~/path/to/cache-file")
Use special cursor for insert state when evil insert bindings are disabled:
(setq ewal-evil-cursors-obey-evil-p t)
My config with all its warts:
(use-package ewal
:init (setq ewal-use-built-in-always-p nil
ewal-use-built-in-on-failure-p t
ewal-built-in-palette "sexy-material"))
(use-package ewal-spacemacs-themes
:init (progn
(setq spacemacs-theme-underline-parens t
my:rice:font (font-spec
:family "Source Code Pro"
:weight 'semi-bold
:size 11.0))
(show-paren-mode +1)
(global-hl-line-mode)
(set-frame-font my:rice:font nil t)
(add-to-list 'default-frame-alist
`(font . ,(font-xlfd-name my:rice:font))))
:config (progn
(load-theme 'ewal-spacemacs-modern t)
(enable-theme 'ewal-spacemacs-modern)))
(use-package ewal-evil-cursors
:after (ewal-spacemacs-themes)
:config (ewal-evil-cursors-get-colors
:apply t :spaceline t))
(use-package spaceline
:after (ewal-evil-cursors winum)
:init (setq powerline-default-separator nil)
:config (spaceline-spacemacs-theme))