Files
lux/modules/capabilities/theme.nix
T
2026-09-02 23:24:18 +02:00

92 lines
2.2 KiB
Nix

{ 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}"
];
};
}