nixos-config/subprojects/bahaghari
2024-02-23 20:37:06 +08:00
..
lib bahaghari/lib/tinted-theming: refactor 2024-02-23 20:37:06 +08:00
modules/tinted-theming bahaghari: move into subprojects directory 2024-02-23 14:47:49 +08:00
flake.nix bahaghari: init flake and devshell 2024-02-23 18:14:39 +08:00
README.adoc bahaghari: move into subprojects directory 2024-02-23 14:47:49 +08:00
shell.nix bahaghari: init flake and devshell 2024-02-23 18:14:39 +08:00

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 youd 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 youre pretty much set.

Optionally, you can also import Bahagharis 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 Themings standard while offering some convenience with the library set. For example, you can use importYAML from Bahagharis 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 Stylixs stylix.targets.<name> submodules. To make use of this, youll have to import Bahaghari module sets

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 Im 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 Bahagharis 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 isnt 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.


1. While Bahaghari as a project can also focus beyond colorschemes similar to Stylix, it isnt a part of the vision for now. Who knows, it might be. ;)