# This is your system's configuration file. # Use this to configure your system environment (it replaces /etc/nixos/configuration.nix) { inputs, outputs, lib, config, pkgs, ... }: { # You can import other NixOS modules here imports = [ # networking configuration ./networking.nix # packages ./packages.nix # desktop setup ./desktop.nix ]; # 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; # i'd say i trust myself tbh trusted-users = ["ruben"]; substituters = [ "https://cache.nixos.org" "https://nix-community.cachix.org" ]; trusted-public-keys = [ "cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=" "nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=" ]; }; # use linux-zen boot.kernelPackages = pkgs.linuxKernel.packages.linux_zen; # Bootloader. boot.loader.systemd-boot.enable = true; boot.loader.efi.canTouchEfiVariables = true; # see https://nixos-and-flakes.thiscute.world/nixos-with-flakes/other-useful-tips#reducing-disk-usage # for below: # limit to 10 generations boot.loader.systemd-boot.configurationLimit = 10; # Perform garbage collection weekly to maintain low disk usage nix.gc = { automatic = true; dates = "weekly"; options = "--delete-older-than 1w"; }; # enable plymouth because it looks cool :))) boot.plymouth = { enable = true; theme = "bgrt"; }; # opengl and graphics settings # https://nixos.wiki/wiki/Accelerated_Video_Playback hardware.opengl = { enable = true; extraPackages = with pkgs; [ intel-media-driver # LIBVA_DRIVER_NAME=iHD intel-vaapi-driver # LIBVA_DRIVER_NAME=i965 (older but works better for Firefox/Chromium) libvdpau-va-gl ]; }; environment.sessionVariables = { LIBVA_DRIVER_NAME = "iHD"; }; # Force intel-media-driver # Enable CUPS to print documents. services.printing = { enable = true; drivers = with pkgs; [canon-cups-ufr2]; }; services.avahi.enable = true; services.avahi.nssmdns4 = true; # enable zram for swap stuff zramSwap.enable = true; # https://nixos.wiki/wiki/FAQ/When_do_I_update_stateVersion system.stateVersion = "23.11"; }