[[https://melpa.org/#/ewal][file:https://melpa.org/packages/ewal-badge.svg]] [[https://melpa.org/#/ewal-spacemacs-themes][file:https://melpa.org/packages/ewal-spacemacs-themes-badge.svg]] [[https://melpa.org/#/ewal-evil-cursors][file:https://melpa.org/packages/ewal-evil-cursors-badge.svg]]
[[./img/ewal.png]]
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 to =ewal-json-file=.
=ewal-load-wal-colors= has been renamed to =ewal-load-colors=.
=ewal-get-color= has been renamed to =ewal-load-color=. =ewal--get-color= has now been exposed as =ewal-get-color=. Both functions do the same thing, except that =ewal-load-color= will always call =ewal-load-colors= first, while =ewal-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 [[https://github.com/dylanaraps/pywal][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 [[./img/ewal.gif]] Terminal [[./img/ewal-terminal.png]]
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))