Rebase to flake parts #8

This commit is contained in:
2026-05-08 21:48:22 -03:00
parent f98606dcce
commit 34b89af77f
30 changed files with 3567 additions and 1 deletions
+128
View File
@@ -0,0 +1,128 @@
{ ... }: {
flake.homeManagerModules.wisdomDesktopGtkQtTheming =
{ config, lib, pkgs, ... }:
let
root = config.chiasson.home;
cfg = config.chiasson.home.desktop.theming;
in
{
options.chiasson.home.desktop.theming = {
enable = lib.mkEnableOption ''
WhiteSur GTK + icon themes, Phinger cursor, and Qt via the KDE platform theme same idea as
the old `home-shared.nix` stack for Hyprland/Niri (no full Plasma session required). Optional
`dank-colors.css` import for DMS/matugen GTK accents.
'';
matugenGtkColors = lib.mkOption {
type = lib.types.bool;
default = true;
description = ''
Add `@import url("dank-colors.css");` to gtk3/gtk4 extraCss. DMS/matugen writes
`~/.config/gtk-3.0` / `gtk-4.0` `dank-colors.css` when dynamic theming is on disable if
you use this module without DMS.
'';
};
gtkTheme = {
name = lib.mkOption {
type = lib.types.str;
default = "WhiteSur-Dark";
};
package = lib.mkOption {
type = lib.types.package;
default = pkgs.whitesur-gtk-theme;
};
};
iconTheme = {
name = lib.mkOption {
type = lib.types.str;
default = "WhiteSur-dark";
};
package = lib.mkOption {
type = lib.types.package;
default = pkgs.whitesur-icon-theme;
};
};
cursor = {
name = lib.mkOption {
type = lib.types.str;
default = "phinger-cursors-dark";
};
package = lib.mkOption {
type = lib.types.package;
default = pkgs.phinger-cursors;
};
size = lib.mkOption {
type = lib.types.int;
default = 32;
};
};
qt = {
platformTheme = lib.mkOption {
type = lib.types.str;
default = "kde";
description = ''
`QT_QPA_PLATFORMTHEME` (e.g. `kde` for Qt/KDE integration, matches previous flake).
'';
};
extraPackages = lib.mkOption {
type = lib.types.listOf lib.types.package;
default = [ pkgs.whitesur-kde pkgs.qt6Packages.qt6ct ];
description = "Extra packages (KDE look-and-feel + qt6ct GUI).";
};
};
};
config = lib.mkIf (root.enable && cfg.enable) (lib.mkMerge [
{
home.packages = cfg.qt.extraPackages;
home.sessionVariables = {
QT_QPA_PLATFORMTHEME = cfg.qt.platformTheme;
};
home.pointerCursor = {
name = cfg.cursor.name;
package = cfg.cursor.package;
size = cfg.cursor.size;
gtk.enable = true;
x11.enable = true;
};
gtk = {
enable = true;
theme = {
name = cfg.gtkTheme.name;
package = cfg.gtkTheme.package;
};
iconTheme = {
name = cfg.iconTheme.name;
package = cfg.iconTheme.package;
};
cursorTheme = {
name = cfg.cursor.name;
package = cfg.cursor.package;
size = cfg.cursor.size;
};
gtk3.extraConfig = {
gtk-application-prefer-dark-theme = 1;
};
gtk4.extraConfig = {
gtk-application-prefer-dark-theme = 1;
};
};
}
(lib.mkIf cfg.matugenGtkColors {
gtk.gtk3.extraCss = ''
@import url("dank-colors.css");
'';
gtk.gtk4.extraCss = ''
@import url("dank-colors.css");
'';
})
]);
};
}