# 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, inputs, ... }: { imports = [ # Include the results of the hardware scan. ./hardware-configuration.nix ../../modules/programs/security.nix ../../modules/programs/theme.nix ../../modules/programs/shell.nix ../../modules/programs/gaming.nix ../../modules/programs/harden.nix ../../modules/programs/communication.nix ../../modules/programs/office.nix ../../modules/programs/desktop.nix inputs.home-manager.nixosModules.default ]; nixpkgs.config = { allowUnfree = true; }; # Use the GRUB 2 boot loader. # boot.loader.grub.enable = true; boot.loader.systemd-boot.enable = true; # boot.loader.grub.efiSupport = true; # boot.loader.grub.efiInstallAsRemovable = true; # boot.loader.efi.efiSysMountPoint = "/boot/efi"; # Define on which hard drive you want to install Grub. # boot.loader.grub.device = "/dev/sda"; # or "nodev" for efi only # fileSystems."/home/chris/games" = { # device = "/dev/disk/by-label/Games"; # fsType = "ntfs-3g"; # options = [ "rw" "uid=chris" ]; # }; fileSystems."/home/chris/new_games" = { device = "/dev/disk/by-label/games"; fsType = "ext4"; # options = [ "rw" "uid=chris" ]; }; fileSystems."/home/chris/data" = { device = "/dev/disk/by-label/Data"; fsType = "ntfs-3g"; options = [ "rw" "uid=chris" ]; }; networking.hostName = "chris-pc"; # Pick only one of the below networking options. # networking.wireless.enable = true; # Enables wireless support via wpa_supplicant. networking.networkmanager.enable = true; # Easiest to use and most distros use this by default. nix.settings.experimental-features = [ "nix-command" "flakes" ]; # Set your time zone. time.timeZone = "Europe/Amsterdam"; # Configure network proxy if necessary # networking.proxy.default = "http://user:password@proxy:port/"; # networking.proxy.noProxy = "127.0.0.1,localhost,internal.domain"; # Select internationalisation properties. # i18n.defaultLocale = "en_US.UTF-8"; # console = { # font = "Lat2-Terminus16"; # keyMap = "us"; # useXkbConfig = true; # use xkb.options in tty. # }; # Enable the X11 windowing system. services.xserver.enable = true; # Enable the Plasma 5 Desktop Environment. services.displayManager = { sddm = { enable = true; wayland.enable = true; }; autoLogin = { enable = true; user = "chris"; }; }; # services.xserver.desktopManager.plasma5.enable = true; services.desktopManager.plasma6.enable = true; # Configure keymap in X11 # services.xserver.xkb.layout = "us"; # services.xserver.xkb.options = "eurosign:e,caps:escape"; # Enable CUPS to print documents. # services.printing.enable = true; # Enable sound. sound.enable = true; # hardware.pulseaudio.enable = true; security.rtkit.enable = true; services.pipewire = { enable = true; alsa.enable = true; pulse.enable = true; }; # Define a user account. Don't forget to set a password with ‘passwd’. users.users.chris = { isNormalUser = true; extraGroups = [ "wheel" "audio" ]; # Enable ‘sudo’ for the user. packages = with pkgs; []; }; home-manager = { useGlobalPkgs = true; useUserPackages = true; extraSpecialArgs = { inherit inputs; }; backupFileExtension = "backup"; users = { chris.imports = [ ../../users/chris.nix ]; # root.imports = [ ../../users/root.nix ]; }; }; environment.systemPackages = with pkgs; [ neovim wget chromium thunderbird zoxide bottles atuin btop dust bat tldr eza nextcloud-client ]; # session variable for chrome/electron wayland environment.sessionVariables.NIXOS_OZONE_WL = "1"; systemd.services.numLockOnTty = { wantedBy = [ "multi-user.target" ]; serviceConfig = { ExecStart = lib.mkForce (pkgs.writeShellScript "numLockOnTty" '' for tty in /dev/tty{1..6}; do ${pkgs.kbd}/bin/setleds -D +num < "$tty"; done ''); }; }; # 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. # # 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 = "23.11"; # Did you read the comment? }