#+title: Ouroboros Themes
#+author: Jakub Nowak

Ouroboros is a collection of four emacs themes inspired by the alchemical process: melanosis, leucosis, xanthosis, and iosis.

These four stages correspond to four colours which are the focal point of each theme.

They also correspond to four stages of the day, with future intent being to transition between themes depending on the current time - a dynamic theme. This is currently limited by me not knowing a good way to interpolate theme colors in emacs.

| Theme     | Primary    | Time of Day | Inspiration   |
|-----------+------------+-------------+---------------|
| Melanosis | Black      | Midnight    | Night Sky     |
| Xanthosis | Yellow     | Dawn        | Yellowing ABS |
| Leucosis  | White      | Mid-day     | Opal          |
| Iosis     | Red/Purple | Dusk        | Sunset        |

* Installation
The four theme files in this repository can be copied to your emacs user directory, where emacs will recognise them on startup.

Alternatively, the following snippet can be used to install the themes via Straight.
#+begin_src elisp
  ;; Load package through straight
  (straight-use-package
   '(ouroboros-emacs-themes :type git
  			  :host nil
  			  :repo "https://git.cyan.sh/BirDt/ouroboros-emacs-themes.git"
  			  :files ("*.el")))

  ;; Add build dir to custom theme load path
  (add-to-list 'custom-theme-load-path
  	     (expand-file-name (concat "straight/" straight-build-dir "/ouroboros-emacs-themes/") user-emacs-directory))

  ;; Load melanosis
  (load-theme 'melanosis t)
#+end_src

* Supported Packages
Ouroboros aims to support the following additional Emacs packages natively with every theme:
- Treemacs
- Beacon 
- Magit
- Telephone Line
- Org Modern (and Org Mode), including variable-pitch-mode
- Company
- Rainbow Delimiters
- HL-todo mode
- Tab-bar-mode
- Corfu

* Screenshots
[[file:preview.gif]]

* Future
Future plans listed here:
- Automatic, time based transitioning between themes, with cross-fading. See preview gif for prototype example (but not that contrast between background and foreground will be better in the actual implementation).

* Dependencies
** Fonts
- [[https://github.com/githubnext/monaspace][Monaspace Fonts]] for fixed width fonts and nerd fonts (frozen fonts in particular are currently a requirement)
- [[https://fonts.google.com/specimen/Crimson+Pro][Crimson Pro]] for variable width serif fonts
- [[https://fonts.google.com/specimen/Ysabeau][Ysabeau]] for variable width sans serif fonts

  
