# This is your system's configuration file. # Use this to configure your system environment (it replaces /etc/nixos/configuration.nix) { inputs, outputs, lib, config, user, pkgs, ... }: { # You can import other NixOS modules here imports = [ # If you want to use modules your own flake exports (from modules/nixos): # outputs.nixosModules.example ../../common/nixos/common.nix ../../common/gui/hyprland.nix ../../common/style/stylix.nix # ../../common/style/vars/candlekeep.nix ../../common/nixos/sysctl # ../../common/nixos/tuigreet.nix ../../common/networking ../../common/nixos ../../common/gui ../../common/virtualization # ./auditd.nix ./kernel.nix ./sysctl.nix ./earlyoom.nix ./syncthing.nix # Or modules from other flakes (such as nixos-hardware): # inputs.hardware.nixosModules.common-cpu-amd # inputs.hardware.nixosModules.common-ssd inputs.nix-index-database.nixosModules.nix-index inputs.stylix.nixosModules.stylix inputs.sops-nix.nixosModules.sops # You can also split up your configuration and import pieces of it here: # ./users.nix # Import your generated (nixos-generate-config) hardware configuration ./hardware-configuration.nix ]; laptop.enable = true; # nfs.enable = true; ssh.enable = true; ssh_guard.enable = true; steam.enable = true; programs.nix-ld.dev.enable = true; # Bootloader. boot = { loader = { systemd-boot.enable = true; efi.canTouchEfiVariables = true; }; initrd.luks.devices."luks-1dbfdeb6-8537-41b2-abf0-09373af3eeee".device = "/dev/disk/by-uuid/1dbfdeb6-8537-41b2-abf0-09373af3eeee"; }; boot.supportedFilesystems = [ "nfs" ]; # sops sops = { defaultSopsFile = ../../secrets/secrets.yaml; defaultSopsFormat = "yaml"; age.keyFile = "/home/${user}/.config/sops/age/keys.txt"; }; nixpkgs = { # You can add overlays here overlays = [ # Add overlays your own flake exports (from overlays and pkgs dir): outputs.overlays.additions outputs.overlays.modifications outputs.overlays.unstable-packages # You can also add overlays exported from other flakes: # neovim-nightly-overlay.overlays.default # Or define it inline, for example: # (final: prev: { # hi = final.hello.overrideAttrs (oldAttrs: { # patches = [ ./change-hello-to-hi.patch ]; # }); # }) ]; # Configure your nixpkgs instance config = { # Disable if you don't want unfree packages allowUnfree = true; }; }; # This will add each flake input as a registry # To make nix3 commands consistent with your flake nix.registry = (lib.mapAttrs (_: flake: { inherit flake; })) ( (lib.filterAttrs (_: lib.isType "flake")) inputs ); # This will additionally add your inputs to the system's legacy channels # Making legacy nix commands consistent as well, awesome! nix.nixPath = [ "/etc/nix/path" ]; environment.etc = lib.mapAttrs' (name: value: { name = "nix/path/${name}"; value.source = value.flake; }) config.nix.registry; networking.hostName = "candlekeep"; # networking.networkmanager.enable = true; users.users = { gwg313 = { initialPassword = "correcthorsebatterystaple"; isNormalUser = true; openssh.authorizedKeys.keys = [ "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILq54YrM3BbhBs0oDLOrc1bkg6FCCmkV4E3pWLZp0ejN gwg313@pm.me" "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIPZK7127ict2+Urhi1cbD6EIU85mD4lkQ9/ihaif0jsX" # Phone ]; extraGroups = [ "wheel" ]; }; }; environment = { loginShellInit = '' # if [ -z $DISPLAY ] && [ "$(tty)" = "/dev/tty1" ]; then # exec Hyprland # fi if (empty $env.DISPLAY) && ($tty == '/dev/tty1') { exec Hyprland } ''; # Will automatically open Hyprland when logged into tty1 variables = { TERMINAL = "alacritty"; EDITOR = "nvim"; VISUAL = "nvim"; PAGER = "moar"; PASSWORD_STORE_DIR = "$HOME/.local/share/password-store"; }; }; # https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion system.stateVersion = "23.05"; }