51 lines
1.3 KiB
Nix
51 lines
1.3 KiB
Nix
{ user ? throw "user argument is required" }: { config, 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";
|
|
};
|
|
|
|
gtk2.configLocation = "${hmConfig.xdg.configHome}/gtk-2.0/gtkrc";
|
|
gtk3.extraCss = "@import './theme.css';";
|
|
gtk4.extraCss = "@import './theme.css';";
|
|
};
|
|
|
|
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 = let name = "theme-gtk"; in
|
|
"${pkgs.writeShellApplication {
|
|
inherit name;
|
|
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'"
|
|
'';
|
|
}}/bin/${name} &";
|
|
};
|
|
}
|