{ config, ... }: let repo = config.repo; repoHelpers = repo.helpers; in { flake.modules.nixos.theme = { pkgs, ... }: let repoTheme = repo.theme; cursorTheme = repoTheme.cursor // { package = repoHelpers.resolvePackagePath { inherit pkgs; path = repoTheme.cursor.packagePath; }; }; in { environment.systemPackages = [ cursorTheme.package ]; services.displayManager.sddm.settings = { Theme = { CursorTheme = cursorTheme.name; CursorSize = cursorTheme.size; }; }; }; flake.modules.homeManager.theme = { config, pkgs, ... }: let repoTheme = repo.theme; cursorTheme = repoTheme.cursor // { package = repoHelpers.resolvePackagePath { inherit pkgs; path = repoTheme.cursor.packagePath; }; }; kanagawaThemeSrc = pkgs.fetchFromGitHub { inherit (repoTheme.kanagawa) hash owner repo rev ; }; kanagawaOverride = { version = repoTheme.kanagawa.version; src = kanagawaThemeSrc; }; in { home.pointerCursor = { inherit (cursorTheme) name package size ; dotIcons.enable = false; gtk.enable = true; }; gtk = { enable = true; gtk3.bookmarks = [ "sftp://orion Orion VPS" ]; theme = { name = repoTheme.kanagawa.gtkThemeName; package = pkgs.kanagawa-gtk-theme.overrideAttrs (_: kanagawaOverride); }; gtk4.theme = { inherit (config.gtk.theme) name package; }; iconTheme = { name = repoTheme.kanagawa.iconThemeName; package = pkgs.kanagawa-icon-theme.overrideAttrs (_: kanagawaOverride); }; }; qt = { enable = true; platformTheme.name = "gtk3"; }; }; }