74 lines
1.8 KiB
Nix
74 lines
1.8 KiB
Nix
{
|
|
user ? throw "user argument is required",
|
|
}:
|
|
{
|
|
config,
|
|
lib,
|
|
pkgs,
|
|
...
|
|
}:
|
|
let
|
|
hmConfig = config.home-manager.users.${user.name};
|
|
in
|
|
{
|
|
home-manager.users.${user.name} = {
|
|
gtk = {
|
|
enable = true;
|
|
|
|
theme = {
|
|
package = pkgs.adw-gtk3;
|
|
name = "adw-gtk3-dark";
|
|
};
|
|
|
|
font = {
|
|
name = builtins.head hmConfig.theme.font.sansSerif.names;
|
|
package = builtins.head hmConfig.theme.font.sansSerif.packages;
|
|
inherit (hmConfig.theme.font) size;
|
|
};
|
|
|
|
iconTheme = {
|
|
name = builtins.head hmConfig.theme.icon.names;
|
|
package = builtins.head hmConfig.theme.icon.packages;
|
|
};
|
|
|
|
gtk2.configLocation = "${hmConfig.xdg.configHome}/gtk-2.0/gtkrc";
|
|
gtk3.extraCss = "@import './theme.css';";
|
|
gtk4.extraCss = "@import './theme.css';";
|
|
};
|
|
|
|
home.pointerCursor.gtk.enable = true;
|
|
|
|
programs.matugen.settings.templates = {
|
|
gtk3 = {
|
|
input_path = ./theme.css;
|
|
output_path = "${hmConfig.xdg.configHome}/gtk-3.0/theme.css";
|
|
};
|
|
gtk4 = {
|
|
input_path = ./theme.css;
|
|
output_path = "${hmConfig.xdg.configHome}/gtk-4.0/theme.css";
|
|
};
|
|
};
|
|
|
|
theme.extraConfig = "${
|
|
lib.meta.getExe (
|
|
pkgs.writeShellApplication {
|
|
name = "theme-gtk";
|
|
runtimeInputs = with pkgs; [ dconf ];
|
|
text = ''
|
|
MODE=$(cat "${hmConfig.theme.configDir}/mode")
|
|
|
|
if [ "$MODE" = "light" ]; then
|
|
GTK_THEME="adw-gtk3"
|
|
else
|
|
GTK_THEME="adw-gtk3-dark"
|
|
fi
|
|
|
|
dconf write /org/gnome/desktop/interface/gtk-theme "'$GTK_THEME'"
|
|
dconf write /org/gnome/desktop/interface/color-scheme "'prefer-$MODE'"
|
|
'';
|
|
}
|
|
)
|
|
} &";
|
|
};
|
|
}
|