{ pkgs, ... }: { powerManagement.powertop.enable = true; hardware.graphics = { enable = true; }; # Enable the X11 windowing system. services.xserver.enable = true; # Enable the GNOME Desktop Environment. services.xserver.displayManager.gdm.enable = true; services.xserver.desktopManager.gnome.enable = true; # Configure keymap in X11 services.xserver.xkb = { layout = "us"; variant = ""; }; hardware.bluetooth.enable = true; hardware.bluetooth.powerOnBoot = true; # Enable CUPS to print documents. services.printing.enable = true; # Enable sound with pipewire. hardware.pulseaudio.enable = false; security.rtkit.enable = true; services.pipewire = { enable = true; alsa.enable = true; alsa.support32Bit = true; pulse.enable = true; }; # Enable automatic login for the user. services.displayManager.autoLogin.enable = true; services.displayManager.autoLogin.user = "admin"; # Workaround for GNOME autologin: https://github.com/NixOS/nixpkgs/issues/103746#issuecomment-945091229 systemd.services."getty@tty1".enable = false; systemd.services."autovt@tty1".enable = false; # Allow unfree packages nixpkgs.config.allowUnfree = true; boot = { # Graphical boot plymouth.enable = true; # Allow higher virtual memory for games kernel.sysctl."vm.max_map_count" = 2147483642; }; environment.gnome.excludePackages = with pkgs; [ epiphany # web browser geary # email gnome-calendar gnome-music gnome-software gnome-tour totem # video player xterm yelp # help ]; environment.systemPackages = with pkgs; [ audacity blender cura-appimage gimp gnomeExtensions.appindicator gnomeExtensions.blur-my-shell gnomeExtensions.caffeine gnomeExtensions.dash-to-dock inkscape joplin-desktop kiwix libreoffice obs-studio ollama protonmail-desktop prismlauncher ungoogled-chromium signal-desktop tor-browser wireshark monero-gui vscodium zsh brave dconf-editor localsend #gaymig? heroic lutris cataclysm-dda #TUI fastfetch nixfmt-rfc-style yt-dlp exiftool #tree? #ntfs-3g? ffmpeg-full htop lm_sensors mangohud mediainfo pciutils # lspci usbutils # lsusb nmap umu-launcher qrencode smartmontools ]; fonts.packages = with pkgs; [ noto-fonts noto-fonts-cjk-sans noto-fonts-emoji noto-fonts-extra corefonts fantasque-sans-mono ]; programs = { adb.enable = true; coolercontrol = { enable = true; nvidiaSupport = true; }; gamescope = { enable = true; capSysNice = true; }; steam = { enable = true; gamescopeSession.enable = true; remotePlay.openFirewall = true; # Open ports in the firewall for Steam Remote Play dedicatedServer.openFirewall = true; # Open ports in the firewall for Source Dedicated Server localNetworkGameTransfers.openFirewall = true; # Open ports in the firewall for Steam Local Network Game Transfers }; gamemode.enable = true; dconf = { enable = true; profiles.user.databases = [{ lockAll = true; # prevents overriding settings = { "org/gnome/shell" = { favorite-apps = [ "org.gnome.Nautilus.desktop" "brave-browser.desktop" "proton-mail.desktop" "joplin.desktop" "signal.desktop" "steam.desktop" "org.gnome.Settings.desktop" "org.gnome.Console.desktop" "'ca.desrt.dconf-editor.desktop" ]; enabled-extensions = [ pkgs.gnomeExtensions.appindicator.extensionUuid pkgs.gnomeExtensions.blur-my-shell.extensionUuid pkgs.gnomeExtensions.caffeine.extensionUuid pkgs.gnomeExtensions.dash-to-dock.extensionUuid ]; }; "org/gnome/desktop/calendar" = { show-weekdate = true; }; "org/gnome/desktop/interface" = { clock-show-weekday = true; color-scheme = "prefer-dark"; document-font-name = "Noto Sans 11"; enable-hot-corners = false; font-name = "Noto Sans 11"; gtk-theme = "Adwaita-dark"; monospace-font-name = "Fantasque Sans Mono 12"; }; "org/gnome/desktop/peripherals/mouse" = { accel-profile = "flat"; }; "org/gnome/desktop/wm/preferences" = { button-layout = ":minimize,maximize,close"; }; "org/gnome/nautilus/list-view" = { default-zoom-level = "small"; }; "org/gnome/nautilus/preferences" = { default-folder-viewer = "list-view"; }; "org/gnome/shell/extensions/dash-to-dock" = { click-action = "focus-minimize-or-previews"; dock-fixed = true; multi-monitor = true; show-mounts = false; show-show-apps-button = false; }; "org/gnome/shell/keybindings" = { show-screenshot-ui = ["s"]; }; }; }]; }; }; }