{ config, lib, pkgs, modulesPath, ... }: { imports = [ ./disko.nix (modulesPath + "/installer/scan/not-detected.nix") ]; # Загрузочная функция. # Имеет параметры загрузчика, # а так же настройки initrd. boot = { initrd = { availableKernelModules = [ "xhci_pci" "ahci" "ohci_pci" "ehci_pci" "usb_storage" "usbhid" "sd_mod" "nvidia_drm" "nvidia_modeset" "nvidia" "nvidia_uvm" ]; kernelModules = [ ]; }; kernelModules = [ "kvm-amd" ]; extraModulePackages = [ ]; loader = { efi = { canTouchEfiVariables = true; efiSysMountPoint = "/boot"; }; grub = { efiSupport = true; device = "nodev"; useOSProber = true; }; }; plymouth = { enable = true; theme = "bgrt"; }; }; # Настройка интернета. # Указывание хоста, # а так же включение интернета. networking = { hostName = "lenovo"; networkmanager.enable = true; useDHCP = lib.mkDefault true; }; # Часовой пояс. time.timeZone = "Asia/Yekaterinburg"; # Настройка локали. # как и вся система, # и консоль. i18n.defaultLocale = "ru_RU.UTF-8"; console = { font = "cyr-sun16"; keyMap = "ru"; }; # Настройка пользователя. # указание группы и оболочка. users.users.fox = { isNormalUser = true; extraGroups = [ "wheel" "input" "networkmanager" "video" "audio" ]; shell = pkgs.zsh; }; # Автозагрузка оконного менеджера. services.getty.autologinUser = "fox"; environment.loginShellInit = '' [[ "$(tty)" == /dev/tty1 ]] && Hyprland ''; # Включение защитных утилит. # тот же sudo для авторизации # по паролю. security = { polkit.enable = true; sudo = { enable = true; extraRules = [{ commands = [ { command = "${pkgs.systemd}/bin/reboot"; options = [ "NOPASSWD" ]; } { command = "${pkgs.systemd}/bin/poweroff"; options = [ "NOPASSWD" ]; }]; groups = [ "wheel" ]; }]; }; }; # Пакеты для всей системы. # Содержат утилиты и шрифты. environment = { systemPackages = with pkgs; [ # Для никс nh home-manager # Файлы/документы neovim git tree wget unrar # Аналитика fastfetch btop # Компилятор gcc # Для оборудования # nvidia-vaapi-driver nv-codec-headers ffmpeg-full dmidecode nodejs_24 ]; }; fonts = { packages = with pkgs; [ cantarell-fonts noto-fonts noto-fonts-cjk-sans noto-fonts-emoji fira-code-symbols fira-code dejavu_fonts jetbrains-mono nerd-fonts.symbols-only nerd-fonts.jetbrains-mono ]; fontconfig.defaultFonts.emoji = [ "Noto COlor Emoji" ]; }; # Включение программ через функцию programs.xxxx. programs = { adb.enable = true; gamemode.enable = true; zsh.enable = true; gamescope = { enable = true; capSysNice = true; }; steam = { enable = true; gamescopeSession.enable = false; }; }; # Системные настройки. # Никс + система. system.stateVersion = "25.05"; nixpkgs = { config.allowUnfree = true; hostPlatform = lib.mkDefault "x86_64-linux"; }; nix.settings.experimental-features = [ "nix-command" "flakes" ]; # Сервисы services = { xserver.videoDrivers = [ "nvidia" ]; # desktopManager = { gnome.enable = true; plasma6.enable = false; }; }; # Оборудование hardware = { pulseaudio = { enable = true; support32Bit = true; }; graphics.enable = true; opengl.enable = true; nvidia = { # modesetting.enable = true; powerManagement = { enable = false; finegrained = false; }; open = false; nvidiaSettings = true; package = config.boot.kernelPackages.nvidiaPackages.stable; }; }; systemd.services.amnezia = { # enable = true; wantedBy = [ "multi-user.target" ]; serviceConfig = { Description = "AmneziaVPN-Service starter"; Type = "simple"; ExecStart = "${pkgs.amnezia-vpn}/bin/AmneziaVPN-service"; }; }; virtualisation.vmware.host.enable = true; # }