{ lib, config, pkgs, inputs, ... }: { imports = [ inputs.home-manager.nixosModules.home-manager ./desktops ./gaming ./virt ./battery.nix ./bluetooth.nix ./desktop.nix ./fingerprint.nix ./hardware.nix ./networking.nix ./sshd.nix ./tpm.nix ]; # allow flakes nix.settings.experimental-features = ["nix-command" "flakes"]; # allow unfree packages nixpkgs.config.allowUnfree = true; # set state version system.stateVersion = config.stateVersion; # enable nixos-rebuild-ng system.rebuild.enableNg = true; # use system packages in home manager home-manager.useGlobalPkgs = true; # install user packages to /etc/profiles and not home directory home-manager.useUserPackages = true; # root user home home-manager.users.root = { home.stateVersion = config.stateVersion; }; # main user home home-manager.extraSpecialArgs = {inherit inputs;}; home-manager.users.${config.user} = { imports = [ ../home ../options.nix (inputs.self.lib.homeConfig config) ]; }; # hostname networking.hostName = config.hostName; # common system packages environment.systemPackages = with pkgs; [ # editor vim # lib libz openssl shared-mime-info # shell bash # utility curl dig file fd htop jq killall openssh p7zip ripgrep rsync sbctl sl tree unzip wget ]; # system shell programs.zsh.enable = true; # use the latest kernel boot.kernelPackages = pkgs.linuxPackages_latest; # sysrq boot.kernel.sysctl."kernel.sysrq" = 246; # timezone time.timeZone = config.timeZone; # dbus services.dbus.implementation = "broker"; # docs documentation = { info.enable = false; dev.enable = false; nixos.enable = false; }; # locale i18n.defaultLocale = "en_US.UTF-8"; # create user account users.users.${config.user} = { isNormalUser = true; description = config.fullName; extraGroups = ["wheel" "tty"]; home = config.homePath; shell = pkgs.zsh; }; # certs security.pki.certificateFiles = inputs.self.lib.certs; }