{ lib, config, pkgs, hostname, ... }: { # Enable sound with pipewire. sound.enable = true; hardware.pulseaudio.enable = false; 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; layout = "us"; xkbVariant = ""; autorun = true; # When you play games, change this to nvidia videoDrivers = [ "intel" ]; }; ##### disable nvidia, very nice battery life. # hardware.nvidiaOptimus.disable = lib.mkDefault true; services.xserver = { # https://nixos.org/manual/nixos/stable/index.html#chap-gnome # Enable the GNOME Desktop Environment. displayManager.gdm.enable = true; desktopManager.gnome.enable = true; desktopManager.gnome.extraGSettingsOverrides = '' [org.gnome.login-screen] banner-message-enable=true banner-message-text='\n Welcome to ${hostname}\n \n You are accessing a U.S. Government (USG) Information \n System (IS) that is provided for USG-authorized use only.\n \n By using this IS (which includes any device attached to \n this IS), you consent to the following conditions:\n \n - The USG routinely intercepts and monitors communications \n on this IS for purposes including, but not limited \n to, renetration testing, COMSEC monitoring, network \n operations and defense, personnel misconduct (PM), law \n enforcement (LE), and counterintelligence (CI) \n investigations.\n \n - At any time, the USG may inspect and seize data stored \n on this IS.\n \n - Communications using, or data stored on, this IS are not \n private, are subject to routine monitoring, interception, \n and search, and may be disclosed or used for any \n USG-authorized purpose.\n \n - This IS includes security measures (e.g., authentication \n and access controls) to protect USG interests--not for \n your personal benefit or privacy.\n \n - Notwithstanding the above, using this IS does not \n constitute consent to PM, LE or CI investigative \n searching or monitoring of the content of privileged \n communications, or work product, elated to personal \n representation or services by attorneys, psychotherapists, \n or clergy, and their assistants. Such communications \n and work product are private and confidential. See User \n Agreement for details. \n '; ''; }; # 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; [ gnome.cheese gnome.gnome-music gnome.epiphany gnome.geary gnome.totem gnome.gnome-characters gnome-tour gnome-photos gnome.yelp gnome.gnome-font-viewer gnome-connections gnome.gnome-contacts gnome.gnome-logs gnome.gnome-maps gnome.simple-scan ]); environment.systemPackages = with pkgs; [ # Gnome Extensions gnomeExtensions.tiling-assistant gnomeExtensions.dash-to-dock gnomeExtensions.blur-my-shell gnomeExtensions.vitals gnomeExtensions.user-themes gnomeExtensions.caffeine gnomeExtensions.hibernate-status-button gnomeExtensions.night-theme-switcher gnomeExtensions.gamemode # Gnome relevant packages gnome3.gnome-tweaks papirus-icon-theme dconf2nix # https://github.com/gvolpe/dconf2nix ]; imports = [ # Gnome Themes ./themes/gruvbox.nix ./themes/tokyo-night.nix ./themes/nordic.nix ./themes/vimix.nix ./themes/fluent.nix # You may need to edit which theme you're using in dconf.nix if you remove themes ]; }