This is how I declaratively configure gnome:
programs.dconf.profiles.user = {
databases = [{
lockAll = true;
settings = {
"org/gnome/desktop/interface" = {
color-scheme = "prefer-dark";
clock-format = "12h";
clock-show-weekday = true;
};
"org/gnome/desktop/media-handling" = {
automount = false;
automount-open = false;
autorun-never = true;
};
"org/gnome/settings-daemon/plugins/power" = {
sleep-inactive-ac-type = "nothing";
};
"org/gnome/mutter" = {
edge-tiling = true;
dynamic-workspaces = true;
experimental-features = ["variable-refresh-rate"];
};
};
}];
};
I believe you can configure GDM with the same sort of thing, but with the gdm
profile rather than the user
profile.