Circadian tries to help reducing eye strain that may arise from difference of your display brightness and the surrounding light.
Inspired by color temperature shifting tools and brightness adaption software like:
Install circadian.el with use-package or straight.el
To auto-switch a theme on a specific time, use time strings:
(use-package circadian
:ensure t
:config
(setq circadian-themes '(("8:00" . wombat)
("19:30" . adwaita)))
(circadian-setup))
:sunrise
and :sunset
To auto-switch a theme based on your current locations sunrise and sunset times:
(setq calendar-latitude 40.712776)
(setq calendar-longitude -74.005974)
circadian-themes
using the :sunset
and :sunset
(use-package circadian
:ensure t
:config
(setq circadian-themes '((:sunrise . adwaita)
(:sunset . wombat)))
(circadian-setup))
Circadian.el can randomly select a theme from a given list, e.g here using doom-themes at sunset:
(use-package doom-themes)
(use-package circadian
:config
(setq circadian-themes '((:sunrise . doom-gruvbox-light)
(:sunset . (doom-dracula doom-gruvbox))))
(add-hook 'emacs-startup-hook #'circadian-setup)
(circadian-setup))
To use custom themes, install them from MELPA using e.g. use-package or straight.el.
Example usage featuring hemera-themes
and nyx-theme (with use-package). Make sure
to use :defer
keyword. Omitting it may lead to broken colors
(see issue 9):
;; Install additinal themes from melpa
;; make sure to use :defer keyword
(use-package hemera-theme :ensure :defer)
(use-package nyx-theme :ensure :defer)
By default circadian will not log any messages. however for development or just getting more information, one can enable a more verbose message log:
(setq circadian-verbose t)
circadian provides two hooks:
circadian-before-load-theme-hook
circadian-after-load-theme-hook
e.g. I like to override any themes cursor color to a very bright color via:
(add-hook 'circadian-after-load-theme-hook
#'(lambda (theme)
;; Line numbers appearance
(setq linum-format 'linum-format-func)
;; Cursor
(set-default 'cursor-type 'box)
(set-cursor-color "#F52503")))
Install Emacs cask environment. On macOS you
canr use homebrew with: brew install cask
.
git clone git@github.com:guidoschmidt/circadian.el.git
cd
into the git project directory with cd circadian.el
and install dependencies via cask
make test