# Edit this configuration file to define what should be installed on # your system. Help is available in the configuration.nix(5) man page, on # https://search.nixos.org/options and in the NixOS manual (`nixos-help`). { config, lib, pkgs, ... }: { imports = [ # Include the results of the hardware scan. ./hardware-configuration.nix ]; # Use the systemd-boot EFI boot loader. boot.loader.efi.canTouchEfiVariables = true; boot.loader.grub.device = "nodev"; # or "nodev" for efi only boot.loader.systemd-boot.enable = true; environment.systemPackages = with pkgs; [ git neovim python3 steamcmd sunshine tmux wget ]; home-manager.useGlobalPkgs = true; home-manager.users.eliribble = { config, pkgs, ... }: { imports = [ ]; home.homeDirectory = "/home/eliribble"; home.stateVersion = "24.11"; home.username = "eliribble"; programs.fish = { enable = true; interactiveShellInit = '' set fish_greeting # Disable greeting ''; }; programs.plasma = { enable = true; kscreenlocker = { autoLock = false; lockOnResume = false; passwordRequired = false; timeout = 0; }; powerdevil = { AC = { autoSuspend = { action = "nothing"; idleTimeout = null; }; dimDisplay = { enable = true; idleTimeout = 600; }; inhibitLidActionWhenExternalMonitorConnected = true; turnOffDisplay = { idleTimeout = "never"; }; }; }; }; }; # Select internationalisation properties. i18n.defaultLocale = "en_US.UTF-8"; # Set up networking networking.hostName = "thenix"; # Define your hostname. networking.networkmanager.enable = true; # Easiest to use and most distros use this by default. nixpkgs.config.allowUnfreePredicate = pkg: builtins.elem (lib.getName pkg) [ "steam" "steam-original" "steam-run" "steam-unwrapped" "steamcmd" ]; programs.firefox.enable = true; # Make neovim the default editor programs.neovim.enable = true; programs.neovim.defaultEditor = true; programs.steam = { dedicatedServer.openFirewall = true; enable = true; remotePlay.openFirewall = true; }; # Enable the KDE Plasma Desktop Environment services.desktopManager.plasma6.enable = true; services.displayManager.sddm.enable = true; services.displayManager.autoLogin = { enable = true; user = "eliribble"; }; services.displayManager.sddm.wayland.enable = true; services.openssh.enable = true; services.sunshine = { autoStart = true; capSysAdmin = true; enable = true; openFirewall = true; }; systemd.network.enable = true; systemd.network.wait-online.enable = true; # Set your time zone. time.timeZone = "America/Phoenix"; # Define a user account. Don't forget to set a password with ‘passwd’. users.users.eliribble = { isNormalUser = true; extraGroups = [ "wheel" ]; # Enable ‘sudo’ for the user. }; xdg.autostart.enable = true; # This option defines the first version of NixOS you have installed on this particular machine, # and is used to maintain compatibility with application data (e.g. databases) created on older NixOS versions. # # Most users should NEVER change this value after the initial install, for any reason, # even if you've upgraded your system to a new NixOS release. # # This value does NOT affect the Nixpkgs version your packages and OS are pulled from, # so changing it will NOT upgrade your system - see https://nixos.org/manual/nixos/stable/#sec-upgrading for how # to actually do that. # # This value being lower than the current NixOS release does NOT mean your system is # out of date, out of support, or vulnerable. # # Do NOT change this value unless you have manually inspected all the changes it would make to your configuration, # and migrated your data accordingly. # # For more information, see `man configuration.nix` or https://nixos.org/manual/nixos/stable/options#opt-system.stateVersion . system.stateVersion = "24.10"; # Did you read the comment? }