{ inputs = { nixpkgs.url = "github:nixos/nixpkgs/nixos-unstable"; mypkgs = { url = "git+https://git.sys-con.ru/thek0tyara/nixpkgs-extension.git"; inputs.nixpkgs.follows = "nixpkgs"; }; ragenix.url = "github:yaxitech/ragenix"; home-manager = { url = "github:nix-community/home-manager"; inputs.nixpkgs.follows = "nixpkgs"; }; nix-index-database = { url = "github:nix-community/nix-index-database"; inputs.nixpkgs.follows = "nixpkgs"; }; niri-flake = { url = "github:sodiboo/niri-flake"; inputs.nixpkgs.follows = "nixpkgs"; }; dw-proton.url = "github:imaviso/dwproton-flake"; intel-hw.url = "github:MordragT/nixos"; nix-flatpak.url = "github:gmodena/nix-flatpak/latest"; kernel-src = { # url = "git+https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git?ref=master"; url = "git+https://gitlab.freedesktop.org/drm/tip.git?shallow=1&ref=drm-tip"; flake = false; }; sccache = { url = "github:mozilla/sccache"; inputs.nixpkgs.follows = "nixpkgs"; }; }; outputs = inputs@{ nixpkgs, mypkgs, ragenix, home-manager, nix-index-database, niri-flake, intel-hw, nix-flatpak, kernel-src, sccache, ... }: let system = "x86_64-linux"; # pkgs = nixpkgs.${system}.packages; pkgs = nixpkgs { inherit system; overlays = [ sccache.overlays.default ]; }; in { nixosConfigurations.testenv = nixpkgs.lib.nixosSystem { inherit system; specialArgs = { inherit inputs; kernel-src = inputs.kernel-src; }; modules = [ # ./custom/modules ragenix.nixosModules.default niri-flake.nixosModules.niri nix-index-database.nixosModules.default nix-flatpak.nixosModules.nix-flatpak ( { pkgs, pkgdefault, config, ... }: { _module.args = { pkgdefault = pkg: pkg.packages.${pkgs.stdenv.hostPlatform.system}.default; }; nixpkgs.overlays = [ intel-hw.overlays.default mypkgs.overlays.default (import ./custom/override.nix) niri-flake.overlays.niri ]; hardware = { graphics = { enable = true; extraPackages = ( with pkgs; [ intel-media-driver intel-ocl vpl-gpu-rt intel-compute-runtime ] ); # ++ (with inputs.intel-hw.packages."${system}"; [ # # oneapi-dal # # oneapi-dpl # # oneapi-ccl # ]); # enable32Bit = true; }; enableRedistributableFirmware = true; }; nix.settings = { # keep-logs = true; trusted-users = [ "root" "thek0tyara" ]; extra-sandbox-paths = [ "/var/cache/sccache" ]; download-buffer-size = 160000000; }; systemd.tmpfiles.rules = [ # setgid, чтобы файлы/папки сохраняли группу nixbld "d /var/cache/sccache 2770 root nixbld - -" ]; boot = { loader = { systemd-boot.enable = true; efi.canTouchEfiVariables = false; }; # kernelPackages = pkgs.linuxPackages_testing; extraModulePackages = with config.boot.kernelPackages; [ v4l2loopback # amneziawg ]; # kernelPatches = [ # { # name = "7.0-rc fixup"; # extraConfig = '' # ''; # } # ]; }; # nixpkgs.config.permittedInsecurePackages = [ # "olm-3.2.16" # ]; age = { secrets = { # "wg/syscon0.key".file = ./secrets/wg/syscon0.key.age; "github/token.ro.age" = { file = ./secrets/github/token.ro.age; owner = "root"; group = "wheel"; mode = "0440"; }; }; identityPaths = [ "/root/.ssh/id_ed25519" ]; }; environment = { sessionVariables = { LIBVA_DRIVER_NAME = "iHD"; LLAMA_CACHE = "/home/thek0tyara/Downloads/llm"; # CCACHE_DIR = "/mnt/HDD_A_DATA/ccache"; # SCCACHE_DIR = "/home/thek0tyara/Documents/cache/sccache"; # LLVM = "1"; # UV_CACHE_DIR = ""; # PIP_CACHE_DIR = ""; # PYTHONPYCACHEPREFIX = ""; }; systemPackages = with pkgs; [ ### compiler # ccache sccache (pkgdefault inputs.ragenix) devenv htop ### storage btrfs-progs ### gpu vulkan-tools libva-utils intel-gpu-tools pciutils inxi mesa-demos xhost # llm # llama-cpp-vulkan ### development git nixpkgs-fmt nixfmt nixd nil android-tools ]; }; security = { polkit = { enable = true; }; rtkit.enable = true; sudo = { extraRules = [ { commands = [ { command = "/run/current-system/sw/bin/nix"; options = [ "NOPASSWD" ]; } { command = "/run/current-system/sw/bin/nixos-rebuild"; options = [ "NOPASSWD" ]; } ]; groups = [ "wheel" ]; } ]; }; }; programs = { # ccache = { # enable = true; # cacheDir = "/home/thek0tyara/Documents/cache/ccache/"; # packageNames = [ # # "linux" # ]; # }; niri = { enable = true; package = pkgs.niri; }; nix-ld = { enable = true; libraries = with pkgs; [ stdenv.cc.cc.lib ]; }; obs-studio.enableVirtualCamera = true; steam = { enable = true; extraCompatPackages = [ inputs.dw-proton.packages.${system}.dw-proton ]; protontricks = { enable = true; }; }; traceroute.enable = true; ydotool = { enable = true; group = "wheel"; }; }; services = { displayManager = { enable = true; defaultSession = "niri"; }; flatpak.enable = true; locate.enable = true; pipewire = { enable = true; pulse.enable = true; }; tor = { enable = true; client.enable = true; relay = { enable = true; role = "relay"; }; }; xserver = { enable = true; displayManager.lightdm.enable = true; xkb = { layout = "us,ru"; options = "grp:alt_shift_toggle"; }; }; zerotierone = { enable = true; localConf = { settings = { bind = [ "10.20.0.201" ]; }; }; }; }; } ) ./configuration.nix # home-manager.nixosModules.default { home-manager = { useGlobalPkgs = true; useUserPackages = true; extraSpecialArgs = { inherit inputs; }; users.thek0tyara = ./home.nix; }; } ]; }; }; }