{ config, ... }: let cursor = { name = "phinger-cursors-light"; size = 24; }; in { flake.modules.nixos.theme = { pkgs, ... }: { home-manager.sharedModules = [ config.flake.modules.homeManager.theme ]; environment.systemPackages = [ pkgs.phinger-cursors ]; }; flake.modules.homeManager.theme = { pkgs, ... }: let 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 = cursor // { enable = true; package = pkgs.phinger-cursors; 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}" ]; }; }