{ pkgs, ... }: { # Enable sound with pipewire. security.rtkit.enable = true; services.pipewire = { enable = true; alsa.enable = true; alsa.support32Bit = true; pulse.enable = true; }; # Configure keymap in X11 services.xserver = { enable = true; xkb.layout = "us"; xkb.variant = ""; autorun = true; }; ##### disable nvidia, very nice battery life. # hardware.nvidiaOptimus.disable = lib.mkDefault true; services.xserver = { displayManager = { gdm = { enable = true; }; }; desktopManager = { gnome = { enable = true; extraGSettingsOverridePackages = [ pkgs.mutter ]; extraGSettingsOverrides = '' [org.gnome.mutter] experimental-features=['scale-monitor-framebuffer', 'variable-refresh-rate'] ''; }; }; }; # Set Gnome settings: services.gnome = { games.enable = false; core-utilities.enable = true; gnome-remote-desktop.enable = true; }; # Set the firewall ports for gnome-remote-desktop: networking.firewall.interfaces.tailscale0.allowedTCPPorts = [ 3389 ]; # https://nixos.wiki/wiki/GNOME # Remove unwanted packages environment.gnome.excludePackages = (with pkgs; [ cheese gnome-music epiphany geary totem gnome-characters gnome-tour gnome-photos yelp gnome-font-viewer gnome-connections gnome-contacts gnome-logs gnome-maps simple-scan ]); environment.systemPackages = with pkgs; [ # Gnome Extensions gnomeExtensions.arcmenu gnomeExtensions.tiling-shell gnomeExtensions.dash-to-panel gnomeExtensions.blur-my-shell gnomeExtensions.caffeine gnomeExtensions.hibernate-status-button gnomeExtensions.night-theme-switcher gnomeExtensions.tailscale-qs gnomeExtensions.battery-usage-wattmeter gnomeExtensions.lilypad gnome-podcasts # Gnome relevant packages gnome-tweaks papirus-icon-theme dconf2nix # https://github.com/gvolpe/dconf2nix ghostty # Terminal Emulator gnome-session ]; }