{ inputs, outputs, lib, config, pkgs, ... }: { imports = [ ./packages/neovim.nix ]; 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; nix.settings = { # Enable flakes and new 'nix' command experimental-features = "nix-command flakes"; # Deduplicate and optimize nix store auto-optimise-store = true; }; # boot.loader = { # systemd-boot = { # enable = true; # editor = true; # todo # # memtest86.enable = true; # }; # efi.canTouchEfiVariables = true; # grub = { # #theme = pkgs.sleek-grub-theme; # #splashImage = ./boot-logo.png; # }; # }; # Set your time zone. time.timeZone = "Europe/Paris"; services.fwupd.enable = true; networking = { networkmanager.enable = true; firewall.enable = true; }; nix.settings.allowed-users = ["@wheel"]; security.sudo.execWheelOnly = true; services.tailscale.enable = true; environment.systemPackages = with pkgs; [ wget dig nmap btop gitFull smartmontools lm_sensors pciutils gcc gnumake sysstat file ]; }