nixos/home/catppuccin/nixos.nix
2025-01-13 11:52:09 +08:00

92 lines
2.1 KiB
Nix

{
pkgs,
lib,
config,
...
}:
with lib;
let
gui = with config.global.gpu; enable && session;
cfg = config.home.catppuccin;
in
{
options.home.catppuccin = {
enable = mkEnableOption "catppuccin colour scheme" // {
default = gui;
};
gtk = {
package = mkOption {
type = with types; package;
default =
(pkgs.catppuccin-gtk.overrideAttrs {
src = pkgs.fetchFromGitHub {
owner = "catppuccin";
repo = "gtk";
rev = "v1.0.3";
fetchSubmodules = true;
hash = "sha256-q5/VcFsm3vNEw55zq/vcM11eo456SYE5TQA3g2VQjGc=";
};
postUnpack = "";
}).override
{
accents = [ "pink" ];
size = "compact";
#tweaks = [ "rimless" "black" ];
variant = "mocha";
};
description = "catppuccin gtk theme package";
};
name = mkOption {
type = with types; str;
default = "catppuccin-mocha-pink-compact";
description = "name of catppuccin gtk theme";
};
};
cursor = {
package = mkOption {
type = with types; package;
default = pkgs.catppuccin-cursors.mochaDark;
description = "catppuccin cursor theme package";
};
name = mkOption {
type = with types; str;
default = "catppuccin-mocha-dark-cursors";
description = "name of catppuccin cursor theme";
};
};
};
config = {
users.homeModules = [
# this module passes catppuccin configuration to home-manager
{ passthrough.catppuccin = cfg; }
];
catppuccin.enable = cfg.enable;
# gtk and cursor themes
environment.systemPackages =
with cfg;
mkIf enable [
gtk.package
cursor.package
];
# override greetd theme
programs.regreet = mkIf cfg.enable {
theme = {
inherit (cfg.gtk) name package;
};
cursorTheme = {
inherit (cfg.cursor) name package;
};
settings = {
background.path = ./solid.png;
};
};
};
}