|
||
---|---|---|
.. | ||
lib | ||
modules | ||
tests | ||
default.nix | ||
flake.nix | ||
LICENSE | ||
README.adoc | ||
shell.nix |
Bahaghari (Tagalog word for "rainbow") is a specialized set of Nix modules for generating and applying themes. Mainly useful for making your ricing process with NixOS and home-manager environments easier. This module set should allow for some flexibility for your use case.
At its current state, Bahaghari is considered unstable and might have breaking changes more than what you’d expect.
Module sets
As a whole, Bahaghari is more like a set of sets, a metaset, if you will. Specifically, it is composed of module sets of which has different ways to use them. Here is the exhaustive list of them and its details.
Tinted Theming
Bahaghari has a module set for interacting with Tinted Theming standard schemes and templates. To use it, simply import it and you’re pretty much set.
Optionally, you can also import Bahaghari’s library set for Tinted Theming.
Like most of the library components from Bahaghari, it requires both the pkgs
and lib
attribute found from the standard nixpkgs module system.
This module is designed to closely follow Tinted Theming’s standard while offering some convenience with the library set.
For example, you can use importYAML
from Bahaghari’s standard library set to easily import standard Base16 schemes into Nix-representable data which you can press onto your Nix configuration.
Templated configuration sub-modules
Bahaghari offers a pre-configured version of already existing modules for NixOS, home-manager, and NixVim quite similar to Stylix’s stylix.targets.<name>
submodules.
To make use of this, you’ll have to import Bahaghari module set’s
Comparison with other modules
nix-colors
Bahaghari initially started as a derivative to nix-colors as a single Nix module entirely dedicated for Tinted Theming standard. It was created to address its limitation of allowing only one colorscheme at a time which limits a lot of possible applications. Most notably, the feature I’m looking for is generating multiple colorscheme templates for different applications which is nice for hybrid deployments of home-manager-plus-mutable-configurations (AKA traditional dotfiles).
While Bahaghari eventually diverged from nix-colors entirely, it can be used as an alternative specifically with Bahaghari’s Tinted Theming module set. You can replicate nix-colors' preference of allowing a default set of colorscheme
Stylix
While Bahaghari can be used similarly to Stylix, it isn’t completely 1-to-1 to Stylix as it focuses on the holistic side of customization including for fonts and wallpaper. On the other hand, Bahaghari completely focuses on colorscheme generation. [1]
Bahaghari also took some cues from Stylix specifically from its Stylix targets which became the pre-templated configurations submodules for each of the module set.