2025-03-14 09:44:14 +01:00
|
|
|
{
|
|
|
|
config,
|
|
|
|
lib,
|
|
|
|
pkgs,
|
|
|
|
...
|
|
|
|
}: let
|
|
|
|
inherit (lib.modules) mkMerge mkIf;
|
|
|
|
inherit (lib.options) mkEnableOption;
|
2025-03-31 11:05:42 +02:00
|
|
|
cfg = config.modules.theming;
|
2025-04-06 14:03:41 +02:00
|
|
|
inherit (builtins) toString isBool;
|
|
|
|
inherit (lib) boolToString escape generators;
|
|
|
|
|
|
|
|
toGtk3Ini = generators.toINI {
|
|
|
|
mkKeyValue = key: value: let
|
|
|
|
value' =
|
|
|
|
if isBool value
|
|
|
|
then boolToString value
|
|
|
|
else toString value;
|
|
|
|
in "${escape ["="] key}=${value'}";
|
|
|
|
};
|
|
|
|
|
|
|
|
gtkIni = {
|
|
|
|
gtk-application-prefer-dark-theme = 1;
|
|
|
|
gtk-font-name = "Lexend 11";
|
|
|
|
gtk-icon-theme-name = "Papirus-Dark";
|
|
|
|
gtk-xft-antialias = 1;
|
|
|
|
gtk-xft-hinting = 1;
|
|
|
|
gtk-xft-hintstyle = "hintslight";
|
|
|
|
gtk-xft-rgba = "rgb";
|
|
|
|
gtk-cursor-theme-name = "BreezeX-RosePine-Linux";
|
|
|
|
gtk-theme-name = "Gruvbox-Dark";
|
|
|
|
};
|
2025-03-14 09:44:14 +01:00
|
|
|
in {
|
2025-03-31 11:05:42 +02:00
|
|
|
options.modules.theming = {
|
2025-03-14 09:44:14 +01:00
|
|
|
qt.enable = mkEnableOption "qt theming";
|
|
|
|
};
|
|
|
|
config = mkMerge [
|
|
|
|
(mkIf cfg.gtk.enable {
|
|
|
|
environment = {
|
|
|
|
systemPackages = builtins.attrValues {
|
|
|
|
inherit (pkgs) rose-pine-cursor;
|
|
|
|
};
|
|
|
|
etc = {
|
2025-04-06 14:03:41 +02:00
|
|
|
"xdg/gtk-4.0/settings.ini".text = toGtk3Ini {
|
|
|
|
Settings = gtkIni;
|
|
|
|
};
|
|
|
|
"xdg/gtk-3.0/settings.ini".text = toGtk3Ini {
|
|
|
|
Settings = gtkIni;
|
|
|
|
};
|
2025-03-14 09:44:14 +01:00
|
|
|
|
|
|
|
"xdg/gtk-2.0/gtkrc".text = ''
|
2025-04-06 14:03:41 +02:00
|
|
|
gtk-cursor-theme-name = BreezeX-RosePine-Linux
|
|
|
|
gtk-cursor-theme-size = 32
|
|
|
|
gtk-theme-name = Gruvbox-Dark
|
|
|
|
gtk-icon-theme-name = Papirus-Dark
|
|
|
|
gtk-font-name = Lexend 11
|
2025-03-14 09:44:14 +01:00
|
|
|
'';
|
|
|
|
|
|
|
|
"xdg/Xresources".text = ''
|
2025-04-06 14:03:41 +02:00
|
|
|
Xcursor.size: 32
|
2025-03-14 09:44:14 +01:00
|
|
|
Xcursor.theme: BreezeX-RosePine-Linux
|
|
|
|
'';
|
|
|
|
};
|
|
|
|
};
|
|
|
|
})
|
|
|
|
];
|
|
|
|
}
|