{ config, ... }: let hmModules = config.flake.modules.homeManager; cursor = { name = "phinger-cursors-light"; packageName = "phinger-cursors"; size = 24; }; mkCursor = pkgs: cursor // { package = pkgs.${cursor.packageName}; }; in { flake.modules.nixos.theme = { pkgs, ... }: let cursorTheme = mkCursor pkgs; in { home-manager.sharedModules = [ hmModules.theme ]; environment.systemPackages = [ cursorTheme.package ]; }; flake.modules.homeManager.theme = { pkgs, ... }: let cursorTheme = mkCursor pkgs; version = "unstable-2025-10-23"; src = pkgs.fetchFromGitHub { owner = "Fausto-Korpsvart"; repo = "Kanagawa-GKT-Theme"; rev = "55ca4ba249eba21f861b9866b71ab41bb8930318"; hash = "sha256-UdMoMx2DoovcxSp/zBZ3PRv/Qpj+prd0uPm1gmdak2E="; }; kanagawaGtkTheme = pkgs.stdenvNoCC.mkDerivation { pname = "kanagawa-gtk-theme"; inherit src version; nativeBuildInputs = [ pkgs.sassc ]; installPhase = '' runHook preInstall mkdir -p "$out/share/themes" bash ./themes/install.sh \ --dest "$out/share/themes" \ --name Kanagawa \ --color dark rm -r "$out/share/themes/Kanagawa-Dark/gtk-2.0" runHook postInstall ''; }; in { home.pointerCursor = { enable = true; inherit (cursorTheme) name package size ; dotIcons.enable = false; gtk.enable = true; }; gtk = { enable = true; theme = { name = "Kanagawa-Dark"; package = kanagawaGtkTheme; }; gtk4.theme = null; iconTheme = { name = "Kanagawa"; package = pkgs.kanagawa-icon-theme.overrideAttrs (_: { inherit src version; }); }; }; qt = { enable = true; platformTheme.name = "gtk3"; }; xdg.systemDirs.data = [ "${pkgs.gsettings-desktop-schemas}/share/gsettings-schemas/${pkgs.gsettings-desktop-schemas.name}" "${pkgs.gtk3}/share/gsettings-schemas/${pkgs.gtk3.name}" ]; }; }