{ config, ... }: let metaLib = config.meta.lib; metaRepo = metaLib.repo; in { flake.modules.nixos.theme = { pkgs, ... }: let repoTheme = metaRepo.theme; cursorTheme = repoTheme.cursor // { package = metaLib.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 = metaRepo.theme; cursorTheme = repoTheme.cursor // { package = metaLib.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 ; 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"; }; }; }