-
Protesilaos Stavrou authored
I just need to provide some background information on this, in order to avoid confusion. Tempus themes (Vim, terminals, GTK editors) ------------------------------------------- The Tempus themes project covers Vim, terminal emulators, and some GTK text editors (including GNOME Builder). Its overarching objective is that of a minimum contrast ration of 4.5:1 (WCAG AA) between the background and foreground values. Other tools like Tmux and Dunst all make use of its colour values. Because of their roots in terminal emulators, the Tempus themes use the 16-colour palette you find on such tools. Refer to the portal page for more on the matter.[1] The project is in a stable state. Modus themes ("just" GNU Emacs) ------------------------------- Whereas the Modus themes are designed specifically for Emacs. They are much more complex and consist of a wider colour palette that covers the extensive array of interfaces inside of Emacs. Their principal objective is similar to that of the afore-mentioned project: a minimum contrast ratio of 7:1 (WCAG AAA). Some items in the Tempus themes collection also conform with this higher standard, but the project as a whole only guarantees the "AA" score. Check the git source of the Modus themes.[2] They are under heavy development. Project history --------------- The Tempus themes came first (2017) and are a core part of my custom desktop session since its early days. Every relevant interface was built around them. As of commit ec885d16 I am in the process of gradually incorporating my new Emacs setup in my dotfiles.[3] This means lots and lots of breaking changes and necessary adjustments. FEAR NOT: my free/libre book "Prot's Dots For Debian" (PDFD) still works,[4] because it uses a snapshot of my dotfiles that contains code before the commit I just referenced.[5] PDFD guides you through the process of reproducing my custom desktop session on Debian 10 'buster'. I recently updated it by adding an Annex on the topic of multi-monitor support in BSPWM (and there have been other minor updates since its official release in early July 2019). The T.E.M.P.U.S. script (tempus) -------------------------------- Now the part that may cause confusion: the TEMPUS script performs a live theme switch across my entire custom desktop session. In the past, this meant using one of the items in the Tempus themes collection to apply the new colour values. I thus gave the script a funny and convenient backronym: Themes Every Meticulous Person Ultimately Seeks (TEMPUS). Recall that the word "tempus" is Latin for "time" because the first items of the collection were named after the four seasons: + tempus autumn + tempus spring + tempus summer + tempus winter At any rate, and jokes notwithstanding, the backronym had the technical upside of offering a straightforward syntax for performing a theme change via a CLI prompt: you just had to type `tempus' followed by the unique identifier of an item from the Tempus themes collection. For example, to switch to Tempus winter, you would run `tempus winter'. The other benefit was a more consistent naming convention for the `dmenu' front-end that offers an interactive medium for selecting an item from the collection: `tempusmenu'. I think that the script's name is okay, because it still uses the themes it was originally designed for. Besides, I have no intention to remove support for the Tempus themes. The project is still relevant. What I am doing with this commit, is just including a small function that performs a "theme switch" for yet another component of my custom desktop session: Emacs. The fact that Emacs internally uses another project of mine (the Modus themes) should not really matter. The end-user effect is exactly the same as before. I am just writing all this to make things clear and to refer to the present commit in case someone asks. [1]: https://gitlab.com/protesilaos/tempus-themes [2]: https://gitlab.com/protesilaos/modus-themes [3]: https://protesilaos.com/dotemacs [4]: https://protesilaos.com/pdfd [5]: https://gitlab.com/protesilaos/dotfiles