treewide: theme module refactor
I decided to refactor how the theme module works. The idea is, that I wanted originally a module that I could give a base16 scheme name to, and use that globally in my config. However, scheme only took the base16 scheme name without any checks, which was pretty bad. I ended up creating a new option, schemeName, that scheme is computed from. It then makes the whole configuration cleaner, and avoids long inputs interpolations with the scheme name.
This commit is contained in:
parent
6d643f903c
commit
32971e91bf
7 changed files with 25 additions and 17 deletions
|
@ -15,7 +15,7 @@
|
|||
font = "monospace:size=14";
|
||||
};
|
||||
colors = let
|
||||
inherit (inputs.basix.schemeData.base16.${osConfig.theme.scheme}) palette;
|
||||
inherit (osConfig.theme.scheme) palette;
|
||||
in {
|
||||
background = "${palette.base00}ff";
|
||||
text = "${palette.base05}ff";
|
||||
|
|
|
@ -1,12 +1,11 @@
|
|||
{
|
||||
inputs,
|
||||
pkgs,
|
||||
config,
|
||||
osConfig,
|
||||
lib,
|
||||
...
|
||||
}: let
|
||||
isDark = inputs.basix.schemeData.base16.${osConfig.theme.scheme}.variant == "dark";
|
||||
isDark = osConfig.theme.scheme.variant == "dark";
|
||||
in {
|
||||
home.pointerCursor = {
|
||||
inherit (osConfig.theme.cursorTheme) name package size;
|
||||
|
|
|
@ -1,13 +1,11 @@
|
|||
{
|
||||
inputs,
|
||||
lib,
|
||||
pkgs,
|
||||
config,
|
||||
osConfig,
|
||||
...
|
||||
}: let
|
||||
inherit (inputs.basix.schemeData.base16.${osConfig.theme.scheme}) palette;
|
||||
inherit (lib) getExe mkIf;
|
||||
inherit (osConfig.theme.scheme) palette;
|
||||
in {
|
||||
imports = [./binds.nix];
|
||||
|
||||
|
|
|
@ -1,10 +1,9 @@
|
|||
{
|
||||
inputs,
|
||||
pkgs,
|
||||
osConfig,
|
||||
...
|
||||
}: let
|
||||
inherit (inputs.basix.schemeData.base16.${osConfig.theme.scheme}) palette;
|
||||
inherit (osConfig.theme.scheme) palette;
|
||||
in {
|
||||
# requires `security.pam.services.swaylock = { };` at the system level or else
|
||||
# unlock will not work.
|
||||
|
|
|
@ -1,10 +1,9 @@
|
|||
{
|
||||
inputs,
|
||||
lib,
|
||||
osConfig,
|
||||
...
|
||||
}: let
|
||||
inherit (inputs.basix.schemeData.base16.${osConfig.theme.scheme}) palette;
|
||||
inherit (osConfig.theme.scheme) palette;
|
||||
inherit (builtins) concatStringsSep;
|
||||
inherit (lib) mapAttrsToList;
|
||||
|
||||
|
|
|
@ -1,5 +1,4 @@
|
|||
{
|
||||
inputs,
|
||||
osConfig,
|
||||
config,
|
||||
lib,
|
||||
|
@ -17,7 +16,7 @@
|
|||
inherit (lib) mapAttrs;
|
||||
inherit (lib.strings) removePrefix;
|
||||
# because someone thought this was a great idea: https://github.com/tinted-theming/schemes/commit/61058a8d2e2bd4482b53d57a68feb56cdb991f0b
|
||||
palette = mapAttrs (_: color: removePrefix "#" color) inputs.basix.schemeData.base16.${osConfig.theme.scheme}.palette;
|
||||
palette = mapAttrs (_: color: removePrefix "#" color) osConfig.theme.scheme.palette;
|
||||
in {
|
||||
background = palette.base00;
|
||||
foreground = palette.base05;
|
||||
|
|
|
@ -1,22 +1,33 @@
|
|||
{
|
||||
inputs,
|
||||
config,
|
||||
lib,
|
||||
pkgs,
|
||||
...
|
||||
}: let
|
||||
inherit (lib) mkEnableOption mkOption;
|
||||
inherit (lib.types) string path package;
|
||||
inherit (lib) mkEnableOption mkOption mkIf attrNames;
|
||||
inherit (lib.types) path package enum;
|
||||
cfg = config.theme;
|
||||
in {
|
||||
imports = [./gtk.nix];
|
||||
options.theme = {
|
||||
enable = mkEnableOption "theme";
|
||||
scheme = mkOption {
|
||||
schemeName = mkOption {
|
||||
description = ''
|
||||
Name of the tinted-scheming color scheme to use.
|
||||
'';
|
||||
type = string;
|
||||
example = lib.literalExpression "catppuccin-macchiato";
|
||||
type = enum (attrNames inputs.basix.schemeData.base16);
|
||||
example = "catppuccin-macchiato";
|
||||
default = "catppuccin-macchiato";
|
||||
};
|
||||
|
||||
scheme = mkOption {
|
||||
description = ''
|
||||
Resolved scheme from the tinted-scheming library.
|
||||
'';
|
||||
type = lib.types.attrs;
|
||||
};
|
||||
|
||||
wallpaper = mkOption {
|
||||
description = ''
|
||||
Location of the wallpaper that will be used throughout the system.
|
||||
|
@ -51,4 +62,7 @@ in {
|
|||
};
|
||||
};
|
||||
};
|
||||
config.theme = mkIf cfg.enable {
|
||||
scheme = inputs.basix.schemeData.base16.${config.theme.schemeName};
|
||||
};
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue