{ config, nix-colors, pkgs, lib, ... }:

with lib;

let
  cfg = config.settings.theming.nix-colors;
  inherit
  (nix-colors.lib-contrib { inherit pkgs; })
  gtkThemeFromScheme;
in {
  options = {
    settings.theming.nix-colors.enable = lib.mkOption {
      type = lib.types.bool;
      description = ''
        Enable nix colors configuration
      '';
    };
  };

  imports = [
    nix-colors.homeManagerModules.default
  ];

  config = mkIf cfg.enable {
    colorScheme = nix-colors.colorSchemes.da-one-sea;

    gtk = lib.mkIf (config.headless == false) {
      enable = true;
      theme = {
        name = "${config.colorScheme.slug}";
        package = gtkThemeFromScheme { scheme = config.colorScheme; };
      };
      iconTheme = {
        package = pkgs.qogir-icon-theme;
        name = "Qogir-dark";
      };
    };

    qt = lib.mkIf (config.headless == false) {
      enable = true;
      platformTheme.name = "gtk";
      style = {
        name = "gtk2";
        package = pkgs.qt6Packages.qt6gtk2;
      };
    };

    home.pointerCursor = lib.mkIf (config.headless == false) {
      package = pkgs.phinger-cursors;
      name = "phinger-cursors-dark";
      size = 24;
      gtk.enable = true;
    };
  };
}
