222 lines
4.4 KiB
Nix
222 lines
4.4 KiB
Nix
{ 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; #
|
||
|
||
}
|
||
|