{ lib, pkgs, ... }: let mkGnome = lib.mkOverride 700; nixosConfig = { services.displayManager.gdm.enable = mkGnome true; services.desktopManager.gnome.enable = mkGnome true; services.tlp.enable = mkGnome false; # Conflicts with power-profiles-daemon # Override gammastep so the indicator doesnt run on gnome nixpkgs.overlays = with pkgs; [ (final: prev: { gammastep = prev.gammastep.overrideAttrs (prev: { postInstall = (prev.postInstall or "") + '' sed -i '/^NotShowIn=/d' $out/share/applications/gammastep-indicator.desktop echo "NotShowIn=GNOME;" >> $out/share/applications/gammastep-indicator.desktop ''; }); }) ]; }; homeConfig = { dconf.settings = { # Faster repeated keys and less delay before repeating # Gnome (wayland) eq. to `xset r rate 250 50` "org/gnome/desktop/peripherals/keyboard" = { repeat = true; delay = 250; repeat-interval = 20; # 20 repeats per second = 50Hz }; # Remap caps key to escape "org/gnome/desktop/input-sources" = { xkb-options = [ "caps:escape" ]; }; }; }; in { imports = [ (lib._mkProfileArchetype "gnome" nixosConfig homeConfig) ]; }