82 lines
2.2 KiB
Nix
82 lines
2.2 KiB
Nix
{ inputs, config, lib, pkgs, system, ... }:
|
|
|
|
with lib;
|
|
let
|
|
cfg = config.modules.desktop.themes;
|
|
# TODO: gruvbox theme doesn't use these that much
|
|
accent = "pink";
|
|
accentBase = "base17";
|
|
dark = true;
|
|
|
|
darkString = if dark then "dark" else "light";
|
|
scheme = "${inputs.tt-schemes}/base24/gruvbox-${if dark then "dark" else "light"}.yaml";
|
|
pascalCase = s: (toUpper (substring 0 1 s)) + (toLower (substring 1 (stringLength s) s));
|
|
in {
|
|
config = mkIf (cfg.active == "gruvbox") {
|
|
scheme = scheme;
|
|
|
|
modules.desktop.themes = {
|
|
dark = dark;
|
|
|
|
rounding = 0;
|
|
|
|
gtkTheme = {
|
|
name = "Gruvbox-${pascalCase accent}-${pascalCase darkString}-Compact";
|
|
package = pkgs.gruvbox-gtk-theme.override {
|
|
colorVariants = [ darkString ];
|
|
themeVariants = [ accent ];
|
|
tweakVariants = [ "macos" ];
|
|
sizeVariants = [ "compact" ];
|
|
};
|
|
};
|
|
|
|
iconTheme = {
|
|
name = "Gruvbox-Plus-${pascalCase darkString}";
|
|
package = pkgs.gruvbox-plus-icons;
|
|
};
|
|
|
|
cursorTheme = {
|
|
name = "macOS";
|
|
package = pkgs.apple-cursor;
|
|
};
|
|
|
|
editor = {
|
|
vscode = {
|
|
colorTheme = {
|
|
name = "Gruvbox ${pascalCase darkString} Medium";
|
|
extension = pkgs.vscode-extensions.jdinhlife.gruvbox;
|
|
};
|
|
iconTheme = {
|
|
name = "material-icon-theme";
|
|
extension = pkgs.vscode-extensions.pkief.material-icon-theme;
|
|
};
|
|
};
|
|
};
|
|
|
|
niri = let
|
|
colors = config.scheme.withHashtag;
|
|
in with colors; {
|
|
accent = colors.${accentBase};
|
|
inactive = "${base02}";
|
|
shadow = "${base11}";
|
|
background = if dark then "${base11}" else "${base05}";
|
|
};
|
|
|
|
waybarTop = "@define-color accent @${accentBase};";
|
|
|
|
wob = with config.scheme; {
|
|
borderColor = "${base04}FF";
|
|
backgroundColor = "${base01}CC";
|
|
barColor = "${base05}FF";
|
|
};
|
|
|
|
rofiTop = "* { accent: @${accentBase}; }";
|
|
|
|
wezterm = ''
|
|
config.color_scheme = 'Gruvbox${pascalCase darkString}'
|
|
'';
|
|
|
|
vicinae = "gruvbox-${if dark then "dark" else "light"}";
|
|
};
|
|
};
|
|
}
|