{ 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"; # Enable CUPS to print documents. services.printing.enable = true; # Enable sound with pipewire. sound.enable = true; hardware.pulseaudio.enable = false; security.rtkit.enable = true; services.pipewire = { enable = true; alsa.enable = true; alsa.support32Bit = true; pulse.enable = true; }; users.defaultUserShell = pkgs.zsh; programs.zsh = { enable = true; enableCompletion = true; autosuggestions.enable = true; syntaxHighlighting.enable = true; shellAliases = { ll = "ls -al"; }; ohMyZsh = { enable = true; plugins = [ "git" ]; theme = "robbyrussell"; }; }; services.fwupd.enable = true; networking = { networkmanager.enable = true; firewall.enable = true; }; nix.settings.allowed-users = ["@wheel"]; security.sudo.execWheelOnly = true; services.tailscale.enable = true; programs.git = { enable = true; config = { user = { name = "Tasia Iso"; email = "tasiaiso@proton.me"; }; init = { defaultBranch = "master"; }; }; }; environment.systemPackages = with pkgs; [ wget dig nmap btop smartmontools lm_sensors pciutils gcc gnumake sysstat file ffmpeg syncthing kate partition-manager gparted librewolf vscodium vlc filelight libreoffice ]; }