{ lib, pkgs, ... }: { ################################################################################### # # NixOS's core configuration suitable for all my machines # ################################################################################### # to install chrome, you need to enable unfree packages nixpkgs.config.allowUnfree = true; # for nix server, we do not need to keep too much generations boot.loader.systemd-boot.configurationLimit = lib.mkDefault 10; # Manual optimise storage: nix-store --optimise # https://nixos.org/manual/nix/stable/command-ref/conf-file.html#conf-auto-optimise-store nix.settings.auto-optimise-store = true; # for power management services = { power-profiles-daemon = { enable = true; }; upower.enable = true; }; # List packages installed in system profile. To search, run: # $ nix search wget environment.systemPackages = with pkgs; [ parted psmisc # killall/pstree/prtstat/fuser/... neovim # Do not forget to add an editor to edit configuration.nix! The Nano editor is also installed by default. wget curl aria2 git # used by nix flakes git-lfs # used by huggingface models # create a fhs environment by command `fhs`, so we can run non-nixos packages in nixos! ( let base = pkgs.appimageTools.defaultFhsEnvArgs; in pkgs.buildFHSUserEnv (base // { name = "fhs"; targetPkgs = pkgs: (base.targetPkgs pkgs) ++ [pkgs.pkg-config]; profile = "export FHS=1"; runScript = "bash"; extraOutputsToInstall = ["dev"]; }) ) ]; # replace default editor with neovim environment.variables.EDITOR = "nvim"; }