46 lines
1.4 KiB
Nix
46 lines
1.4 KiB
Nix
{ config, lib, pkgs, ... }:
|
|
let
|
|
cfg = config.nixfiles.theming;
|
|
|
|
mkCtpPackages = flavor: accent: let
|
|
toCaps = s: with lib.strings; with builtins;
|
|
(toUpper (substring 0 1 s)) + toLower (substring 1 ((stringLength s)-1) s);
|
|
inherit (lib.strings) toUpper toLower;
|
|
in with pkgs; {
|
|
cursors = catppuccin-cursors."${toLower flavor}${toCaps accent}";
|
|
cursorName = "Catppuccin-${toCaps flavor}-${toCaps accent}-Cursors";
|
|
kvantum = catppuccin-kvantum.override { variant = toCaps flavor; accent = toCaps accent; };
|
|
icons = catppuccin-papirus-folders.override { flavor = toLower flavor; accent = toLower accent; };
|
|
};
|
|
|
|
ctpPackages = with cfg.catppuccin; mkCtpPackages flavor accent;
|
|
in {
|
|
options.nixfiles.theming = {
|
|
enable = lib.mkEnableOption "nixfiles theming options";
|
|
catppuccin = {
|
|
flavor = lib.mkOption {
|
|
description = "Catppuccin flavor";
|
|
type = lib.types.str;
|
|
default = "mocha";
|
|
};
|
|
accent = lib.mkOption {
|
|
description = "Catppuccin accent";
|
|
type = lib.types.str;
|
|
default = "mauve";
|
|
};
|
|
};
|
|
};
|
|
|
|
config = lib.mkIf cfg.enable {
|
|
gtk.enable = true;
|
|
|
|
home.pointerCursor = {
|
|
package = lib.mkDefault ctpPackages.cursors;
|
|
name = lib.mkDefault ctpPackages.cursorName;
|
|
size = lib.mkDefault 24;
|
|
x11.enable = lib.mkDefault true;
|
|
gtk.enable = lib.mkDefault true;
|
|
};
|
|
};
|
|
}
|