{ config, pkgs, lib, ... }: let inherit (lib) ctp mkIf; cfg = config.catppuccin.pointerCursor; # "dark" and "light" can be used alongside the regular accents cursorAccentType = ctp.mergeEnums ctp.types.accentOption ( lib.types.enum [ "dark" "light" ] ); in { options.catppuccin.pointerCursor = ctp.mkCatppuccinOpt { name = "pointer cursors"; # NOTE: we exclude this from the global `catppuccin.enable` as there is no # `enable` option in the upstream module to guard it enableDefault = false; } // { accent = ctp.mkBasicOpt "accent" cursorAccentType "cursors"; }; config.home.pointerCursor = mkIf cfg.enable { name = "catppuccin-${cfg.flavor}-${cfg.accent}-cursors"; package = pkgs.catppuccin-cursors.${cfg.flavor + ctp.mkUpper cfg.accent}; }; }