{ 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; videoDrivers = [ "nvidia" ]; }; services.xserver = { # https://nixos.org/manual/nixos/stable/index.html#chap-gnome # Enable the GNOME Desktop Environment. desktopManager.gnome.enable = true; displayManager.gdm = { enable = true; settings = { "/apps/gdm/simple-greeter/".banner_message_enable = "true"; "/apps/gdm/simple-greeter/".banner_message_text = '' -- Welcome to ${hostname} You are accessing a U.S. Government (USG) Information System (IS) that is provided for USG-authorized use only. By using this IS (which includes any device attached to this IS), you consent to the following conditions: - The USG routinely intercepts and monitors communications on this IS for purposes including, but not limited to, renetration testing, COMSEC monitoring, network operations and defense, personnel misconduct (PM), law enforcement (LE), and counterintelligence (CI) investigations. - At any time, the USG may inspect and seize data stored on this IS. - Communications using, or data stored on, this IS are not private, are subject to routine monitoring, interception, and search, and may be disclosed or used for any USG-authorized purpose. - This IS includes security measures (e.g., authentication and access controls) to protect USG interests--not for your personal benefit or privacy. - Notwithstanding the above, using this IS does not constitute consent to PM, LE or CI investigative searching or monitoring of the content of privileged communications, or work product, elated to personal representation or services by attorneys, psychotherapists, or clergy, and their assistants. Such communications and work product are private and confidential. See User Agreement for details. -- ''; }; }; }; # 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 # General packages # https://github.com/gvolpe/dconf2nix dconf2nix ]; imports = [ # Gnome Themes ./gnome/themes/gruvbox.nix ./gnome/themes/tokyo-night.nix ./gnome/themes/nordic.nix ./gnome/themes/vimix.nix ./gnome/themes/fluent.nix # You may need to edit which theme you're using in dconf.nix if you remove themes ]; # Idea... Move these to a separate file and tie it into dconf # sections that load the theme automatically when I want it. }